15. Redis 集群
1. 问题
- 容量不够,redis 如何进行扩容?
- 并发写操作,redis 如何进行分摊?
- 主从模式、薪火相传模式、主机宕机,导致 ip地址发生变化,
应用程序
中配置需要修改对应的主机地址,端口等信息
以前可以通过 代理主机 解决,但是在 Redis3.0中提供了解决方案,就是
无中心化集群
配置。
2. 什么是集群
- Redis 集群实现了对 Redis 的水平扩容,即启动 N 个 redis 节点,将整个数据库分布存储在这 N 个节点中,每个节点存储总数据的 1/N
- Redis 集群通过分区(partition)来提供一定程度的可用性(availability):即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求。
3. 集群搭建方式
- 刪除所有
*.rdb
文件 - 创建配置文件
1 include /myredis/redis.conf 2 pidfile "/var/run/redis_6379.pid" 3 port 6379 4 dbfilename "dump6379.rdb" 5 6 masterauth "****************" 7 8 # 集群配置 9 cluster-enabled yes 10 cluster-config-file nodes-6379.conf 11 cluster-node-timeout 15000
- 启动 redis 服务,成功启动的话会在显示为
redis-server *:6379 [cluster]
,并在目录中生成nodes-6379.conf
文件 - 进入 redis 安装目录的 src 下,输入以下命令
redis-cli --cluster create --cluster-replicas 1 本机IP地址:6379 本机IP地址:6380 本机IP地址:6381 本机IP地址:6389 本机IP地址:6390 本机IP地址:6391 # 如果 提示 [ERR] Node 8.130.80.29:6379 NOAUTH Authentication required. # 出现以上错误是因为 redis 设置了密码,在 redis-cli 后添加 -a 密码
- 连接
- 输入
redis-cli -c -p 6379 -a 密码
即可进入到Redis中 - 在命令行中输入,
cluster nodes
可以查看集群信息
- 输入
4. 如何分配这六个节点?
5. 什么是 slots
6. 故障恢复