栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis架构

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

redis架构

主从架构:

启动主服务器

docker run -d --name redis6379 
--restart=always --net=host redis

启动从服务器

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

启动从服务器

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

查看

docker exec -it redis6379 redis-cli
info replication
docker exec -it redis6380 redis-cli
info replication
主从哨兵
mkdir /opt/sentinel/
cd /opt/sentinel/

# 配置文件中的 "sentinel monitor mymaster 192.168.64.150 6379 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();

搭建redis集群

https://wanght.blog.csdn.net/article/details/119374989

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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