redis从0开始到集群

介绍基本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
redis 集群

主从模式
缺点 从数据库可能会丢失部分数据,操作模式 使用DNS负载均衡,需要人工介入

哨兵模式
自动化,sentinel工具。配置复杂,性能和高可用表现一般。
client应该连接哨兵sentinel节点,从哨兵那拿到 主从节点。
缺陷:1.单点写的节点故障,2. 数据恢复非常慢, 3.写性能瓶颈(10w并发)
主观故障:有一半节点认为主节点下线,哨兵启动巡警模式,处理,把主节点下线,从节点选出一个作为主节点 。从新的主节点复制数据。
客观故障:


集群模式:
一个主节点+2个副本节点为一个集群, 可以有多个集群。 且master节点提供对外节点。
16384虚拟节点,平均给每个集群,每个节点负责部分范围的hash slot。
Client: 从 16384 % hashkey 的余数 落在那个集群上。理论上集群最大为 16384个,一般是1000个。
当一个集群master挂了,就从副本选一个数据全的作为master。 访问瞬断损失最小


实战,by docker

下载 redis-default.conf redis.conf

默认 port 6379

1
2
3
4
5
#redis.conf
wget -O redis.conf /usr/uploads/2022/09/3831797556.conf

#redis-default.conf
wget -O redis.conf /usr/uploads/2022/09/1047504143.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
redis.conf 修改
daemonize yes #进程守护运行
port 端口
protected-mode no #关闭保护模式
bind 127.0.0.1 #改成0.0.0.0
dir /usr/local/rediscluster/node1 #存放路径
#集群参数
cluster-enabled yes
cluster-config-file nodes1.conf #redis自动维护的,建议改成节点名
cluster-node-timeout 5000 #集群内网超时
appendonly yes #数据同步
requirepass xxx ##主从复制的时候密码
masterauth xxx #副本连接Master密码

docker run -v `pwd`/redis.conf:/redis.conf -p 6379:6379 --name redis_cluster1 redis /redis.conf

docker run -v `pwd`/redis.conf:/redis.conf -p 6379:6379 --name redis_cluster2 redis /redis.conf

docker run -v `pwd`/redis.conf:/redis.conf -p 6379:6379 --name redis_cluster3 redis /redis.conf

创建集群,redis版本 >=5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
redis-cli  --cluster 
#--cluster-relicas 1 副本个数
# -a 密码登录
redis-cli --cluster create ip:port ip:port ip:port --cluster-relicas 1 -a 密码

## 连接测试


redis-cli -a 密码 -h IP地址 -p 端口

## 智能客户端
redis-cli -a 密码 -c -h IP地址 -p 端口
## 计算哈希槽
cluster keyslot a 展示slot 应该在那个槽

## cluster info 集群信息


流量倾斜, 比如热点关键词

big key

常见问题

1.为什么Waiting for the cluster to join 一直卡在这里

1
2
https://www.cnblogs.com/luck-pig/p/12311320.html

2.At least 6 nodes are required.

1
2
3
redis集群必须至少3个master , --cluster-replicas 为1 的时候 一个master配1个s 副本,

所以最少要6个redis

3.WRONGPASS invalid username-password pair

1
使用 -a 密码来解决连接问题

实战Docker集群

访问链接

作者

舰长胡椒

发布于

2022-09-08

更新于

2023-10-13

许可协议

评论