花都有?]有网站建设的/关键词列表
Redis 7 已经于2022年4月28号正式发布,其中包括了将近50个新的命令,增加了许多新的特性,并且在整个Redis 6到Redis 7的开发过程中,我也对Redis 的开源社区贡献了一些微薄的力量。在这篇文章中,我来给大家介绍几个自己亲身参与的几个Redis 7 功能,并希望能够为Redis 8做出更多的贡献。
在这篇文章中,我将介绍以下的内容:
1. 在redis.conf 配置文件中新增加的参数:cluster-port
2. 在sentinel.conf配置文件中新增加的参数:master-reboot-down-after-period
3. 在sentinel中新增加的命令:sentinel debug
4. 在集群中新增加的命令:cluster addslotsrange 和cluster delslotsrange
5. 对info命令的增强
6. 修复sentinel更新密码的一个隐患
7. 增加了client list 命令的显示内容
在redis.conf配置文件中增加了一个新的参数cluster-port 用于为处于集群模式下的节点使用
我们知道,当一个节点处于集群模式中,它至少需要有2个TCP连接端口,一个负责与客户端进行连接,我们通常叫做命令端口,例如6379;而另外一个TCP的连接端口,我们可以叫集群端口,是负责当前节点与集群中其他节点进行故障检测,配置更新等其他功能,这个端口的数值在Redis 7之前都是命令端口+10000. 这种设置方式就完全限制的客户端对集群端口的配置,如果当前节点的这个端口值被其他服务所占用,那么当前节点就会启动失败。
在Redis 7中,我们增加了cluster-port这个参数,可以允许客户自己定义集群端口,给了客户更大的自由度,使用格式是cluster-port 0。
如果客户在配置文件中将这个端口设置为0,那么当前节点的集群端口依然等于命令端口+10000;如果客户将这个端口设置为大于0,那么当前节点在启动时将会将集群端口设置为它的值。
在sentinel.conf配置文件中新增加了一个参数:master-reboot-down-after-period
它的正确使用格式是:SENTINEL master-reboot-down-after-period mymaster 0
下面来阐述一下增加这个参数的原因:
在增加这个参数之前,Sentinel节点是通过在sentinel.conf设置的down-after-milliseconds参数来向主节点,备节点和其他sentinel节点发送PING请求来确认发送的目的节点是否正常工作。在sentinel.conf或者用户自定义的sentinel配置文件中,如果down-after-milliseconds的设置大于或者等于1000,那么sentinel发送频率是1秒,如果down-after-milliseconds的设置小于1000,那么sentinel节点发送PING请求的频率是down-after-milliseconds值(毫秒数)。
但是当主节点在非常短的时间内发生了重启,例如0.01秒,那么sentinel节点会收到一个”reboot”信号。在引入参数Master-reboot-down-after-period之前,sentinel是不会发生主备切换的,那么如果主节点有很大的数据要从RDB文件中读取到内存中,这个时候主节点是处于LOADING状态,是不能接受外部数据响应的,会导致客户端认为主节点unavailable.
在Redis 7中,如果用户在sentinel的配置文件中将master-reboot-down-after-period设置为大于0的数,那么当sentinel检测到第一次收到的“reboot”的时间与当前时间间隔大于master-reboot-down-after-period的毫秒数,并且主节点依然处于LOADING状态,那么sentinel将开始进入主备切换状态。这样就大大地降低了数据丢失和主节点处于Unavailable 的可能性。
在sentinel中新增加的命令:sentinel debug
为了方便Redis的开发人员对sentinel的部分参数进行调试或者在写测试用例的时候更改一些参数,在Redis 7的Sentinel的模式中,增加了一个新的命令:sentinel debug
当用户在客户端只运行sentinel debug命令时候,它会显示当前状态下,在Redis的sentinel部分可以调试的13个参数的具体信息,例子如下:
127.0.0.1:26379> sentinel debug1) "INFO-PERIOD"2) "10000"3) "PING-PERIOD"4) "1000"5) "ASK-PERIOD"6) "1000"7) "PUBLISH-PERIOD"8) "2000"9) "DEFAULT-DOWN-AFTER"
10) "30000"
11) "DEFAULT-FAILOVER-TIMEOUT"
12) "180000"
13) "TILT-TRIGGER"
14) "2000"
15) "TILT-PERIOD"
16) "30000"
17) "SLAVE-RECONF-TIMEOUT"
18) "10000"
19) "MIN-LINK-RECONNECT-PERIOD"
20) "15000"
21) "ELECTION-TIMEOUT"
22) "10000"
23) "SCRIPT-MAX-RUNTIME"
24) "60000"
25) "SCRIPT-RETRY-DELAY"
26) "30000"
当用户想要更改一个或者多个参数的时候,可以运行如下命令:
Sentinel debug parameter value [parameter value…]
正像上面的例子中信息一样,通过这个命令,用户可以更改下面13个参数的信息:
SENTINEL_INFO_PERIOD
SENTINEL_PING_PERIOD
SENTINEL_ASK_PERIOD
SENTINEL_PUBLISH_PERIOD
SENTINEL_DEFAULT_DOWN_AFTER
SENTINEL_TILT_TRIGGER
SENTINEL_TILT_PERIOD
SENTINEL_SLAVE_RECONF_TIMEOUT
SENTINEL_MIN_LINK_RECONNECT_PERIOD
SENTINEL_ELECTION_TIMEOUT
SENTINEL_SCRIPT_MAX_RUNTIME
SENTINEL_SCRIPT_RETRY_DELAY
SENTINEL_DEFAULT_FAILOVER_TIMEOUT
新增cluster addslotsrange 命令和cluster delslotsrange 命令
在Redis 7 之前,如果用户想为集群(cluster) 中的一个节点增加一些槽或者从一个节点中删除一些槽,那么唯一的选择就是cluster addslots slot [slot…] 或者cluster delslots slot [slot…]。这两个命令的缺点在于如果用户想要一次性操作大量连续的槽,那么需要输入大量的参数。例如下面的例子,如果想要把1到5000 的槽值赋予一个节点,那么用户需要运行如下的命令:
Cluster addslots 1 2 3 …… 4999 5000
在cluster addslots之后需要传递5000个参数
那么在新增的cluster addslotsrange命令中,用户只需要传递2个参数:开始的槽值和结束的槽值,例子如下:
cluster addslotsrange 1 5000.
同理,cluster delslotsrange命令也是对已有的cluster delslots进行了增强,当用户想要删除大量的连续槽值的时候,也只需要传递2个参数即可
这两个新命令的具体格式如下:
CLUSTER DELSLOTSRANGE startslot endslot [startslot endslot...]
CLUSTER ADDSLOTSRANGE startslot endslot [startslot endslot...]
更加具体的使用和注意事项,可以参考redis的链接:
https://redis.io/commands/cluster-addslotsrange/
https://redis.io/commands/cluster-delslotsrange/
对Info命令的增强
在客户端中执行info命令,在Redis 7中,info命令可以接受多于一个section的参数,例如
INFO Server Replication
INFO CPU Memory
INFO default commandstats all
具体关于info命令的使用,可以参考链接:https://redis.io/commands/info/
修复sentinel更新密码的一个隐患
增加了当用户在Sentinel的客户端使用sentinel set mastername auth-pass newpassword 命令时的安全性
在Redis 7.0 之前的版本中,如果用户在Sentinel的客户端执行如下命令时:
127.0.0.1:17379> sentinel set mymaster auth-pass THIS_IS_PASSWORD
OK
在sentinel的服务器端,用户会看到一个log:
22720:X 05 Oct 2021 12:43:16.248 # +set master mymaster 127.0.0.1 6379 auth-pass THIS_IS_PASSWORD
我们可以看到,新设置的密码被打印到客户端或者可以被直接存储到日志文件中,这个非常不安全的。在Redis 7中,这个问题被修复了。如果客户执行同样的命令,那么客户会看到类似下面的日志:
22720:X 05 Oct 2021 12:43:16.248 # +set master mymaster 127.0.0.1 6379 auth-pass ******
增加了client list命令的显示内容
用户可以通过client list命令查看当前的Redis支持的RESP协议的版本
RESP全称是Redis serialization protocol. 客户端可以通过RESP协议与Redis 服务器进行沟通。在最新的Redis 7版本中,客户端可以通过调用client list这个命令查看当前支持的RESP协议的版本,具体的例子如下:
127.0.0.1:6379> client list
id=3 addr=127.0.0.1:48556 laddr=127.0.0.1:6379 fd=8 name= age=153 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=20448 argv-mem=10 multi-mem=0 rbs=1024 rbp=0 obl=0 oll=0 omem=0 tot-mem=22298 events=r cmd=client|list user=default redir=-1 resp=2
这篇文章就介绍到这里了,下一篇文章会介绍Redis 7新增的functions的几个命令,谢谢大家!
相关文章:

简述几个我们对Redis 7开源社区所做的贡献
Redis 7 已经于2022年4月28号正式发布,其中包括了将近50个新的命令,增加了许多新的特性,并且在整个Redis 6到Redis 7的开发过程中,我也对Redis 的开源社区贡献了一些微薄的力量。在这篇文章中,我来给大家介绍几个自己亲…...

产品卖点怎么写,如何打造卖点?
...

跟李沐学AI-深度学习课程00-03【预告、课程安排、深度学习介绍、安装】
目录 00 预告 01 课程安排 02 深度学习介绍 03 安装 本地安装 04 数据操作数据预处理 数据操作 数据类型 创建数组 访问元素 数据操作实现 入门 运算符 广播机制 索引和切片 节省内存 转换为其他Python对象 数据预处理实现 读取数据集 处理缺失值 转换为张…...

C++ this 指针 面试
this 指针 this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。 当对一个对象调用成员函数时,编译程序先将对象的地址赋给 this 指针,然后调用成员函数,每次成员函数存取数据成员时,都隐…...

虚拟机上安装docker,并安装flink镜像
1. 安装docker 官网步骤:https://docs.docker.com/engine/install/centos/ sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.…...

【计算机网络】P1 计算机网络概述
P1 计算机网络概述 概念组成角度1:组成部分角度2:工作方式角度3:功能组成 功能分类按分布范围分按使用者分按交换技术按拓扑结构分按传输技术分 标准化工作及相关组织标准化工作相关组织 概念 三网融合 通过 计算机网络,将 电信网…...

003 OpenCV filter2D
目录 一、环境 二、图像卷积 三、代码演示 3.1、锐化 3.2、sobel边缘,x方向 3.3、sobel边缘,y方向 3.4、高斯模糊 3.5、完整代码 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、图像卷积 在OpenCV…...

轻松玩转华为MateX5分屏功能,乐趣层出不穷!
✅小窗交互,沉浸体验不打断; ✅分区截屏,花式截图,一招搞定; ✅跨屏拖拽,随心分享易如反掌; ✅悬停视频会议,沟通效率大不同。...

springboot引入redisson分布式锁及原理
1.引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version> </dependency>2.配置类创建bean /*** author qujingye* Classname RedissonConfig* Description TOD…...

Linux驱动开发 问题随笔
1、内核空间与用户空间数据交换方式 分两种情况: 1> 需要交换的数据量较大时; 2> 需要交换的数据量较小时; 第一种情况使用以下的函数: unsigned long copy_to_user(void __user* to, const void* from, unsigned long n)…...

三分/01分数规划
三分 最小球覆盖 2018南京D 三分套三分套三分 constexpr int N105; struct node{int x,y,z; }a[N]; int n; double road(double x1,double y1,double z1,double x2,double y2,double z2){return sqrt((x1-x2)*(x1-x2)(y1-y2)*(y1-y2)(z1-z2)*(z1-z2)); } double check(double…...

大批卖家产品被下架!Temu又有新动作?
大批卖家产品被下架!Temu又有新动作? 近日,Temu正式上线韩国站,截止目前已上线27个国家地区。Temu海外市场发展迅猛,外界的声音也褒贬不一。这其中最有发言权的,应该就是Temu平台的卖家了! …...

STM32 LL库 TIM3定时器多通道捕获输入采集
为什么不用HAL库,使用HAL库捕获输入一个通道还尚可,多通道捕获由于HAL的回调函数不符合我的要求,干脆直接切换到LL库。网上找了许多,代码处理写的不符合我的要求,这里记录一下我的调试过程。 TIM2输出1路PWM信号&#…...

如何为初创企业选择合适的 ERP 系统?
**ERP系统**是制造、分销、供应链、金融、会计、风险管理等多个行业必不可少的企业技术解决方案。不论垂直行业、企业规模或目标受众如何,将ERP作为企业管理战略的核心部分都非常重要。 对于渴望发展的小型企业和初创企业来说,更是如此。大型企业需要对…...

jssip contact的随机字符串的问题
let configuration {sockets: [socket],uri: sip:1001127.0.0.1,}; 如果这样注册freesswitch,那么fs注册信息中的Contact字段信息就是:sip:sdfsdfsdfsfcvdwvdwd.invalid;transportws;fs_natyes;fs_path... 正确的写法是: //URI是jssip内置…...

别再吐槽大学教材了,来看看这些网友强推的数学神作!
前言 关于大学数学教材的吐槽似乎从来没停止过。有人慨叹:数学教材晦涩难懂。错!难懂,起码还可以读懂。数学教材你根本读不懂;也有人说:数学教材简直就是天书。 数学教材有好有坏,这话不假,但更…...

Elasticsearch-汇总
Elasticsearch-基础介绍 跳转 分布式全文搜索引擎:包含【实时搜索】和【分析引擎】 Elasticsearch-倒排索引 跳转 倒排索引 跳转 Elasticsearch-Term Dictionary和Term Index 跳转 lucene-基础介绍 跳转 Elasticsearch-联合索引 跳转 Elasticsearch-Roaring B…...

9.3 【MySQL】系统表空间
了解完了独立表空间的基本结构,系统表空间的结构也就好理解多了,系统表空间的结构和独立表空间基本类似,只不过由于整个MySQL进程只有一个系统表空间,在系统表空间中会额外记录一些有关整个系统信息的页面,所以会比独立…...

STM32CUBEIDE生成hex文件 Release版本的下载不启动
现象描述: 使用STM32CUBEIDE生成hex文件,使用脱机下载器或者J-Flash下载到单片机中(STM32F407)单片机不启动。 测试其他的程序是可以启动的。 修改办法: 把Release版本切换到debug版本,重新编写…...

2023年亚太杯数学建模思路 - 复盘:校园消费行为分析
文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…...

ceph集群移除物理节点
1. 概述 ceph分布式存储在生产或者实验环境,经常涉及到物理节点加入或者删除,本文仅对移除物理节点的相关步骤做了操作记录,以方便需要时查阅。 2. 移除物理节点 2.1 out掉相应osd 操作之前通过ceph -s确保整个集群状态是OK的,…...

(八)Spring源码解析:Spring MVC
一、Servlet及上下文的初始化 1.1> DispatcherServlet的初始化 对于Spring MVC来说,最核心的一个类就是DispatcherServlet,它负责请求的行为流转。那么在Servlet的初始化阶段,会调用init()方法进行初始化操作,在DispatcherSe…...

maven或者gradle打完jar,jekins启动提示找不到问题
1、记录下遇到的一个问题,maven或者gradle打完jar,然后jekins发布,启动提示找不到实体类,mapper,xml问题 2、首先排查jar包中这些文件是否存在 3、然后排查每层的包名或者文件名是否能对应上 我这次遇到的问题就是本地…...

浏览器缓存sessionStorage、localStorage、Cookie
一、sessionStorage 1、简介 sessionStorage用于在浏览器会话期间存储数据,数据仅在当前会话期间有效。 存储的数据在用户关闭浏览器标签页或窗口后会被清除。 2、方法 使用sessionStorage.setItem(key, value)方法将数据存储在sessionStorage中。使用sessionSt…...

易点易动固定资产管理系统场景应用一:集成ERP/财务系统
在企业的日常运营中,固定资产管理是一个重要而繁琐的任务。传统的手工管理方式往往效率低下且容易出错,给企业带来不必要的成本和风险。为了解决这一问题,易点易动固定资产管理系统应运而生。本文将重点介绍易点易动固定资产管理系统在集成ER…...

k8s部署elk8 直接通过logstash获取日志文件方式
配置文件 kibana [rootnode101 config]# cat kibana.yml # # ** THIS IS AN AUTO-GENERATED FILE ** ## Default Kibana configuration for docker target server.host: "0.0.0.0" server.shutdownTimeout: "5s" elasticsearch.hosts: [ "http:/…...

git 本地多个账号错乱问题解决
当我们在本地有多个git账号时,例如公司的gitlab有一个git账号,自己的开源项目有一个GitHub账号,我们可能会出现账号错乱的情况,例如提交到公司gitlab的代码是github账号 这种情况通常是由于您的git config配置文件中的用户信息未…...

wu-ui-uniapp 多平台快速开发的UI框架
WU-UI 多平台快速开发的UI框架(无论平台,一致体验) 官方群 wu-ui官方1群: 767943089 说明 wu-ui(如虎添翼) 是 全面兼容多端的uniapp生态框架,基于vue2、vue3和nvue开发。丰富组件库,便捷工具库,简单高效。无论平台&#x…...

Spring Boot Actuator:自定义端点
要在Spring Boot Actuator中实现自定义端点,可以按照以下步骤进行操作: 1.创建一个自定义端点类 该类需要使用Endpoint注解进行标记,并使用Component注解将其作为Spring Bean进行管理。 package com.example.highactuator.point;import lo…...

实时音视频方案汇总
若有好的方案欢迎留言讨论,非常感谢,汇总了一些,从市面上了解的一些低时延的端到端的方案,仅供参照,若有问题,也欢迎留言更正! 方案 方案描述 时延 备注 1大华同轴高清电缆200米电缆…...