Redis分片集群

哨兵集群虽然解决了高可用和高并发读问题,但是还是有缺陷

1. 因为是主节点是单节点,并发写存在瓶颈

2.数据量大了每个节点存储相同的数据,造成内存紧张,资源浪费

redis.conf文件 

port 6379
# 开启集群功能
cluster-enabled yes

# 集群的配置文件(redis创建)
cluster-config-file /tmp/6379/nodes.conf

# 心跳超时
cluster-node-timeout 5000

# 持久化文件存放目录
dir /tmp/6379
 
# 绑定地址,任何IP都可以访问
bind 0.0.0.0

# 后台运行
daemonize yes

# 注册实例的IP
replica-announce-ip 192.168.208.131

# 不开启保护模式
protected-mode no

# 数据库数量
databases 1

# 后台运行日志
logfile /tmp/6379/run.log

cd /tmp
mkdir 7001 7002 7003 8001 8002 8003

cd /tmp
echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf

cd /tmp
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf

cd /tmp
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf


ps -ef | grep redis

# 一(7)主一从(8)  ----真实环境每个节点部署在不同的机器,修改IP就好
redis-cli --cluster create --cluster-replicas 1 \
192.168.208.131:7001 \
192.168.208.131:7002 \
192.168.208.131:7003 \
192.168.208.131:8001 \
192.168.208.131:8002 \
192.168.208.131:8003 

查看集群节点信息

#命令: redis-cli -h <ip> -p <port> -a <password> cluster nodes

redis-cli -p 7001 cluster nodes

 查看集群状态

#命令: redis-cli -h <ip> -p <port> -a <password> cluster info 

redis-cli -p 7001 cluster info 

#关闭集群
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-cli -p {} shutdown

原理篇 

3个主节点master 平均分配了16384个插槽 (桶)

master-node1 (0-5460)

master-node2 (5461-10922)

master-node3 (10923-16383)

>>set name 张三

HashCode code  = CRC16 (”name “)

slotNum = code%16384

假设slotNum == 100 ,那么写入找master-node1节点,"张三" 就在master-node1和salve-node1

补充:

>>set {na}me 张三

HashCode code  = CRC16 (“na” )

重要:场景将同一类数据放在相同的节点怎么做?如手机数据放在master-node1 空调放在master-node2 

解答:利用{?}

----------------------------------------------

相关推荐

  1. Redis-分片大纲

    2024-05-15 21:52:10       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-15 21:52:10       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-15 21:52:10       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-15 21:52:10       87 阅读
  4. Python语言-面向对象

    2024-05-15 21:52:10       96 阅读

热门阅读

  1. Pytorch学习-调整torchvision.models中模型输出类别数

    2024-05-15 21:52:10       38 阅读
  2. 代码随想录Day28

    2024-05-15 21:52:10       35 阅读
  3. 绘制奇迹:Processing中的动态图形与动画

    2024-05-15 21:52:10       36 阅读
  4. 深度学习实战:定制化智能狗门的迁移学习之旅

    2024-05-15 21:52:10       28 阅读
  5. 机器学习_朴素贝叶斯

    2024-05-15 21:52:10       36 阅读
  6. 论文合集整理推荐2024.5.15

    2024-05-15 21:52:10       34 阅读
  7. 如何在 Ubuntu 14.04 上为 Nginx 创建 SSL 证书

    2024-05-15 21:52:10       34 阅读
  8. 《IT行业的未来:趋势与展望》

    2024-05-15 21:52:10       38 阅读