先来看门见山的给出Redis
的概念:
Redis:是一种基于内存的高性能K-V键值型NoSQL数据库
Redis官网:https://redis.io/
想必大家都对关系型数据库更为熟悉!如MySQL、Oracle、SQL Server都是比较常见的关系型数据库,所谓关系型数据库主要以二维表作为数据结构进行存储,但是也有很多数据库不以二维表作为数据结构存储,例如Redis、MongoDB等等,我们常常用NoSQL泛指这些非关系型数据库
。
SQL | NoSQL | |
---|---|---|
数据结构 | 结构化(structured) | 非结构化 |
数据关联 | 有关联的(relational) | 无关联的 |
查询方式 | SQL语言查询 | 非SQL语言 |
事务特性 | ACID | BASE |
存储方式 | 硬盘 | 内存 |
下面对上述SQL与NoSQL的区别做简要解释:
select * from 表名
,但是NoSQL查询方式各不相同Redis诞生于2009年,全程是Remote Dictionary Server
,即远程辞典服务器,是一个基于内存的键值型NoSQL数据库,其具有以下特征:
特征:
由于大多数企业项目都部署在Linux服务器上,而且Redis官网也没有提供Windows版的安装包,因此我们这里使用Linux环境进行安装。
注:本人演示时使用的是云服务器,读者完全可以使用本地虚拟机进行安装
由于Redis是用C语言编写的,因此我们安装Redis之前需要安装gcc依赖yum install -y gcc tcl
看到下图所示Complete!说明安装成功
安装包链接:https://pan.baidu.com/s/1f9WYyvdKT8W7Q80x0naSUQ?pwd=tzem
提取码:tzem
选择一个路径进行传输,我这里是/usr/local/src
接下来使用解压命令进行解压tar -xzf redis-6.2.6.tar.gz
此时发现当前目录已经有解压后的redis安装包了!
进入Redis所在目录cd redis-6.2.6
运行编译命令:make && make install
如果没报错那大概率是安装成功了嘻嘻!
默认的安装路径在/usr/local/bin
目录下
其中:
redis-cli:是redis提供的命令行客户端
redis-server:是redis的服务端启动脚本
redis-sentinel:是redis的哨兵启动脚本
安装完成后,会自动配置redis的环境变量,我们可以在任意路径下输入redis-server
命令即可启动redis服务。
redis-server
如图所示:redis服务已经启动成功了!
这种启动方式属于前台启动,当前服务会占用整个会话窗口,如果窗口关闭就会停止redis服务,因此不推荐使用!
如果想要让redis以后台方式启动,那么我们需要设置启动的配置项文件redis.conf
cd /usr/local/src/redis-6.2.6
cp redis.conf redis.conf.bak
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass xxxxxx
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
# 进入redis安装目录
cd /usr/local/src/redis.6.2.6
# 启动
redis-server redis.conf
如何检查我们已经启动了呢?使用命令:ps -ef | grep redis
查看运行的进程
首先新建一个系统服务文件:
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
systemctl enable redis