业务场景,需要存储50G的数据。对于内存和硬盘配置不足,选用两种方式
步骤1:
mkdir mycluster
cp /opt/redis-6.2.6/redis.conf redis.conf
步骤2:
include redis.conf
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"
#打开集群模式
cluster-enabled yes
#设定节点配置文件
cluster-config-file nodes-6379.conf
#设定节点失联时间,超过,会自动进行主从切换
cluster-node-timeout 15000
步骤3:
:%S/原内容/要替换的内容
:%s/6379/6380
步骤4:
步骤5
步骤6
redis-cli --cluster create --cluster-replicas 1 192.168.188.3:6379
192.168.188.3:6380 192.168.188.3:6381 192.168.188.3:6579 192.168.188.3:6580
192.168.188.3:6581
注意:
当出现此错误时,需要把redis.conf配置文件中的protected-mode no
yes改为no,重启所有redis在执行步骤6
在使用redis cluster方案中,一个分片集群有16384个哈希槽。
根据键值对的key,按照CRC16算法计算一个16bit的值。再用这个值对16384取模运算,得到的数代表对应编号的hash slot
cluster create命令创建集群时,redis会自动把这些hash slot平均分布在集群实例上。如果集群中有N个实例(主库),每个实例上分配到的hash slot就是16384/N
使用cluster addslos 手工分配哈希槽。
步骤1
redis-cli -c -p 6379
步骤2
set k1 v1
set k2 v2
get k1
get k2
步骤3
mset k3 v3 k4 v4 k5 v5
mset name{user:001} zhangsan age{user:001} 18 gender{user:001} man
步骤4
get k1
get name{user:001}
步骤1
127.0.0.1:6379>shutdown
exit
redis-cli -c -p 6380
步骤2:
步骤3:
如果有一段hash slot的主从节点都宕机,redis是否继续工作?
通过下面配置,默认是yes,如果主从都挂掉,整个集群就都挂掉
如果是no,就表示该hash slot数据全部都不能使用,也无法存储
cluster-require-full-coverage yes