下载Redis
进入官网找到下载地址:https://redis.io/download
右键 Download 按钮,选择复制链接。
进入到 Xshell 控制台(cd 到准备安装 redis 的目录),输入wget 将上面复制的下载链接粘贴上,如下命令,回车、等待下载完成
解压并安装Redis
解压
tar -zvxf redis-6.2.1.tar.gz
解压后在根目录上输入ls 列出所有目录会发现与下载redis之前多了一个redis-6.2.1.tar.gz文件和 redis-6.2.1的目录
移动redis目录
一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-5.0.7文件夹更改目录,同时更改文件夹名称为redis。
mv /root/redis-6.2.1 /usr/local/redis
cd 到/usr/local目录下输入ls命令可以查询到当前目录已经多了一个redis子目录,同时/root目录下已经没有redis-5.0.7文件夹
编译
cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容
make
运行结果如下:
安装
输入以下命令
make PREFIX=/usr/local/redis install
这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径
比如我们现在就是指定了redis 必须存放在/usr/local/redis目录
假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录
库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定目录方便后续的卸载、维护,后续直接rm -rf /usr/local/redis 即可删除redis。
执行结果如下图:
启动redis
根据上面的操作已经将redis安装完成了。在目录 /usr/local/redis 输入下面命令启动 redis
./bin/redis-server& redis.conf
上面的启动方式是采取后台进程方式,配置文件 redis.conf 可能会失效,如果redis.conf 配置文件无法生效,可以采用下面的显式方式启动,但是下面的方式启动后 Xshell 软件就会卡在当前页面不动,此时可以修改配置文件 redis.conf,daemonize属性为yes,则和后台进程方式启动其实一样
./bin/redis-server redis.conf
redis-server 后面是配置文件(如果不是在redis根目录启动redis,则需要在前面带上全路),带上配置文件目的是根据该配置文件的配置启动redis服务
redis.conf 配置文件允许自定义多个配置文件,可以通过启动时指定读取哪个来启动不同配置的实例,从而实现redis集群模式(个人理解可以这么操作,但是未实际尝试过,有兴趣的可以尝试一下)
这里列举下比较重要的配置项
配置项名称 | 配置项值范围 | 说明 |
daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定 Redis 监听端口,默认端口为 6379 | |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
loglevel | debug、verbose、notice、warning | 日志级别,默认为 notice |
databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认值为 dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 |
maxmemory | XXX <bytes> | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
我在操作过程中做了如下修改:
- 这里我是将 daemonize 改为 yes,否则 redis.conf 无法及时生,另外使用不这样操作则,使用显式启动方式,Xshell 软件就会卡在当前页面,ctrl+c后 redis 服务会自动关闭
- 同时也将 bind 注释,否则只能本机连接到redis,注释掉之后其他远程计算机都可以连接
- 将 protected-mode 设置为 no,否则会提示redis处于保护模式下,无法连接
查看Redis是否正在运行
1、采取查看进程方式:
ps -aux | grep redis
结果如下图:
2、采取端口监听查看方式
netstat -lanp | grep 6379
结果如下图:
客户端连接
redis-cli
redis-cli
是连接本地redis服务的一个命令,通过该命令后可以进入 redis 的脚本控制台,如果有多个不同端口的redis实例,需要在后面加上 IP 和 端口号(如:redis-cli -h host -p port -a password),如果只是 IP 或者 端口 不同,就只需要带上不同的那个元素的参数:如下图
输入 exit 可以退出 redis 脚本控制台
关闭运行中的Redis服务
输入redis-cli
进入控制台后输入命令 shutdown
即可关闭运行中的Redis服务了。如下图:
安装完后redis-cli无法使用(redis-cli: command not found)
这主要是安装redis的时候没有把客户端装上,在StackOverFlow上找到了一种只安装redis-cli的方法,这里跟大家分享下
下载安装
从redis官网下载redis-cli的压缩包
wget http://download.redis.io/redis-stable.tar.gz
解压下载下来的压缩包
tar xvzf redis-stable.tar.gz
进入redis-stable目录
cd redis-stable
安装
make
将redis-cli拷贝到/usr/local/bin/下,让redis-cli指令可以在任意目录下直接使用
sudo cp src/redis-cli /usr/local/bin/
按照上面的指令执行之后 redis-cli 就可以正常执行了,如果失败,再把上面的命令再执行一遍即可
成功后的效果如下图
在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动
在远程服务上执行命令
如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。
$ redis-cli -h host -p port -a password
以下示例演示了如何连接到主机IP为 127.0.0.1,端口号为 6379 ,密码为 mypass 的 redis 服务上。
$ redis-cli -h 127.0.0.1 -p 6379 -a "mypass"