集群架构:
集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。
集群的作用:
- 分散当年太服务器的访问压力,实现负载均衡
- 分散单台服务器的存储压力,实现可扩展性
- 降低单台服务器宕机带来的业务灾难
数据存储设计
- 通过算法,计算出key应该放的位置
- 将所有存储空间切割成16385份,每台主机保存一部分,每份代表一个存储空间(槽),一个槽可以保存很多数据
- 将key按照计算结果放入对应空间
若增加一个数据库,则没个库都分一部分槽给新数据库
集群内部通讯设计
数据库中保存了其他数据库的信息,访问一个数据库,如果没有找到数据,也能找到数据具体的位置
redis集群命令:
创建集群:
./redis-trib.rb create --replicas 1 127.0.0.1:6379 redis2 redis3 redis4 redis5 redis6
前3个是主,后三个是从
使用redis-cli -c去连接redis集群,而不是使用redis-cli
主从下线与主从切换
从下线:主会标记一下这个从,从恢复之后,主又连接成功,同步数据
主下线:从节点会升级为master,主节点会被标记为fail,主恢复之后,会变成slave,与新的主节点进行数据同步
配置: