1. redis的主从配置:
(1)把redis的配置文件(reids.conf)拷贝2份
[root@192 redis]# cp redis.conf redis6380.conf
[root@192 redis]# cp redis.conf redis6381.conf
(杀掉redis进程)
(2)配置从服务器redis6380.conf
[root@192 redis]# vi redis6380.conf #需要修改的内容如下:
#pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6380.pid
#port 6379
port 6380
#dbfilename dump.rdb
dbfilename dump6380.rdb
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
slave-read-only yes
(3)配置从服务器redis6381.conf
[root@192 redis]# vi redis6381.conf #需要修改的内容如下:
#pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6381.pid
#port 6379
port 6381
#save 900 1 #全部注释掉,不产生rdb文件,2台从服务器,1台产生rdb即可
#save 300 10
#save 60 10000
appendonly no #也不让它产生aof
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
slave-read-only yes #只读
(4)配置主服务器redis.conf
[root@192 redis]# vi redis.conf
#save 900 1 #禁用rdb,因为有从服务器生成了
#save 300 10
#save 60 10000
#appendonly no
appendonly yes #aof的配置文件可要可不要
appendfilename "appendonly.aof"
(5)启动主、从服务器:
[root@192 redis]# pwd
/usr/local/redis
[root@192 redis]# ./bin/redis-server ./redis.conf #启动主服务器
[root@192 redis]# ./bin/redis-server ./redis6380.conf #启动从服务器
[root@192 redis]# ./bin/redis-server ./redis6381.conf #启动从服务器
(6)客户端连接主服务器:
[root@192 redis]# ./bin/redis-cli
127.0.0.1:6379>
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2 #连接的从服务器的个数
slave0:ip=127.0.0.1,port=6380,state=online,offset=392,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=392,lag=1
127.0.0.1:6379> set animal cat #主服务器设置值,从服务器可读取值
OK
(7)客户端连接从服务器:
---slave1
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli -p 6380
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up #up连接正常,down连接失败
---slave2
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli -p 6381
127.0.0.1:6381> info replication #查看从服务器的连接状态
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up #up连接正常,down连接失败
注:
从服务器可以不通过密码连接主从服务器,不安全,如果想用密码也是可以的:
加上密码:(主、从服务器配置文件都需要加上密码)
(1)杀掉所有的redis进程:
[root@192 redis]# pkill -9 redis
(2)主服务器加密码:
[root@192 redis]# vi redis.conf #修改主服务器内容如下:
# requirepass foobared
requirepass passwd
(1)从服务器加密码:(2个从服务器都要修改如下内容:)
[root@192 redis]# vi redis6380.conf
# masterauth <master-password>
masterauth passwd
[root@192 redis]# vi redis6381.conf
# masterauth <master-password>
masterauth passwd
(4)此时启动redis主、从服务端,客户端连接redis需要输入密码,如下:
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli
127.0.0.1:6379> set age 21
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth passwd
OK
127.0.0.1:6379> set age 21
OK