linux环境安装并配置单个redis实例
下载源码并编译安装:
1 2 3 4 5 6 7 |
$ mkdir /usr/local/redis $ cd /usr/local/src #存放源码的目录 $ wget http://download.redis.io/redis-stable.tar.gz $ tar xvzf redis-stable.tar.gz $ cd redis-stable $ make PREFIX=/usr/local/redis install #安装到指定目录中 |
配置:
1 2 3 4 5 6 |
$ sudo mkdir /etc/redis #配置文件路径 $ sudo mkdir /var/redis #数据文件路径 $ sudo cp redis.conf /etc/redis/redis_6379.conf #redis配置文件 $ sudo cp utils/redis_init_script /etc/init.d/redis_6379 #服务脚本 $ sudo mkdir /var/redis/6379 #Redis实例的工作空间和数据存放目录 |
Redis实例配置
按照以下步骤编辑配置文件:
- 将 daemonize 设为 yes (默认为no)。
- 将 pidfile 设为
/var/run/redis/redis_6379.pid
。 - 设置 port 。 本例中的端口为 6379。
- 设置日志级别 loglevel 。
- 设置日志文件路径 logfile 为
/var/log/redis/redis_6379.log
。 - 设置 dir 为
/var/redis/6379
。
1 2 |
$ sudo vi /etc/redis/redis_6379.conf #编辑配置文件 |
配置文件部分配置项示例,其余配置项使用默认值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 以守护进程的方式运行 daemonize yes # 当Redis以守护进程方式运行时,Redis会把pid写入pidfile pidfile /var/run/redis/redis_6379.pid # Redis监听端口,默认端口为6379 port 6379 # 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning loglevel notice # 日志记录方式,默认为空,表示标准输出 # 如果配置Redis为守护进程方式运行,而这里又配置为标准输出,则日志将会发送给/dev/null logfile /var/log/redis/redis_6379.log # 设置数据库的数量,默认为16,可以使用SELECT <dbid>命令在连接上指定数据库id databases 20 # 指定存储至本地数据库时是否压缩数据,默认为yes #Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大 rdbcompression yes # 指定本地数据库文件名,默认值为dump.rdb dbfilename dump.rdb # 指定本地数据库存放目录 dir /var/redis/6379 # 设置Redis认证码,默认关闭。 # 如果配置了认证码,客户端在连接Redis时需要通过AUTH <password>命令提供密码 requirepass qwe123 |
Redis服务配置
编写redis服务脚本。
1 2 |
$ sudo vi /etc/init.d/redis_6379 |
redis服务脚本示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# chkconfig: 2345 90 10 # description: Redis is a persistent key-value database PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 REDISAUTH="qwe123" EXEC=/usr/local/redis/bin/redis-server REDIS_CLI=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis/redis_6379.pid CONF="/etc/redis/redis_6379.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 if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT -a $REDISAUTH SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac |
保存后设置执行权限:
1 2 |
$ chmod 755 /etc/init.d/redis_6379 |
测试脚本:
1 2 3 |
$ service redis_6379 stop $ service redis_6379 start |
若无报错且正常关闭、启动redis,则继续下一步。
设置开机自启动:
1 2 |
$ chkconfig redis_6379 on |
至此,完成。
服务脚本说明:
1 2 3 4 5 6 7 |
EXEC=/usr/local/redis/bin/redis-server #redis-server的绝对路径,启动redis时需要 REDIS_CLI=/usr/local/redis/bin/redis-cli #redis-cli的绝对路径,关闭redis时需要 REDISPORT=6379 #redis端口,redis-cli关闭服务时需要 REDISAUTH="qwe123" #认证码,若未配置则可设为空值 PIDFILE=/var/run/redis/redis_6379.pid #redis.conf配置文件中指定的pid路径地址 CONF="/etc/redis/redis_6379.conf" #redis启动时用的配置文件 |
需要注意的是,端口号、认证码以及pid文件需要和 redis.conf配置文件中的一致。此外,在redis.conf中需要将 daemonize这个参数项设置为 yes ,这样 redis 才可以在后台运行并在启动时生成pid文件。