搭建测试环境
集群分片后,只存在一个db,并且自动完成了哨兵功能
[root@radius-db03 etc]# echo $((2**14))
16384
测试使用docker -p 后集群无法初始化完成
单个redis 可以达到10万,一般来说工作中如果qps 达到5万就需要扩容集群
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6379
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6380
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6381
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6382
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6383
docker run --net=host --rm -d redis:6.0.16-alpine --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --port 6384
第一步安装ruby
rpm -e ruby --nodeps
wget https://github.com/postmodern/ruby-install/archive/refs/tags/v0.8.5.tar.gz
tar xf v0.8.5.tar.gz
cd ruby-install-0.8.5/
make install
ruby-install --system ruby 2.6.10
第二步安装redis-trib
# gem 是ruby的包管理工具,可以类比python的pip
yum install rubygems redis-trib -y
gem sources
gem sources --remove https://rubygems.org/
gem sources -a https://mirrors.aliyun.com/rubygems/
gem install redis
第三步创建集群
redis-trib 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
[root@radius-db03 ~]# redis-cli -c
127.0.0.1:6379> CLUSTER NODES
eeaa70f617abc51395d99074712e8e24333e05fc 10.4.7.201:6379@16379 master - 0 1669300510536 2 connected 5461-10922
2006ea4c099a691961ad1de19b007cc45413f633 10.4.7.200:6379@16379 master - 0 1669300509529 1 connected 0-5460
a5fa60010dfedcaff13ce1a28fcc77792684e650 10.4.7.202:6379@16379 myself,master - 0 1669300508000 3 connected 10923-16383
命令 | 样例 | 注释 |
---|---|---|
CLUSTER INFO | 集群状态 | |
CLUSTER NODES | 节点信息 | |
CLUSTER SLOTS | 查看slot分配信息 | |
CLUSTER SAVECONFIG | Forces the node to save cluster state on disk | |
CLUSTER KEYSLOT key | CLUSTER KEYSLOT name |
查询指定key所在slot |
CLUSTER SLAVES node-id | CLUSTER SLAVES c1cdab4809ffea0975211b3ac8e495c421ab7c92 |
查看指定master的slave信息 |
CLUSTER FORGET node-id | CLUSTER FORGET 38a3187f51c20b58326207eba5232e3bdd26230c |
移除节点 |
CLUSTER MEET ip port | CLUSTER MEET 127.0.0.1 6381 |
添加节点 |
CLUSTER FAILOVER | 主从切换,在slave执行 | |
CLUSTER REPLICATE node-id | CLUSTER REPLICATE 38a3187f51c20b58326207eba5232e3bdd26230c |
指定是哪个主节点的从节点,在slave上执行 |
CLUSTER RESET | 首先要flushall 释放,才可以执行cluster reset |
重置当前集群 |