redis集群

news2025/1/17 13:54:54

Redis集群在保证主从加哨兵的基本功能之外,还能够提升Redis存储数据的能力。

一致性hash环

k1-->crc(16)===? 0-16384

 redis集群的ping-pang机制:一个主机向另一个主机ping,另一个pang回来,说明连接成功,通过这样的方式判断redis是否宕机,如果ping了没有pang回来,不一定是它坏了,也有可能是你坏了。

redis主机宕机后,从机可以上位

集群默认分配16384个hash槽,如果有三个主节点,则每个阶段对应0-5000,5000-10000,1000-15000 

有四个主节点 ,对应你  0-4000 4000-8000 8000-12000 12000-16000

存取数据是对key进行crc16算法,对16384取余,余数在那个范围里就在那个redis里面存。

 Redis集群选举原理

 

集群配置

新建 /usr/local/docker/redis/cluster 目录  目录下新建 conf 目录   conf目录下新建redis1-6.conf文件

 下图是文件的内容

# redis.conf
# 指定redis的端口号
port 7001
# 开启Redis集群
cluster-enabled yes
# 集群信息的文件
cluster-config-file nodes-7001.conf
# 集群的对外ip地址
cluster-announce-ip 192.168.59.12
# 集群的对外port
cluster-announce-port 7001
# 集群的总线端口
cluster-announce-bus-port 17001

redis1-6.conf的ip地址都一样,是宿主主机地址,但是总线端口,对外port,集群信息文件,port改为对应的123456.

docker-compose.yml文件如下:

# docker-compose.yml
version: "3.1"
services:
  redis1:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis1
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7001:7001
      - 17001:17001
    volumes:
      - ./conf/redis1.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]
  redis2:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis2
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7002:7002
      - 17002:17002
    volumes:
      - ./conf/redis2.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]  
  redis3:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis3
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7003:7003
      - 17003:17003
    volumes:
      - ./conf/redis3.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]  
  redis4:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis4
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7004:7004
      - 17004:17004
    volumes:
      - ./conf/redis4.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]  
  redis5:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis5
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7005:7005
      - 17005:17005
    volumes:
      - ./conf/redis5.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]  
  redis6:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis6
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 7006:7006
      - 17006:17006
    volumes:
      - ./conf/redis6.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]  

docker-compose up -d 运行

启动了6个Redis的节点。

随便跳转到一个容器内部,使用redis-cli管理集群

在容器内部输入一下命令,6台reids对应的ip加端口

redis-cli --cluster create 192.168.59.12:7001  192.168.59.12:7002  192.168.59.12:7003  192.168.59.12:7004  192.168.59.12:7005  192.168.59.12:7006 --cluster-replicas 1

显示以下信息,点yes

输入命令 redis-cli -h 192.168.59.12 -p 7001 -c 连接   输入7001端口,存到7003里面了,就是通过算法算的

 

 redis-cli连不上

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

脑与认知科学基础(期末复习)

脑与认知科学基础(期末复习) 文章目录脑与认知科学基础(期末复习)第一章 脑与认知科学简介认知元认知中国脑计划第二章 大脑简介Human brain解剖参考坐标大脑皮质脑的内侧和腹侧面神经系统神经系统的细胞神经元间信号传导神经回路…

【LeetCode】No.94. Binary Tree Inorder Traversal -- Java Version

题目链接:https://leetcode.com/problems/binary-tree-inorder-traversal/ 1. 题目介绍(Binary Tree Inorder Traversal) Given the root of a binary tree, return the inorder traversal of its nodes’ values. 【Translate】&#xff1a…

Trie字典树详解

字典树📖1. 什么是Trie树📖2. Trie树的一些应用场景📖3. Trie树的优缺点📖4. Trie树的节点怎样定义📖5. 代码实现📖6. 字典树的优化📖1. 什么是Trie树 Trie树,又叫字典树&#xff0…

linux性能中常用压测工具

stress工具 stress是Linux的一个压力测试工具,可以对CPU、Memory、IO、磁盘进行压力测试。 安装: sudo yum install stress 命令的使用: -c, --cpu N:产生N个进程,每个进程都循环调用sqrt函数产生CPU压力。 -i, --io N:产生N个进…

Java搭建实战springboot基于若依项目工时统计成本核算管理源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套基于若依开发的springboot项目工时统计成本核算管理源码,该系统是前后端分离的架构,前端使用Vue2,后端使用SpringBoot2。 技术架构 技术框架:Sp…

计算机毕设推荐基于微信小程序的自来水收费系统

💖🔥作者主页:计算机毕设老哥🔥 💖 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 Java实战项目专栏 Python实…

帝国CMS后台登录显示空白解决方法汇总

升级PHP版本由原来5.X切换使用PHP7.*运行环境时会出现登录后台空白的情况,以下两种方法可设置支持PHP7.* 帝国CMS后台登录显示空白解决方法操作步骤: 1、全新安装帝国CMS时: 只需安装时“MYSQL接口类型”选择“mysqli”即可支持PHP7系列。系统会自动识别。 2、已经运行的帝国…

送给python初学者的福利!掌握了这些知识,你将超过80%的小白

前言 Python要学多久才能学会?我没有接触过编程怎么办?这是每一个初学者心中的疑问。 小编曾在网上看到一个帖子: 有一名网友是学金融的,他去上海找工作,看到好多公司都要有 Python 开发经验的,而且工资…

UE5笔记【八】导入FBX网格和和材质到UE5

资源网站:TurboSquid。进入,然后搜索Crate。筛选条件:Free。然后找到这个木箱子。 注册下载时,看到好多3D软件。 点击fbx.zip下载。然后解压到相应目录下。 接下来就是如何导入到UE5中,使用这个素材了。 第一种方式&…

MIT6.824 2022 Raft

MIT6.824 2022 RaftRaftleader electionlogpersistencelog compaction整体测试Raft leader election 不论是访问还是修改Raft可变类成员,都需要加锁 rf.mu.Lock() if rf.state ! Leader {rf.mu.Unlock()return } args : AppendEntriesArgs{Term: rf.currentTerm,…

某网站X-Signature签名破解

网站地址: aHR0cHM6Ly9mc2UuYWdpbGVzdHVkaW8uY24= (b64解密) 先全局搜索X-Signature,跳转到app.xxx.js里,找到X-Signature,发现是对请求参数做了_操作,向上_为d 向上找d, d为一个函数, 跟到这里打印i值(“_platform=web,_ts=1669108721743,_versioin=0.2.5,keyword=…

华为服务体系:ITR流程体系详解

如果开发出了好产品,同时也高效率地将产品交付到客户手中。 但客户最终还是选择投诉,而且复购率低,原因是什么呢? 这就跟ITR流程有关了,在ITR不顺畅的时候,企业可能会面临如下挑战: 客户总是…

Serverless 架构下的 AI 应用开发

作者:阿里云云原生 本篇内容连载自《Serverless 架构下的 AI 应用开发:入门、实战与性能优化》。 Serverless 架构与 CI/CD 工具的结合 CI/CD 是一种通过在应用开发阶段引入自动化流程以频繁向客户交付应用的方法。 如图所示,CI/CD 的核心概…

Vue3中的computed和watch属性

文章目录1. computed计算属性2. watch侦听器属性2.1 watchEffect2.2 watch1. computed计算属性 简写写法&#xff08;只实现了 get &#xff09;&#xff1a; <template><div><ul><li v-for"item of carts" :key"item.id">{{ it…

精华推荐 | 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的存储系统的实现原理和持久化机制

RocketMQ的发展历史 RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。 2016 年 11 月 28 日&#xff0c;阿里巴巴向 广西党性培训 Apache 软件基金会捐赠RocketMQ&#xff0c;成为 Apache 孵化项目。 2017 年 9 月 25 日&#xff0…

webpack安装与基础

概念 webpack是一个前端打包工具用它来处理现代前端错综复杂的依赖关系&#xff08;A插件需要B插件B插件有D插件 F插件需要A插件&#xff09;生成浏览器可以识别静态资源Vue 前期脚手架就是用webpack制作&#xff08;Vue 开始推荐vite构建工具&#xff08;更快&#xff09;&am…

[UE][UE5]Gameplay框架,Actor,pawn,playerController(玩家控制器),Character(角色)之间的关系

[UE][UE5]Gameplay框架,actor,pawn,playerController,Character之间的关系Actor,pawn,playerController(玩家控制器),Character(角色)之间的关系Actor&#xff1a;pawn&#xff1a;character&#xff1a;控制器&#xff08;Controller&#xff09;&#xff1a;playerController…

sqlServer如何实现分页查询

sqlServer的分页查询和mysql语句不一样&#xff0c;有三种实现方式。分别是&#xff1a;offset /fetch next、利用max&#xff08;主键&#xff09;、利用row_number关键字 一、offset /fetch next关键字 2012版本及以上才有&#xff0c;SQL server公司升级后推出的新方法。 …

Shiro前后端分离流程

1.自定义filter 拦截所有携带token的请求&#xff0c; 调用自定义realm&#xff0c;判断token是否正确&#xff0c;不正确realm抛出异常&#xff0c;在filter中被捕获&#xff0c;重定向至token不正确界面 重写了三个方法&#xff1a; 1》isAccessAllowed&#xff1a;如果带…

有一个项目管理软件,名字叫8Manage PM!

优秀的软件工具在项目管理中起到极为重要的作用。8Manage PM项目管理软件由高亚科技自主研发&#xff0c;为项目工作提供项目功能、业务功能、服务功能和工具&#xff0c;有力推动项目成功。 8Manage软件项目功能包括完整性管理、需求管理、计划和执行、资源管理、工作量&…