.NET

Redis 主从 哨兵 集群

2019-11-07  本文已影响0人  Carson_jz

摘要:redis的几种部署方式的机制和原理,在windows试验了,实践部署文件windows:《主从+哨兵实践.rar》,《集群实践.rar》,下文是关键步骤和原理

主从

在从库redis从库节点配置主库就可以,主库会识别从库,如果有密码需要配置密码

slaveof <masterip> <masterport>

哨兵

哨兵是检测主库从库健康状态的,当主库挂掉后会把从库升级为主库

监控redis主库服务,主库宕机会自动从其关联的从库选举master节点

# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,26380,和 26381。

#当前Sentinel服务运行的端口
port 26379  
# 哨兵监听的主服务器 2 是决定选举的最低票数
sentinel monitor mymaster 127.0.0.1 6379 2
# 密码
sentinel auth-pass mymaster 123
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover  
sentinel failover-timeout mymaster 10000  
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1

集群分区

twemproxy(中间件代理技术):把整个集群空间逻辑计算为16384个哈希槽, 有多少个分区就是把这些槽平均分为多少份,通过hash计算每条数据应该存放在哪个槽区间(意味着redis集群扩容有上限,超过了这个就要用其他处理方法),这个过程对客户端是透明的---一致性哈希算法

集群最好搭配主从使用,如果仅仅只是做主库集群(分片存储),其中一个分片宕机了,那整个集群就废了。

image.png

redis-cluster把所有的物理节点映射到[0,16383]slot(槽)上,cluster负责维护node--slot--value
客户端与redis节点直连,不需要连接集群所有的节点,连接集群中任何一个可用节点即可, 请求的数据如果不在当前连接节点redis会返回转向指令,指向正确的节点

image.png

一致性哈希算法

实践要素 windows下搭建:

注意事项

#执行命令时候路径不能存在中文,否则直接报错
#把redis-trib.rb文件搞成utf8格式
redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 
上一篇 下一篇

猜你喜欢

热点阅读