2、安装
(1)、复制下载的文件到linux系统中:
[root@zxf src]# tar xzf redis-4.0.10.tar.gz [root@zxf src]# cd redis-4.0.10 [root@zxf redis-4.0.10]# make
操作提示:若出现如下提示,则说明未安装gcc,使用命令安装gcc:
[root@zxf redis-4.0.10]# yum install gcc
编译完成之后,在src目录下有2个重要程序生成,一个是redis-server,另一个是redis-cli;
接着进入src目录,执行 :
[root@zxf redis-4.0.10]# cd src [root@zxf src]# make install
这时会把这些可执行程序拷贝到/usr/local/bin目录(和安装目录同目录)下,由于/usr/local/bin是在系统的环境变量$PATH下定义的,因此终端在任意位置就可以执行redis-server和redis-cli了。
至此安装redis的工作就完成了。
我们来看看编译出来的几个程序分别是干什么的:
redis-server:顾名思义,redis服务
redis-cli:redis client,提供一个redis客户端,以供连接到redis服务,进行增删改查等操作
redis-sentinel:redis实例的监控管理、通知和实例失效备援服务
redis-benchmark:redis的性能测试工具
redis-check-aof:若以AOF方式的持久化,当意外发生时用来快速修复
redis-check-rdb:若以RDB方式的持久化,当意外发生时用来快速修复
(2)、启动服务:
[root@zxf redis-4.0.10]# src/redis-server
停止Redis服务:
[root@zxf redis-4.0.10]# src/redis-cli shutdown
启动后:
(3)、新打开一个窗口测试:
[root@zxf redis-4.0.10]# src/redis-cli 127.0.0.1:6379> set foot bat OK 127.0.0.1:6379> get foot "bat" 127.0.0.1:6379>
(4)、设置Redis访问密码
redis在真实环境中不可以谁想访问就访问,所以,必须要设置密码,修改redis.conf文件配置
\ # requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为redis
设置完密码后:启动的时候要加载配置文件:src/redis-server redis.conf
测试:
[root@zxf redis-4.0.10]# src/redis-cli -a redis Warning: Using a password with '-a' option on the command line interface may not be safe. 127.0.0.1:6379> set name zhouxufeng OK 127.0.0.1:6379> get name "zhouxufeng" 127.0.0.1:6379>
-a redis 为设置的密码
3、设置为开机自动启动
(1)、找到/usr/local/bin/redis-4.0.10/redis.conf目录下的这个文件,修改以下两个配置:
此文件内容非常长,但是大部分是注释,我们重点关注其中的几个设置daemonize和pidfile:
其中daemonize默认值是no,pidfile默认值是pidfile /var/run/redis_6379.pid
第一个表示是否daemon化,显然我们要把它改成daemonize yes;
第二个表示当服务以守护进程方式运行时,redis默认会把pid写入/var/run/redis_6379.pid文件,服务运行中该文件就存在,服务一旦停止该文件就自动删除,因而可以用来判断redis是否正在运行。
(2)、有了基本配置,redis还需要有一个管理启动、关闭、重启的一个脚本。redis源码里其实已经提供了一个初始化脚本,位置在/usr/redis/utils/redis_init_script。
# # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. ### BEGIN INIT INFO # Provides: redis_6379 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Redis data structure server # Description: Redis data structure server. See https://redis.io ### END INIT INFO REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
脚本中指定了端口、server路径、cli路径、pidfile路径以及conf路径,上述标黄的地方都需要正确配置,多说一句,如果在安装时执行了make install,那么这里的脚本不需要做多大改动,因为make install把server和cli都拷到/usr/local/bin下面了。
(3)、另外看到这里conf的路径,我们需要把redis目录下的redis.conf文件拷贝到/etc/redis/6379.conf
[root@zxf redis-4.0.10]# cd /etc [root@zxf etc]# mkdir redis [root@zxf etc]# cp /usr/local/bin/redis-4.0.10/redis.conf /etc/redis/6379.conf
接着将redis_init_script脚本拷贝到/etc/init.d/redisd
[root@zxf src]# cp /usr/local/bin/redis-4.0.10/utils/redis_init_script /etc/init.d/redisd
在/etc/init.d下的脚本都是可以在系统启动是自动启动的服务,而现在还缺一个系统启动时的配置:
[root@zxf src]# chkconfig redisd on
然后就会发现报了一个错误:服务 redisd 不支持 chkconfig ?
参考这篇文章, 这是因为我们需要在redis_init_script的开头加一个小改动:
# chkconfig: 2345 90 10 # description: Redis is a persistent key-value database
保存完重新拷贝到/etc/init.d/redisd后,再运行chkconfig就完成了。
(4)、测试
[root@zxf src]# service redisd start [root@zxf src]# service redisd stop
重启系统测试