lua脚本在redis集群中哈希槽分片问题

news2024/11/26 12:45:02

上文说到,通过用redis lua脚本实现时间窗分布式限流 可以操作redis lua脚本来实现时间窗限流,在执行lua脚本的时候,参数中有个keys列表,当lua脚本中如果有操作多个key的情况,就可以传个key列表了。通常情况下,这可能不会有什么问题,但如果redis是集群部署的,传多个key可能会收到:command keys must in same slot 的异常。
原因在于redis为了保持事务,同一个lua脚本访问应该访问同一个slot(hash槽),但是redis集群会根据 key 进行 hash 并对 16384 取模,因此如果采用默认hash的话,那么就可能会产生上述的错误。
在这里插入图片描述

解决办法:

在这里插入图片描述
可以指定redis key用于计算hash的部分字符串,比如我有两个key,分别是Lock:GlobalKey和Lock:PriKey,默认会将整个key拿去计算hash值,很显然,hash不可能一样。如果要让这两个key处于同一个hash槽,我们可以将key的公共部分提取出来用于hash计算,redis支持的格式是用{}包裹这部分字符串,官网把被{}包裹的这部分叫做 hash tag。
那么上面两个key就可以这么设计:{Lock}:GlobalKey 和 {Lock}:PriKey。把 Lock 字符串作为key的hash tag, 这样就能保证这两个key在redis中处于同一个hash槽了。

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

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

相关文章

[蓝桥杯 2019 省赛 AB] 完全二叉树的权值

# [蓝桥杯 2019 省 AB] 完全二叉树的权值 ## 题目描述 给定一棵包含 $N$ 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 $A_1,A_2, \cdots A_N$,如下图所示: 现在小明要把相同深度的节点的权值…

【Windows】windows的bat命令获取当前文件名称

新建.txt文本输入IR *.* /B >LIST.TXT LIST.TXT 提取到LIST.TXT文件 重命名txt文本后缀为.bat双击.bat文件 DIR *.* /B >LIST.TXT效果图

git学习——tags、release、drop commit

最近一直都在持续学习git相关内容,越来越发现git是一个十分适合大型项目和团队协作进行开发的工具,掌握好了对于我们参与项目维护和开发产品帮助很大,所以要不断持续学习git。 tags & releases tag的创建 当我们在git版本控制中遇到了…

57、FreeRTOS/串口通信和DMA ADC PWM相关20240401

一、使用PWMADC光敏电阻完成光控灯的实验。(根据测得的光敏电阻大小,控制灯的亮度) 代码: /* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器的PWM通道3HAL_TIM_PWM_Start(&htim3,TIM_CHANN…

学习笔记——C语言基本概念指针(下)——(8)

1.指针和数组 数组指针 -- 指向数组的指针。 指针数组 -- 数组的元素都是指针。 换句话理解就是:数组指针就是个指针,指针数组就是个数组。 1.1数组指针 数组指针:指向数组的指针; 先回顾一下数组的特点: 1.相…

Linux权限提升总结

几个信息收集的项目推荐 运行这几个项目就会在目标主机上收集一些敏感信息供我们参考和使用 一个综合探针:traitor 一个自动化提权:BeRoot(gtfo3bins&lolbas) 使用python2运行beroot.py就可以运行程序,然后就可以收集到系统中的大量信…

Hive详解(5)

Hive 窗口函数 案例 需求:连续三天登陆的用户数据 步骤: -- 建表 create table logins (username string,log_date string ) row format delimited fields terminated by ; -- 加载数据 load data local inpath /opt/hive_data/login into table log…

【Java】反射简介,利用反射打印一个类当中的构造函数,方法和属性。

📝个人主页:哈__ 期待您的关注 我想要通过反射来打印如下效果的类信息。 Student类如下代码所示。 package com.my.reflect;public class Student {public String name;public int age;public Student(){}public Student(String name, int age) {this…

探索组合总和问题(力扣39,40,216)

文章目录 题目前知LinkedList和ArryayList 组合总和I一、思路二、解题方法三、Code 组合总和II一、思路二、解题方法三、Code 组合总和III一、思路二、解题方法三、Code 总结 先看完上一期组合问题再看这一期更加容易理解喔🤯 在算法和编程的世界中,组合…

走向国际:区块链行业项目海外市场宣传与运营攻略

随着区块链技术的不断发展和应用,越来越多的区块链项目开始将目光投向海外市场。在全球范围内寻找用户和投资者,扩大品牌知名度,是许多区块链项目的共同目标。然而,要成功进军海外市场,并不是一件容易的事情。本文将深…

Vscode运行python

按住 xtrlshiftp,会出现下面的界面: 然后选择第一个选项,会出现如下的界面: 选择某个环境后就可以使用了。可以右键,如下所示: 就可以运行python程序了

如何在Ubuntu系统部署Z-blog博客结合cpolar实现无公网IP访问本地网站

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…

基于WEB的花卉养殖知识平台

基于WEB的花卉养殖知识平台的设计与实现 摘要 随着人们生活水平及生活质量要求的日益提升,花卉也成为了人们日常生活的调味剂,同时对于花卉的养殖及养护不再是老年人的专利,很多年轻人也在通过花卉的养护来舒缓工作压力,同时通过…

Centos7.X服务器搭建VOS系统的REC录音转换MP3,并支持外呼系统wav转换MP3

由于有的公司客户需要自己下载录音或做话务质检等工作需要,需要从VOS系统中把录音下载到其它服务器使用,但是VOS录音格式是REC格式的,就算下载下来了也无法直接播放,因此我们需要搭建一台转换MP3的服务器来完成需求! 外…

EfficientSAM 项目排坑

EfficientSAM 项目排坑 任务过程记录创建环境运行示例 任务 跑通这个项目代码 过程记录 创建环境 readme里没有说具体怎么配置环境,所以可能对我来说还挺困难的。 现把项目git下来: git clone https://github.com/yformer/EfficientSAM.git cd Effi…

插值字符串格式化代码中的感叹号(Python)

在csdn上读到,插值字符串格式化代码中有“!”,进行了一番探究,了解到其中的一点“隐秘”,在此共享。🤪 (笔记模板由python脚本于2024年03月31日 09:27:59创建,本篇笔记适合对Python字符串格式化有一定认知的…

【C语言】联合体、枚举: 联合体与结构体区别,枚举的优点

目录 1、联合体 1.1、什么是联合体 1.2、联合体的声明 1.3、联合体的特点 1.4、联合体与结构体区别 1.5、联合体的大小 2、枚举 2.1、枚举类型的声明 2.2、枚举类型的优点 3、三种自定义类型:结构体、联合体、枚举 正文 1、联合体 1.1、什么是联合体 联…

OpenHarmony实战:命令行工具hdc安装应用指南

一、工具概述 hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备(或模拟器)进行连接调试通信。 简言之&#xf…

开启 Sora 知识免费课,探索文生视频大模型

4 月 1 日,中国网游先锋,火石控股董事长、风险投资人吴渔夫开启了“跟我学 Sora 知识”的免费课程。他表示,讲述的知识涵盖了 Sora 的产品、技术及未来走向。自 2 月 16 日 Sora 文生视频模型问世以来,我已查阅众多的 Sora 中英文…

记一次对Codis的无知引起的逻辑变更

先提前说明,对Codis的无知是因为Codis不支持一些Redis的命令,而这次的逻辑变更,就是因为使用了PUBLISH,而Codis又不支持PUBLISH导致的。 1. 前言 前段时间的一次需求中,因为设计到多个服务的注册问题,在项…