Redis主从复制

先贴上参考博客:http://blog.csdn.net/hechurui/article/details/49508813
在生产中,如果我们只使用一台redis服务器往往是不够的,单个redis发生单点故障,或者负载过大,造成数据丢失,解决方案之一就是redis主从复制,而且很简单。
原理就是从服务启动时会向主服务有一条SYNC的请求,请求将主服务器上的数据dump到从服务上(以rdb的方式dump),之后主服务器每次更新都会同步更新到从服务器,默认情况下从服务器只允许读,不允许写。
下面我们来测试测试一下:
主服务器不变,默认端口6379,配置文件redis.conf
从服务器:端口6380,配置文件redis6380.conf
看一下redis6380.conf的配置文件:
找到

# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379

这里就是配置从服务器所属的主服务器

slave-read-only yes

这里就表明了只读操作,因为从服务器是不会将数据同步到主服务器中,所以一般都是制度操作。
很简单,这样就配置好了,下面启动服务。
主服务:

./bin/redis-server ./redis.conf

从服务:

./bin/redis-server ./redis6380.conf

我们在主服务中写入一条:

[root@localhost redis3]# ./bin/redis-cli 
127.0.0.1:6379> set name tangxw
OK
127.0.0.1:6379> get name
"tangxw"
127.0.0.1:6379> 

从服务器看一下有没有:

[root@localhost redis3]# ./bin/redis-cli -p 6380
127.0.0.1:6380> get name
"tangxw"
127.0.0.1:6380> set age 23
(error) READONLY You can't write against a read only slave.
127.0.0.1:6380> 

看到从服务器已经把数据同步过来了,并且从服务器写操作时就会报错。
这里要注意一点,如果redis6380.conf中配置salveof时127.0.0.1写成localhost可能就会报redis Error condition on socket for SYNC: Connection refused的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值