Redis实现主从复制以及sentinel的配置

一、Redis基础信息

redis 是一个高性能的 key-value 数据库。 redis 的出现,很大程度补偿了
memcached 这类 keyvalue 存储的不足,在部分场合可以对关系数据库起到很
好的补充作用。它提供了 Python,Ruby,Erlang,PHP 客户端,使用很方便。
Redis 的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上
(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个 append
only file(aof)里面(这称为“全持久化模式”)

二、安装Redis,配置主从复制

[root@server1 ~]# tar  zxf  redis-4.0.8.tar.gz 
[root@server1 ~]# cd  redis-4.0.8
[root@server1 redis-4.0.8]# yum  install gcc -y
[root@server1 redis-4.0.8]# make && make install
[root@server1 utils]# ./install_server.sh  ##初始化设置

修改监听本机所有接口

[root@server1 utils]# vim  /etc/redis/6379.conf
bind 0.0.0.0
[root@server1 utils]# /etc/init.d/redis_6379 restart

这里写图片描述
数据的写入 与读取:

[root@server1 utils]# redis-cli 
127.0.0.1:6379> set name kobe
OK
127.0.0.1:6379> get name
"kobe"
127.0.0.1:6379> set  user1 123
OK
127.0.0.1:6379> get  user1
"123"
127.0.0.1:6379> del  user1
(integer) 1
127.0.0.1:6379> get  user1
(nil)

在server2中比添加master

[root@server2 redis-4.0.8]# vim /etc/redis/6379.conf 
#除了slaveof其他配置和server1一样
[root@server2 redis-4.0.8]# /etc/init.d/redis_6379 restart

这里写图片描述
Server2同步server1中的数据

[root@server2 redis-4.0.8]# redis-cli 
127.0.0.1:6379> get name
"kobe"

Server3和server2同配置

[root@server3 utils]# redis-cli 
127.0.0.1:6379> get name
"kobe"

三、配置sentinel

Sentinel是redis高可用的方案,通过设立一个或多个Sentinel监视服务器,可以在主服务器下线的时候及时选举切换到从服务器,保证可用性。
Sentinel本身也是服务器,只是运行在特殊模式下,监听其他服务器而已。

在server1:

[root@server1 redis-4.0.8]# vim  /etc/redis/sentinel.conf
 17 protected-mode no
69 sentinel monitor mymaster 172.25.62.1 6379 2
 98 sentinel down-after-milliseconds mymaster 10000
106 sentinel parallel-syncs mymaster 1

将配置好的sentinel文件分发至server2和server3

[root@server1 redis-4.0.8]# scp  sentinel.conf server2:/etc/redis/
[root@server1 redis-4.0.8]# scp  sentinel.conf server3:/etc/redis/

查看状态

[root@server1 redis-4.0.8]# redis-server /etc/redis/sentinel.conf --sentinel

这里写图片描述

重新打开一个终端:
[root@server1 ~]# redis-cli 
127.0.0.1:6379> INFO

这里写图片描述
此时关闭server1,serv2成为新的master

127.0.0.1:6379> shutdown
[root@server1 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@server1 ~]# redis-cli 
127.0.0.1:6379> info

这里写图片描述
查看文件发现自动写入slaveof内容
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/81607242