设为首页 收藏本站
查看: 1116|回复: 0

[经验分享] redis maser-salve

[复制链接]

尚未签到

发表于 2016-12-18 07:32:15 | 显示全部楼层 |阅读模式
  一.序言
  现在只要中间件 分布式什么的都要涉及主从来提高读的性能,这里根据官网的说明介绍一些内容给大家,我就不全部翻译了,英文好了直接看原文吧。地址:http://redis.io/topics/replication
  二.基本介绍
  1.redis 不仅支持master-slave  的复制,同时也支持slave-slave 的复制。
  2.如果master 的持久化关闭之后,在多slave 复制的时候,如果有重启之类的,会出现数据不一致的其概况。
  三.基本配置
  1.配置很简单,我这里配置的单机的,用端口区分。先打开先前的配置
  
DSC0000.png
 
  2.用命令复制一份redis.conf 做为slave 的配置文件

# 注意自己的文件位置 
# 这里如果简单,你可以不用配置文件,直接通过redis-server --port 10001 方式创建
$ cp redis.conf  redis-10001.conf
  3.更改redis-10001.conf 的端口

$ vi redis-10001.conf
# 将port 6379 改成 10001
  4. 启动slave

$ redis-server /usr/local/etc/redis-10001.conf
  5.连接10001 端口,指定他为slave

$ redis-cli -p 10001
127.0.0.1:10001> PING
PONG
127.0.0.1:10001> slaveof localhost 6379
OK
  四.测试
  分别打开master 和 slave的窗口,在master 存放,slave 获取
  master 执行

$ redis-cli -p 6379
127.0.0.1:6379> set testkey hello
OK
  slave 执行 

$ redis-cli -p 10001
127.0.0.1:10001> get testkey
"hello"
  结果:master 存放的值,slave 已经获取到了。当然,默认slave 是只读的,可以通过配置改变。
  更多配置
  五.实现步骤
  1.设置或者启动slave 的时候,会发送SYCN命令,无论是第一次连接或者重新连接
  
DSC0001.png
 
  2.msater 收到后,开始后台saving,然后缓存接收到的所有修改数据的命令。
  3.saving 完成之后,会将saving 的文件,传输给slave 
  4.slave 收到文件后,会清空以前的,并从新加载数据
  5.后面master 和slave 就是异步同步,比较时时了
  6.2.8 以后,slave断掉之后,会从连master,然后部分同步,时间可以设置
  部分同步原理:
  1.master那边会创建一个内存缓冲区,记录最近的命令
  2.每次复制master 和slave 都会有一个偏移量记录,和一个(master run id
      3.当连接断开,salve会从新请求连接,如果master run id 相同,并且偏移量位置可用,那么就会继续上次的进行复制,如果不同,这就类似于第一次连接,全量复制
  其他:全量复制,或者说第一次复制,如果数据过大,或导致slave 时间很长不可用。
  小结:
  1.这里简单描述了下redis 读写分离的东西,但是这个虽然可以用性很高,但是有始终有一些遗漏 或者不同步的问题,遇坑的时候希望大家多分享~。~
  2.上面的master 是没加用户名和密码的,加了连接的时候需要注意加
  3.如果描述有错的地方,请指出,非常感谢!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315689-1-1.html 上篇帖子: Redis 学习笔记【原创】 下篇帖子: redis技术资料大全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表