当前位置: 首页 > news >正文

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 

解答:利用{?}

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

http://www.lryc.cn/news/349895.html

相关文章:

  • Math.Round()函数说明
  • 001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮
  • Vue 快速入门:Vue初级
  • 什么是IP跳变?
  • Linux服务器lvm磁盘管理fdisk和df磁盘大小不同修改
  • AOP是什么和OOP的区别
  • Clickhouse 字符串函数 - 2
  • 【个人成长】Fitten Code 测试案例分析
  • 管理Anaconda虚拟环境的实用指南
  • python如何在图片上写斜体字
  • 算法练习第22天|39. 组合总和、40.组合总和II
  • CCF PTA 2022年11月C++大富翁游戏
  • React获取form表单值的N种方式
  • Apache Knox 2.0.0使用
  • Tomcat 内核详解 - Web服务器机制
  • 几个人脸库对于面部动作识别的功能比较
  • IDEA 使用Alibaba Cloud Toolkit 实现远程 自动部署
  • 蓝桥杯备战15.完全二叉树的权值
  • 【前端】LayUI监听事件汇总
  • 【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(1.VCS NLP VC LP)
  • Elasticsearch 实现word、pdf、txt、excel文档内容快速检索(保姆级教程)
  • [初学rust] 04_rust复合类型
  • 什么是Zoho CRM客户关系系统管理?
  • 青岛东软载波子公司东软载波微电子授权世强硬创代理,出货量累计超20亿颗
  • YOLO损失函数——SIoU和Focal Lossr损失函数解析
  • C++:编程世界的永恒之石
  • 线上3D博物馆搭建简单吗?有何优势?有哪些应用场景?
  • Rust 语言的“命名空间” —— mod
  • 加速科技突破2.7G高速数据接口测试技术
  • 从0开始搭建一个react项目 第一 二 三天