栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Redis哨兵搭建

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis哨兵搭建

Redis哨兵搭建

哨兵:在redis里监控服务,在主从复制结构中,当主服务器宕机,哨兵可以监控到服务宕机,并且在服务器中选举产生一个新的主服务器。
选举多个哨兵,一个是高可用,另一个原因是投票,当都投票到一个说明这个服务器宕机。少数服从多数

搭建主从服务器 — 一主多从 启动系统docker

systemctl restart docker

清理容器

docker rm -f $(docker ps -aq)

进入容器

docker exec -it redis6379 redis-cli

查看集群信息,默认是主服务器

info replication

启动两个从服务器 启动redis6380容器,作为 redis6379 的从服务器启动 –port 和 --slaveof 是 redis-server 命令的参数

docker run -d --name redis6380 --net=host --restart=always redis
redis-server --port 6380 --slaveof 192.168.64.150 6379

启动redis6381容器,作为 redis6379 的从服务器启动

docker run -d --name redis6381 --net=host --restart=always redis
redis-server --port 6381 --slaveof 192.168.64.150 6379

查看三个 redis 服务的角色

docker exec -it redis6379 redis-cli

info replication

docker exec -it redis6380 redis-cli -p 6380

info replication

docker exec -it redis6381 redis-cli -p 6381

info replication

启动哨兵

哨兵的配置文件
mkdir /opt/sentinel/
cd /opt/sentinel/

配置文件中的 “sentinel monitor mymaster 192.168.64.150 6379 2” 2表示几个哨兵决定主服务器宕机 末尾的 2 表示两个哨兵投票确认主服务器宕机,哨兵才会认为主服务器宕机

cat <5000.conf port 5000 sentinel monitor mymaster
192.168.64.150 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs
mymaster 1 EOF

cat <5001.conf port 5001 sentinel monitor mymaster
192.168.64.150 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs
mymaster 1 EOF

cat <5002.conf port 5002 sentinel monitor mymaster
192.168.64.150 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs
mymaster 1 EOF

启动三个哨兵

docker run -d --name sentinel5000
-v /opt/sentinel/5000.conf:/sentinel.conf
–net=host redis redis-sentinel /sentinel.conf

docker run -d --name sentinel5001
-v /opt/sentinel/5001.conf:/sentinel.conf
–net=host redis redis-sentinel /sentinel.conf

docker run -d --name sentinel5002
-v /opt/sentinel/5002.conf:/sentinel.conf
–net=host redis redis-sentinel /sentinel.conf

进入一个哨兵容器,查看它监控的主从服务器和其他哨兵

docker exec -it sentinel5000 redis-cli -p 5000 sentinel master
mymaster sentinel slaves mymaster sentinel sentinels mymaster

停止主服务器,测试主服务器重新选举 停止主服务器

docker stop redis6379

在哨兵日志中查看服务器切换日志: +switch-master mymaster 192.168.64.150 6379 192.168.64.150 6381

docker logs sentinel5000

查看 6380 和 6381 服务器的角色变化

docker exec -it redis6380 redis-cli -p 6380

info replication

docker exec -it redis6381 redis-cli -p 6381

info replication

重新启动6379,不会把6379切换成主服务器,而是作为从服务器

docker start redis6379

docker exec -it redis6379 redis-cli

info replication

客户端api连接哨兵存取数据

Set sets = new HashSet<>();
sets.add(“192.168.64.151:5000”);
sets.add(“192.168.64.151:5001”);
sets.add(“192.168.64.151:5002”);

    JedisPoolConfig poolConfig = new JedisPoolConfig();

    JedisSentinelPool pool = new JedisSentinelPool("mymaster",sets,poolConfig);
    Jedis jedis = pool.getResource();
    jedis.set("a", "aaaaaaa");
    System.out.println(jedis.get("a"));
    jedis.close();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号