一.序言
现在只要中间件 分布式什么的都要涉及主从来提高读的性能,这里根据官网的说明介绍一些内容给大家,我就不全部翻译了,英文好了直接看原文吧。地址:http://redis.io/topics/replication
二.基本介绍
1.redis 不仅支持master-slave 的复制,同时也支持slave-slave 的复制。
2.如果master 的持久化关闭之后,在多slave 复制的时候,如果有重启之类的,会出现数据不一致的其概况。
三.基本配置
1.配置很简单,我这里配置的单机的,用端口区分。先打开先前的配置
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命令,无论是第一次连接或者重新连接
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.如果描述有错的地方,请指出,非常感谢!
相关推荐
redis64-2.6.12.1.rar redis64-2.6.12.1.rar redis64-2.6.12.1.rar
redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...
redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...
tomcat-redis-session-manager-2.0.0.jar jedis-2.5.2.jar commons-pool2-2.2.jar 2.修改 conf 目录下的 context.xml 文件 host="localhost" port="6379" database="0" maxInactiveInterval="60" /> ...
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
redis++使用说明,windows下编译redis-plus-plus
windows系统redis安装文件,Redis-x64-3.0.504(稳定版);Redis-x64-3.2.100(预发行版);redis-desktop-manager-0.9.3.817(redis界面工具)。具体安装方法详见:...
基于muduo网络库的集群聊天服务器和客户端源码,使用nginx tcp负载均衡,mysql数据库,redis发布-订阅数据库,redis发布-订阅 基于muduo网络库的集群聊天服务器和客户端源码,使用nginx tcp负载均衡,mysql数据库,...
redis校验工具redis-full-check,配合redis-shake使用!!!
根据《Redis笔记-尚硅谷周阳V1.3》整理,脑图、思维导图xmind
redis2-nginx-module-0.15
RedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows 、Linux、Mac三大系统平台,RedisPlus提供更加高效、方便、快捷的使用体验,有着更加现代化的用户界面风格。该软件支持单机、集群...
该包中包括 linux 环境的安装包; 桌面管理工具 redis-desktop-manager ; 学习笔记; redis.conf 中文文档
tomcat-redis-session-manager-2.0.0.jar
Tomcat8亲测可用 tomcat-redis-session-manager的jar包 修改了tomcat-redis-session-manager源码进行的编译生成的jar包
jizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-...
redis-server --service-install –service-name redisService1 –port 10001 redis-server --service-start –service-name redisService1 redis-server --service-install –service-name redisService2 –port ...
Redis-x64-5.0.10.msi
windows环境 redis服务免安装 附带redis客户端 redis-desktop-manager-0.8.8.384