Redis之集群搭建

news2024/11/17 3:27:59

redis的集群模式简介:
redis的集群模式中可以实现多个节点同时提供写操作,redis集群模式采用无中心结构,每个节点都保存数据,节点之间互相连接从而知道整个集群状态。
集群搭建步骤如下 (一台服务器模拟多台服务器)
1.创建6个配置文件
把redis配置文件复制到指定位置,并创建6个配置文件。
分别是6379、6380、6381、6389、6390、6391 这6个配置文件
在这里插入图片描述
2.分别编写每个配置,文件内容如下(每个配置文件替换一下涉及的端口的内容)

include /opt/myredis/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.启动这六个redis服务

redis-server redis6379.conf
redis-server redis6380.conf
......

//查一下6个服务是否启动
ps -ef | grep redis

6个节点服务都启动了,并且生成了对应6个节点配置文件。
在这里插入图片描述
4.使用集群命令创建集群
需要进入到redis安转目录下的src文件当中,使用redis-cli命令创建集群
注意:高版本中已经默认安装ruby环境 。
在这里插入图片描述
输入命令如下:

-- replicas 1  采用最简单的方式配置集群,一台主机,一台从机 正好三组
redis-cli --cluster create --cluster-replicas 1 192.168.126.130:6379 192.168.126.130:6380 192.168.126.130:6381 192.168.126.130:6389 192.168.126.130:6390 192.168.126.130:6391

结果如下
在这里插入图片描述
输入yes确定如此分配之后,结果如下,搭建集群成功
在这里插入图片描述
5.集群连接

redis-cli -c -p 6379

查看集群信息

 cluster nodes

主机,从机信息以及当前主机等信息。
在这里插入图片描述
6.插入值会根据计算送到对应插槽中(插槽概念会在下面中进行介绍)

set name chd

计算key所对应的值,去对应插槽的服务器中进行操作。
结果如下,登陆的是6379,set值得时候切换到了6380去插入值
在这里插入图片描述
要是插入多个值呢?

//报错如下
192.168.126.130:6391> mset name chd age 13
(error) CROSSSLOT Keys in request don't hash to the same slot
192.168.126.130:6391> 

这时候需要用到组的形式进行插入

//{}来定义组的概念,从而使key中{}内相同的内容的键值对放到一个slot(插槽)中
//mset k1{组} v1 k2{组2} v2 ...
 mset name{user} chd age{user} 18

在这里插入图片描述
查询组内容如下

//计算key插槽中的值
 cluster keyslot user
 //计算插槽中有几个键
 cluster countkeysinslot 5474
 //返回插槽中键 限定10个数量
 cluster getkeysinslot  5474 10

在这里插入图片描述
7.redis插槽
当我们集群启动成功之后会出现如下日志
所有 16384个插槽已经覆盖。
在这里插入图片描述
简单介绍一下插槽的概念
Redis Cluster中有一个16384长度的槽的概念,他们的编号为0、1、2、3……16382、16383。这个槽是一个虚拟的槽,并不是真正存在的。

正常工作的时候,Redis Cluster中的每个Master节点都会负责一部分的槽,当有某个key被映射到某个Master负责的槽,那么这个Master负责为这个key提供服务,至于哪个Master节点负责哪个槽,这是可以由用户指定的,也可以在初始化的时候自动生成(redis-trib.rb脚本)。

集群中的每个节点负责处理一部分插槽。 举个例子, 如果一个集群可以有主节点, 其中:
节点 A 负责处理 0 号至 5460 号插槽。
节点 B 负责处理 5461 号至 10922 号插槽。
节点 C 负责处理 10923 号至 16383 号插槽。

在Redis Cluster中,只有Master才拥有槽的所有权,如果是某个Master的slave,这个slave只负责槽的使用,但是没有所有权。
8.故障恢复特点
1.当主节点挂掉之后,从节点会自动升为主节点
2.挂掉的主节点服务恢复之后,会变成从节点。
3.如果某一段插槽的主从阶段都挂掉,配置cluster-require-full-coverage为yes,整个集群都会挂掉。
4.如果某一段插槽的主从阶段都挂掉,配置cluster-require-full-coverage为no,整个集群不会挂掉,但是该插槽数据无法使用。

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

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

相关文章

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

首先请看,CMT2300A 是什么产品,或者说是 模组吗? 请看介绍: https://blog.csdn.net/sishuihuahua/article/details/105095994 以及RFPDK 的使用: 这博客,记录了 RFPDK 的使用,以及遇到的一些问题 我说一下&#…

Windows瘦身方法

一、快速删除系统盘临时文件方法, 1、winr打开运行对话框,输入%temp%命令,如图1 图1 2、打开temp文件夹,如图2,选择所有文件,鼠标右键删除或按Del键删除。 图2 二、磁盘清理 1、winr,输入cleanmgr&#x…

重生之我是赏金猎人-SRC漏洞挖掘(十二)-记一次对抗飞塔流量检测的文件上传

0x00 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎亲们点个star 0x01 起因 某项目靶标,是一个人员管理系统,通过webpack暴露的接口 我们成功找到了一个未鉴权的密码修改接口,通过fuzz 我们获取到了该接口的参数username与…

干了1年“点点点”,自己辞职了,下一步是继续干测试还是转开发?

最后后台有个粉丝向我吐槽,不知道怎么选择了....下面就他的情况说说怎么选择? 目前已经提桶跑路,在大工厂里混了半年初级低级功能测试经验,并没有什么用。测试培训班来的。从破山村贫困户贫困专项出去的,学校上海的。…

基于RK3588的嵌入式linux系统开发(二)——uboot源码移植及编译

由于官方的SDK占用空间较大(大约20GB左右),需要联系相关供应商提供,且官方的SDK通过各种脚本文件进行集成编译,难以理解系统开发的详细过程。本章介绍直接从官方Github网站下载源码进行移植,进行uboot移植及…

动态规划【Day02】

动态规划初探坐标型动态规划115 不同的路径 II序列型动态规划515 房屋染色划分型动态规划题目坐标型动态规划 115 不同的路径 II 题目链接 题目描述: “不同的路径” 的跟进问题: 有一个机器人位于一个 mn 网格左上角。 机器人每一时刻只能向下或…

分布式入门

目录 一、RPC 1.1 RPC调用流程 二、SOA 三、微服务 3.1.什么是微服务 3.2.微服务与微服务架构 1 )微服务架构 2) 微服务 3.3.微服务的优缺点 3.1 微服务的优点 3.2 微服务的缺点 四.微服务的技术栈有哪些 一、RPC RPC(Remote Pro…

Linux磁盘查看,使用(分区、格式化、挂载)

目录 0、观察磁盘分区状态:lsblk、blkid、parted 0.1 lsblk列出系统上的所有磁盘列表 0.2 blkid列出设备的UUID等参数 0.3 parted列出磁盘的分区表类型与分区信息 1、磁盘分区:gdisk、fdisk 1.1 fdisk 2、磁盘格式化(创建文件系统…

Redis高级:数据结构

动态字符串SDS Redis保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 获取字符串长度需要进行一个运算非二进制安全…

【Unity VR开发】结合VRTK4.0:其他类抓取

语录: 一个正确的认识,往往需要经过由物质到精神,由精神到物质,即由实践到认识,由认识到实践这样多次的反复,才能够完成。 前言: 前面我们简单的使用了Interactions.Interactable的抓取。今天…

Ant Design Chart词云图

什么是词云图?词云图,也叫文字云,是对网络文本中出现频率较高的“关键词”予以视觉上的突出,出现越多,显示的字体越大,越突出,这个关键词也就越重要。让浏览者通过词云图一眼就可以快速感知最突…

Java_Maven:3. 分模块构建工程

目录 1 需求 2 案例实现 2.1 maven-parent 父模块 2.1.1 创建父工程 2.1.2 定义 pom.xml 2.1.3 将父工程发布至仓库 2.2 ssm_dao 子模块 2.2.1 创建 dao 子模块 2.2.2 定义 pom.xml 2.2.3 dao 代码 2.2.4 配置文件 2.2.5 单元测试 2.2.6 把 dao 模块 install 到本…

MySQL的索引视图练习题

学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (Sno, Cno, Score)…

FDX-B|EMID格式低频RFID 读卡模块LD6900技术选型与说明

FDX-B|EMID格式低频RFID 读卡模块LD6900是华翔天诚推出一款基于 RFID 无线射频识别技术的低频(LF)读卡模块,工作频率支持 134.2KHZ、125KHZ,符合 ISO 11784/5 国际标准,支持对 FDX-B、EMID 两种协议格式电子标签的读取…

C++ ---智能指针详解

文章目录前言一、 为什么需要智能指针?二、内存泄漏2.1 什么是内存泄露?危害是什么?2.2 内存泄露的分类2.3 如何避免内存泄露三、智能指针的使用及原理3.1 RAII3.2 智能指针的原理3.3 std::autoptr3.4 std::unique_ptr3.5 std::shared_ptrstd::shared_ptr的循环引…

Beefxss使用教程图文教程(超详细)

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 Beefxss一、首次使用二、修改账号密码三、自带练习页面四、简单使用五、工具界面介绍六、功能演示1、网页重定向2、社工弹窗3、功能颜色标识…

2022黑马Redis跟学笔记.实战篇(四)

2022黑马Redis跟学笔记.实战篇 四4.3.秒杀优惠券功能4.3.1.秒杀优惠券的基本实现一、优惠卷秒杀1.1 全局唯一ID1.2 Redis实现全局唯一Id1.3 添加优惠卷1.4 实现秒杀下单4.3.2.超卖问题4.3.3.基于乐观锁解决超卖问题1. 悲观锁2. 乐观锁3. 乐观锁解决超卖问题4.4 秒杀的一人一单限…

蓝桥杯stm32 USART 串口接收数据

文章代码使用 HAL 库。 文章目录 前言一、创建 CubeMX 工程:二、 中断接收数据 函数:三、串口接收回调函数实验效果四、接收固定长度的数据。五、串口接收 不定长数据。总结前言 上篇文章是 串口的发送数据,这篇文章接着上次的 讲 串口的接受数据。 一、创建 CubeMX 工程:…

信息安全(一)

思维导图 一、AES加解密 1.概述 1.1 概念 AES: 高级加密标准(Advanced Encryption Standard)是一种对称加密的区块加密标准。 (1)替代DES的新一代分组加密算法 (2)支持三种长度密钥&#x…

网络知识点梳理与总结

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.知识点梳理 前言 本章将会对高级网络应用一些知识点进行梳理。 一.知识点梳理 1.单臂的缺陷有哪些?