redis 默认都是master
redis集群中,必须使用相同版本的redis,最好精确到小版本
一、开启redis服务,并使用redis客户端连接redis服务
1 redis-server 2 redis-cli
二、使用SLAVEOF 将角色转换为slave,并指向redis 主服务器的IP和对应的端口(redis 中不区分大小写)
SLAVEOF 192.168.1.4 6379
输入:SLAVEOF ,后面会自动显示灰色的host 和port表示对方的主机和端口
三、INFO查看
127.0.0.1:6379> info
# Replication role:slave master_host:192.168.1.4 master_port:6379 master_link_status:down
1、查看当前的redis中都有哪些key
127.0.0.1:6379> keys * 1) "a"
如果和master建立了连接,就会清空当前redis上的所有数据库,以master为准
四、配置连接密码
127.0.0.1:6379> CONFIG SET masterauth 12345678 OK
CONFIG SET masterauth 后面跟上的12345678就是master redis的密码
如果版本不一样,就会提示错误,我这里使用的是redis5.0.12
slave 模式下是不能写数据的,只能从master那边同步过来
五、永久有效,直接写到配置中
低版本redis 修改slaveof <masterip> <masterport>
高版本redis修改replicaof <masterip> <masterport>
replicaof 192.168.1.4 6379
2、修改master认证密码
# masterauth <master-password> 修改为: masterauth 123456
注意:在redis 5.0版本中IP地址和对应的端口,密码,两边的<>符号必须去掉,否则会导致连不上对应的端口,密码无效。
报错解决办法:
1、(error) READONLY You can‘t write against a read only replica
因为连接的是从节点,从节点只有读的权限,没有写的权限
解决办法:
进入redis.conf配置文件,修改配置文件的slave-read-only为no,
那么从节点也就可以进行写的操作了
2、编译失败之后可以试着清理下残留试试看
make distclean