摘要: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集群扩容有上限,超过了这个就要用其他处理方法),这个过程对客户端是透明的---一致性哈希算法
集群最好搭配主从使用,如果仅仅只是做主库集群(分片存储),其中一个分片宕机了,那整个集群就废了。
redis-cluster把所有的物理节点映射到[0,16383]slot(槽)上,cluster负责维护node--slot--value
客户端与redis节点直连,不需要连接集群所有的节点,连接集群中任何一个可用节点即可, 请求的数据如果不在当前连接节点redis会返回转向指令,指向正确的节点
一致性哈希算法
实践要素 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