/ 2018-11-21
1. 典型安装-单实例
系统环境说明
[root@Redis ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@Redis ~]# uname -r 2.6.32-696.el6.x86_64 [root@Redis ~]# sestatus SELinux status: disabled [root@Redis ~]# /etc/init.d/iptables status iptables: Firewall is not running. [root@Redis ~]# hostname -I 10.0.0.186 172.16.1.186
安装redis
[root@Redis ~]# cd /usr/local/ [root@Redis local]# wget http://download.redis.io/releases/redis-3.2.10.tar.gz [root@Redis local]# tar xzf redis-3.2.10.tar.gz [root@Redis local]# \rm redis-3.2.10.tar.gz [root@Redis local]# mv redis-3.2.10 redis [root@Redis local]# cd redis/ [root@Redis redis]# make
至此redis就安装完成。
2. 启动第一个redis实例
创建客户端软连接
[root@Redis src]# ln -s /usr/local/redis/src/redis-cli /usr/bin/
简单启动方法,都使用默认配置
[root@Redis ~]# cd /usr/local/redis/src [root@Redis src]# ./redis-server &
编写配置文件
1)精简化配置文件
[root@Redis redis]# cp redis.conf{,.bak} [root@Redis redis]# grep -Ev '^$|#' redis.conf.bak > redis.conf [root@Redis redis]# cp redis.conf /etc/
2)编辑配置文件
[root@Redis ~]# cat /etc/redis.conf bind 127.0.0.1 10.0.0.186 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile "/var/log/redis_6379.log" dir /usr/local/redis/data/ # ···
3)编写启动脚本(适用于CentOS 6.X)
#!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. # chkconfig: - 85 15 # url: http://blog.oldboyedu.com # user: oldboy ### END INIT INFO REDISPORT=6379 EXEC=/usr/local/redis/src/redis-server CLIEXEC=/usr/local/redis/src/redis-cli PIDFILE=/var/run/redis_6379.pid CONF="/etc/redis.conf" # source function library . /etc/rc.d/init.d/functions rd_start() { if [ -f $PIDFILE ] then action "$PIDFILE exists" /bin/false else $EXEC $CONF if [ $? -eq 0 ] then action "Starting Redis server..." /bin/true else action "Starting Redis server..." /bin/false fi fi } rd_stop() { if [ ! -f $PIDFILE ] then action "$PIDFILE does not exist, process is not running" /bin/false else PID=$(cat $PIDFILE) $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done action "Redis stopped" /bin/true fi } rd_status() { if [ -f $PIDFILE ] then echo "redis server is running....." else echo "redis is stopped" fi } rd_restart() { rd_stop sleep 2 rd_start } case "$1" in start) rd_start ;; stop) rd_stop ;; status) rd_status ;; restart) rd_restart ;; *) echo $"Usage: $0 {start|stop|restart|status}" ;; esac
注意:自编写脚本注意执行权限。
3. Redis多实例配置
注意:本次多实例配置基于单实例配置完成后
创建并进入程序目录
[root@Redis redis]# mkdir /application/redis -p [root@Redis redis]# cd /application/redis/
修改配置文件
for i in 0 1 2 do # 创建多实例(端口命名)目录 mkdir -p 638$i # 复制启动程序到各实例 \cp /usr/local/redis/src/redis-server /application/redis/638$i/ # 复制配置文件。注意:此处基于单实例配置完成 \cp /etc/redis.conf /application/redis/638$i/ # 修改程序存储目录 sed -i "/dir/s#.*#dir /application/redis/638$i/#g" /application/redis/638$i/redis.conf # 修改其他端口信息 sed -i "s#6379#638$i#g" /application/redis/638$i/redis.conf # 允许远程连接redis sed -i '/protected-mode/s#yes#no#g' /application/redis/638$i/redis.conf done
# 启动实例
for i in 0 1 2 do /application/redis/638$i/redis-server /application/redis/638$i/redis.conf done
连接redis
[root@Redis redis]# redis-cli -h 10.0.0.186 -p 6379 10.0.0.186:6379>
4. redis.conf配置说明
是否后台运行:
daemonize no/yes
默认端口:
port 6379
AOF日志开关是否打开:
appendonly no/yes
日志文件位置:
logfile /var/log/redis.log
RDB持久化数据文件:
dbfilename dump.rdb
指定IP进行监听:
bind 10.0.0.51 ip2 ip3 ip4
禁止protected-mode:
protected-mode yes/no (保护模式,是否只允许本地访问)
增加requirepass {password}
requirepass root
在redis-cli中使用
auth {password} 进行认证
5. 在线变更配置
获取当前配置
CONFIG GET *
变更运行配置
CONFIG SET loglevel "notice"
修改密码为空
10.0.0.186:6379> config set requirepass "" 10.0.0.186:6379> exit 10.0.0.186:6379> config get dir 1) "dir" 2) "/usr/local/redis/data"
(8)