标签:key ica 命中 info ref migration 使用 保存 命令
业务发展过程中碰到的峰值瓶颈
使用集群方式可以解决上述问题
分散单台服务器的访问压力,实现负载均衡
分散单台服务器的存储压力,实现可扩展性
降低单台服务器宕机带来的业务灾难
在 redis 的每个节点上,都有两个东西:
当我们向 redis 集群(cluster)中加入一个 key 时,redis 会根据 CRC16 的算法对 key 计算得到一个值(类似求哈希值)然后把结果对 16384 取余,计算出的结果,就是 key 存储的 slot(插槽)位置。
先新建一个配置 redis-6379.conf,然后在从这个配置修改出6份配置,如下
...
# 证明该节点是一个 cluster 节点
cluster-enabled yes
# 指定 cluster 节点启动的配置文件
cluster-config-file nodes-6379.conf
# 节点超时时间10s,企业开发一般不会设置这么短
cluster-node-timeout 100000
启动所有服务
redis-server /redis-4.0.0/conf/redis-6379.conf
redis-server /redis-4.0.0/conf/redis-6380.conf
redis-server /redis-4.0.0/conf/redis-6381.conf
redis-server /redis-4.0.0/conf/redis-6382.conf
redis-server /redis-4.0.0/conf/redis-6383.conf
redis-server /redis-4.0.0/conf/redis-6384.conf
6379、6380、6381 后面用作 master
6382、6383、6384 后面用作 slave
使用 ps -ef | grep redis
命令查看服务状态
发现每个服务后面都有一个[cluster]标识
连接启动的 cluster 服务
提示:
查询 redis 命令在 redis-4.0.0\src 中执行 ll | grep redis-
这里面有个命令叫redis-trib.rb
这其实是一个 ruby 的脚本,需要 ruby 和 rubyg,如果命令运行有问题,根据提示安装相应东西,要保证 ruby 与 gem 版本一样,可以通过 reby -v
与 gem -v
查看对应版本
创建集群(在 redis-4.0.0\src 目录下):
./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
存取数据测试
连接 6379 master 服务,连接命令: redis-cli -c
这是专门用来操作 cluster 集群的操作,然后执行set name zhangsan
连接 6382 slave 服务,连接命令: redis-cli -c -p 6382
然后再执行 get name
如果某个 slave 服务停止掉,slave 服务连接的 master 服务会得到通知,其余的 master 服务都会得到通知(不过信息与有关系的那个master不一样),并不会对整个集群造成多大影响
如果某个 master 服务停止掉,slave 多次尝试连接 master 失败,会自己转为 master, 等到原先的 master 再次启动时,会作为 slave 去同步数据。总结一下就是会出现角色互换
设置加入 cluster, 成为其中的节点
cluster-enabled yes|no
cluster 配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file <filename>
节点服务响应超时时间,用于判断该节点是否下线或切换为从节点,线上一般30s1min,测试的话5s10s
cluster-node-timeout <milliseconds>
master 连接的 slave 最小数量
cluster-migration-barrier <count>
查看集群节点信息
cluster nodes
进入一个从节点 redis,切换其主节点
cluster replicate <master-id>
发现一个新节点,新增主节点
cluster meet ip:port
忽略一个没有 solt 的节点
cluster forget <id>
手动故障转移
cluster failover
标签:key ica 命中 info ref migration 使用 保存 命令
原文地址:https://www.cnblogs.com/wuyongqiang/p/12742249.html