简单介绍
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)
然后,我们在官网找到下载界面,然后下载当前版本的最新版本:
我下载的时候,最新版本是7.2.0,然后下载好之后,他就是一个tar包,我们把这个tar包上传到Linux的虚拟机上:
先不着急解压,安装Redis的第一步是安装依赖,因为Redis是基于C语言编写的,所以在安装之前要先安装C语言的依赖:
yum install -y gcc tcl
解压Redis的tar包
tar -zxvf redis-7.2.0.tar.gz -C ../software
解压完成之后就是下面这样的
这个地方的软件安装路径可能不一样,这个就因人而异。
解压完成之后,我们需要进行一次编译,我们进入这个解压之后的目录:
make && make install
编译安装的过程会比较长,耐心等待即可。
默认的安装路径在`/usr/local/bin`目录下,我们可以来到这个目录看一下里面生成的文件:
这些文件中,比较重要的就是两个,一个是客户端一个是服务端。
redis-cli:是redis提供的命令行客户端
redis-server:是redis的服务端启动脚本
redis-sentinel:是redis的哨兵启动脚本
启动
前台启动
在刚才的编译安装的过程中,这些文件已经加入了环境变量中,也就是说我们在任何的位置都可以使用这个命令,最简单的启动命令就是直接运行这些脚本即可:
redis-server
当你看到这个redis的LOGO的时候,就表示这个Redis已经开始运行了。
这种方式叫做前台启动,这种启动方式会占用你的当前活动窗口,如果你要再启动一个客户端那你只能再次创建一个SSH连接才能再次开启一个活动窗口的方式去启动它。
指定配置文件启动
除了前台启动,还有一种方式叫做指定配置文件启动。
如果要让Redis以后台方式启动,则必须修改Redis的配置文件,就在我们之前解压的Redis安装包下,名字叫做redis.conf:
修改这个文件之前,首先对配置文件进行一个备份,防止因为错误操作而找不到原来的配置文件:
cp redis.conf redis.conf.bak
然后我们就可以去修改这个文件里面的内容了:
这个里面的内容非常的多,具体的修改的内容如下:
首先是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
这次启动之后是不会有任何的结果出现在控制台上的,那么查看Redis有没有启动就要查看Linux的进程:
ps -ef | grep redis
可以看到已经存在一个Redis的进程,就说明Redis已经启动成功了:
然后如果你要停止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
注意,因为这个地方的启动和原来的进程启动有冲突,所以如果你没有关闭之前启动的Redis进程,则这里会报错,也就是这个绿色的点会变成红色,显示启动失败,但其实就是因为之前的Redis已经被启动了。
设置开机自启
systemctl enable redis
这样就可以设置开机自启了。
Redis客户端
命令行客户端
Redis安装完成之后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
其中常见的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的交互控制台:
在命令行中使用-a参数输入密码的方式会不安全,从而导致会出现一个警告,那么安全的做法是不使用密码登陆之后,在交互界面中校验密码:
使用AUTH命令校验密码,校验通过之后会出现一个【OK】,然后我们测试与服务器的连接则显示正常响应,如果在不使用密码进入交互命令行之后,不校验密码就进行操作,则会提示没有权限。
图形化客户端
对于Redis的图形化客户端,一般有使用Gethub上的项目,比如rdm,或者直接使用IDEA的客户端:
根据个人喜好选择即可。