redis的RDB和AOF搭配sentinel集群的实操(三)--Redis的一主两从搭建

书接前文,服务器的使用和安排请参考本主题的第一篇,点击这里  

 

零:原理简介

      redis的主从原理:

      1:是由从发起的,定时从“主”redis去获取rdb快照的行为。主是被动接受方

      2:“主”可以通过设置密码和ip等方法,来限制连接到它上面的“从”redis。同时“主”可以感知有谁连接到子级上面。

      演进思想:

      1:主redis是否打开RDB或AOF,对“从”无干扰。因此,“从”也可以开启持久化方案的相关配置。

      2:“从”有两种与“主”关联的方式。

          其一就是在“从”的配置文件中指明“主”的ip和密码;

          其二就是通过redis-cli 连接到从节点服务器,执行下面命令即可。

          slaveof 192.168.122.21 6379

 

一:配置文件

      主从环境中,仅修改从Redis的配置文件(redis.conf)的以下几方面即可。

      需要注意的是,“主”redis中不需要配置slaveof和masterauth参数,切切

bind 192.168.122.23            #当前主从服务器的具体ip
slaveof 192.168.122.21 6379    #格式为 slaveof <mastip> <mastport>
masterauth  xx_1234            #若主redis需要密码的时候,开启当前配置
slave-read-only yes            #设置slave为只读模式
requirepass xx_1234            #格式为 requirepass xxxx
#从redis的RDB和AOF相关配置可以开启,这样当主redis挂掉之后,便于“从”redis接手

     

二:启动

      顺序启动主、从redis服务器。然后通过info replication指令分别查看状态

[root@xxCentos7One src]# ./redis-cli -h 192.168.122.21 -p 6379 -a xx_1234 info replication

      主redis

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.122.22,port=6379,state=online,offset=168,lag=1
slave1:ip=192.168.122.23,port=6379,state=online,offset=168,lag=1
master_replid:e09357ff3c969c4d870a14a90263c2540de7bf57
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:168
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:168

      从redis

# Replication
role:slave
master_host:192.168.122.21
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:224
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:e09357ff3c969c4d870a14a90263c2540de7bf57
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:224
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:224

 

      几个主从之间重要的同步正常表征参数如下

master_link_status:up

master_repl_offset和slave_repl_offset相等,

master_last_io_seconds_ago在10秒内。

 

三:监控

      redis通过“ping”的方式来监控从与主之间的联通状况。

      可以在“从”redis上面执行monitor命令来进行监控

#122.22与主之间的联通情况
192.168.122.22:6379> monitor
OK
1565313753.955892 [0 192.168.122.21:6379] "PING"
1565313764.116796 [0 192.168.122.21:6379] "PING"
1565313774.279987 [0 192.168.122.21:6379] "PING"


#122.23与主之间的联通情况
192.168.122.23:6379> monitor
OK
1565313753.958438 [0 192.168.122.21:6379] "PING"
1565313764.119312 [0 192.168.122.21:6379] "PING"
1565313774.282528 [0 192.168.122.21:6379] "PING"

     

      其实,关于监控和通知等的内容,会在我们的下一步的sentinel中介绍。

 

      小插曲

      我直接执行下面的命令时,报错"NOAUTH Authentication required"

[root@xxCentos7One src]# ./redis-cli -h 192.168.122.21 -p 6379 info replication
NOAUTH Authentication required.

      其原因在于,我设置了密码。正确的方式应该如下操作。即:将密码加在“info”指令之前

[root@xxCentos7One src]# ./redis-cli -h 192.168.122.21 -p 6379 -a xx_1234 info replication

 

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。   本课程主要讲解以下内容:1. Redis的基本使用2. Redis数据库的数据类型3. Redis数据库数据管理4. Redis主从复制5. Redis数据库的持久性6. Redis的高可靠性和集群7. Redis的优化和性能测试8. Redis服务器的维护和管理9. Redis服务器的常见问题排错 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值