简单介绍
Redis诞生于2009年,全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。
特征
- 键值(Key-value)型,value支持多种不同数据结构,功能丰富
- 单线程,每个命令具有原子性
- 低延迟,速度快(基于内存,IO多路复用,良好的编码)
- 支持数据的持久化
- 支持主从集群和分片集群
- 支持多语言客户端
安装Redis
对于Redis的安装,我们选择使用Linux作为环境进行安装,毕竟这种服务一经开发就是用作服务端,而服务端一般采用的操作系统就是Linux,所以我们选择直接安装在Linux上,省去了因为Windows的兼容问题到导致的出错。并且Redis的官方程序并没有支持Win版的格式,之前使用的Win版的Redis都是微软编译出来的。
我们使用的环境是CentOS7,所以在开始之前我们需要提前装好一个Linux的虚拟机,并保证虚拟机和宿主机之间可以互相ping通。
Redis的官网:雷迪斯 (redis.io)
然后,我们在官网找到下载界面,然后下载当前版本的最新版本:
![](https://img-blog.csdnimg.cn/dc8494492e2042628e56c3ec918647d7.png)
我下载的时候,最新版本是7.2.0,然后下载好之后,他就是一个tar包,我们把这个tar包上传到Linux的虚拟机上:
![](https://img-blog.csdnimg.cn/b5156a66fd4945478dddc98510011431.png)
先不着急解压,安装Redis的第一步是安装依赖,因为Redis是基于C语言编写的,所以在安装之前要先安装C语言的依赖:
yum install -y gcc tcl
![](https://img-blog.csdnimg.cn/5c9ca3cbd88c45abad258bd191f967a2.png)
解压Redis的tar包
tar -zxvf redis-7.2.0.tar.gz -C ../software
解压完成之后就是下面这样的
![](https://img-blog.csdnimg.cn/5e3569f633654ce08cc8d91b7b007615.png)
这个地方的软件安装路径可能不一样,这个就因人而异。
解压完成之后,我们需要进行一次编译,我们进入这个解压之后的目录:
make && make install
编译安装的过程会比较长,耐心等待即可。
![](https://img-blog.csdnimg.cn/242b25e26bb84c06a1800e24e95b69f0.png)
默认的安装路径在`/usr/local/bin`目录下,我们可以来到这个目录看一下里面生成的文件:
![](https://img-blog.csdnimg.cn/595faea75f89450d8db7c1513aa418ea.png)
这些文件中,比较重要的就是两个,一个是客户端一个是服务端。
redis-cli:是redis提供的命令行客户端
redis-server:是redis的服务端启动脚本
redis-sentinel:是redis的哨兵启动脚本
启动
前台启动
在刚才的编译安装的过程中,这些文件已经加入了环境变量中,也就是说我们在任何的位置都可以使用这个命令,最简单的启动命令就是直接运行这些脚本即可:
redis-server
![](https://img-blog.csdnimg.cn/ddff3e29dd834f20899f8749d149fbe8.png)
当你看到这个redis的LOGO的时候,就表示这个Redis已经开始运行了。
这种方式叫做前台启动,这种启动方式会占用你的当前活动窗口,如果你要再启动一个客户端那你只能再次创建一个SSH连接才能再次开启一个活动窗口的方式去启动它。
指定配置文件启动
除了前台启动,还有一种方式叫做指定配置文件启动。
如果要让Redis以后台方式启动,则必须修改Redis的配置文件,就在我们之前解压的Redis安装包下,名字叫做redis.conf:
![](https://img-blog.csdnimg.cn/b1ab5230e9ca44949ca89cfab6791d50.png)
修改这个文件之前,首先对配置文件进行一个备份,防止因为错误操作而找不到原来的配置文件:
cp redis.conf redis.conf.bak
然后我们就可以去修改这个文件里面的内容了:
![](https://img-blog.csdnimg.cn/7e5c4012ba41496fbc5cc74376e3351a.png)
这个里面的内容非常的多,具体的修改的内容如下:
首先是bind的值:
# bind表示监听的地址,也就是允许访问的地址,默认的值就是127.0.0.1也就是只有本机才能访问,但是当我们在宿主机上 # 使用的时候就会造成很多的不便,这时候改成0.0.0.0就表示在任意的主机都可以访问这个Redis bind 0.0.0.0
然后是daemonize的值:
# 守护进程,默认值为no,设置为yes即可后台运行 # daemonize no daemonize yes
还有密码:
# 设置密码是为了保证安全性 requirepass 123456
以及其他的一些常见的配置:
# 监听的端口,端口号一般使用默认,但是如果端口号被其他的服务占用了就只能使用其他的端口号 port 6379 # 工作目录,默认是当前目录,也就是运行时候产生的日志,命令,持久化等都会保存在这个目录,默认是启动服务的目录 dir . # 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0-15 databases 1 # 设置redis能够使用的最大内存 maxmemory 512mb # 日志文件,默认为空,不记录日志,可以指定日志文件名,这里只写了文件名并没有写文件的路径,那么这个文件的路径默认就是和上面的dir路径是保持一致的。 logfile "redis.log"
然后就是带着配置文件启动,就是将配置文件的路径和文件名写在启动命令之后即可:
redis-server redis.conf
![](https://img-blog.csdnimg.cn/5e6113cb3dab43aebf9e2b190a989873.png)
这次启动之后是不会有任何的结果出现在控制台上的,那么查看Redis有没有启动就要查看Linux的进程:
![](https://img-blog.csdnimg.cn/7d2f87fd1b5143ccb28486086c2abfb3.png)
ps -ef | grep redis
可以看到已经存在一个Redis的进程,就说明Redis已经启动成功了:
![](https://img-blog.csdnimg.cn/25444df94cc5494889fd2336a56ad4c2.png)
然后如果你要停止Redis,那么就使用kill -9的杀死进程的命令即可。
开机自启
通过将Redis服务加入到系统服务中的方式实现开机自启。
首先要新建一个系统服务文件:
vim /etc/systemd/system/redis.service
文件的内容如下:
[Unit] Description=redis-server
After=nerwork.target [Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /home/morningstar/software/redis-7.2.0/redis.conf PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后重新加载系统服务
systemctl daemon-reload
现在,我们就可以使用系统命令的方式查看Redis的状态,以及控制Redis的启停:
systemctl start redis systemctl status redis systemctl stop redis
![](https://img-blog.csdnimg.cn/558f970ec61d45759b68e35bf39339f7.png)
注意,因为这个地方的启动和原来的进程启动有冲突,所以如果你没有关闭之前启动的Redis进程,则这里会报错,也就是这个绿色的点会变成红色,显示启动失败,但其实就是因为之前的Redis已经被启动了。
设置开机自启
systemctl enable redis
这样就可以设置开机自启了。
![](https://img-blog.csdnimg.cn/84df76239f8948dc803e67660cf76c3e.png)
Redis客户端
命令行客户端
Redis安装完成之后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
![](https://img-blog.csdnimg.cn/93b6ccfc698f4f44842d040e54fb6278.png)
其中常见的options有:
- -h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1
- -p 6379:指定要连接的redis节点的端口,默认是6379
- -a 123456:指定redis的访问密码
其中commonds就是Redis的操作命令,例如:
- ping:与Redis服务做心跳测试,服务端正常会返回pong
不指定commond时,会进入redis-cli的交互控制台:
![](https://img-blog.csdnimg.cn/edaad970cc15402db93d4b3a006148c6.png)
在命令行中使用-a参数输入密码的方式会不安全,从而导致会出现一个警告,那么安全的做法是不使用密码登陆之后,在交互界面中校验密码:
![](https://img-blog.csdnimg.cn/8fafc594aea045e58940e82fbf05aabe.png)
使用AUTH命令校验密码,校验通过之后会出现一个【OK】,然后我们测试与服务器的连接则显示正常响应,如果在不使用密码进入交互命令行之后,不校验密码就进行操作,则会提示没有权限。
图形化客户端
对于Redis的图形化客户端,一般有使用Gethub上的项目,比如rdm,或者直接使用IDEA的客户端:
![](https://img-blog.csdnimg.cn/fe0c63e8196e4b60a470572876b53ed6.png)
根据个人喜好选择即可。