不光redis有,其他的db也有,比如说mysql,sqlserver
优先:
《1》 读写分离,我们洪流被我们redis集群拆分了。【分而治之】
《2》 一定程度上防止系统整体瘫痪。【主了挂了,但是你的程序还是可以select,读写比例大多在1:10,1:8】
《3》 热备份,【阿里云,青云】,热备份+冷备份。
缺点:《1》 读延迟。从业务上做点手脚,做一个中间页面,最大程序上不影响用户体验。
二:准备
1. 准备搭建一个 ”一主两从“
《1》 设置slaveof <masterip> <masterport> 中主的IP地址
《2》 正确修改本server的地址,比如说master1是6369,slave1是6370 slave11是6371
《3》大概解析一下console控制台的输出内容
<1> Slave: Connecting to MASTER Ping
<2> Master: Pong
<3> Slave: MASTER <-> SLAVE sync started
<4> Slave: Full resync from master: 7915856b7e50e6ad2a097e1dec98d4aa07ae5126:463
<5> Master: no
<6> Master: 全同步的信息
2. 记住一点:
Master 和 Slave 是双向通讯。。。
测试一主两从的时,复制2个redis/redis-server 等配置文件然后修改端口号,然后在一个机器上就可以模拟出来一主两从的效果
三:实现
1)测试依赖redis-3.2.9版本,解压后建立文件夹jk,然后在jk建立mater1,slave1,slave11文件夹,并把redis.conf,redis-cli,redis-server
文件拷贝到相应的文件夹内,如下图所示
2)修改端口号,设置slaveof <masterip> <masterport> 中主的IP地址,修改dir路径dir "/usr/servers/redis-3.2.9/jk/master1"
3)以此起来3个服务的redis进程
[root@localhost master1]# ./redis-server redis.conf
[root@localhost slave1]# ./redis-server ./redis.conf
[root@localhost slave11]# ./redis-server ./redis.conf
4)依次起来客户端
[root@localhost master1]# ./redis-cli -p 6369
[root@localhost slave1]# ./redis-cli -p 6370
[root@localhost slave11]# ./redis-cli -p 6371
5)查看拓扑关系
127.0.0.1:6369> info
127.0.0.1:6369> info replication
测试图如下