redisson 使用脚本实现判断元素不在队列中则插入的原子操作

devtools/2024/9/22 16:59:09/

脚本逻辑:

  1. 取出队列所有元素
  2. 遍历元素查找值是否存在
  3. 不存在则推入
final String scriptText = """local valuesInTarget = redis.call('lrange', KEYS[1], 0, -1);local index = 0;for i, v in ipairs(valuesInTarget) doif v == value thenindex = ibreakendendif index == 0 thenredis.call('rpush', KEYS[1], value);end""";
script.eval(RScript.Mode.READ_WRITE, scriptText, RScript.ReturnType.VALUE, List.of(REDIS_KEY_TARGET) // 对应脚本中KEYS数组的元素
);

http://www.ppmy.cn/devtools/39179.html

相关文章

程序链接和运行 - 笔记

1 linux下程序a连接b.so后,运行时如何找到调用的函数 在Linux下,当程序A连接了动态链接库B(.so文件)后,在运行时,程序A会使用动态链接器(dynamic linker)来解析并加载动态链接库B中的函数。动态链接器会在系统中搜索动态链接库,并将它们加载到程序的地址空间中。 当…

2024icpc武汉站邀请赛F.Custom-Made Clothes(交互题)

2024 i c p c 武汉站邀请赛 F . C u s t o m − M a d e C l o t h e s \Huge{2024icpc武汉站邀请赛F.Custom-Made Clothes} 2024icpc武汉站邀请赛F.Custom−MadeClothes 文章目录 题意思路标程 题目链接:F. Custom-Made Clothes 题意 本题是一道交互题。 给出一个…

Yii2 自动生成php代码

文档地址:入门(Getting Started): 用 Gii 生成代码(Generating Code with Gii) - Yii 2.0 权威指南 - 文档 - Yii Framework 中文网 找到配置文件,以我的项目为例: 因为的是开启了路由美化所以访…

二分查找(Binary Search)

二分查找(Binary Search)是一种在有序数组或有序区间中查找特定元素的高效算法。其基本思想是每次都通过与区间的中间元素比较,将待查找的区间缩小为之前的一半,直到找到目标值或区间被缩小为零。以下是二分查找的基本步骤&#x…

[性能优化] ScrollView视图优化为循环列表

问题描述: 原先商城的物品栏中的item 是load在一个scrollView 下,用于滑动查看。仅仅在父级panel下是使用了NGUI原生的scrollview 组件,随着商场物品列表中新物品的增多。panel下加载的实例也非常庞大。而大部分的实例用户也无法看到&#x…

泰迪科技2024中职大数据实训室方案解读

中职在大数据专业建设所遇到的困难 数据、信息安全、人工智能等新信息技术产业发展迅猛,人才极其匮乏,各个中职院校纷纷开设相应的专业方向。但是,绝大多数院校因为师资和积累问题,在专业建设规划、办学特色提炼、创新教学模…

61-ARM与FPGA间SPI通信电路设计

视频链接 ARM与FPGA间SPI通信电路设计01_哔哩哔哩_bilibili ARM与FPGA间SPI通信电路设计 第22课:SPI Flash 电路设计 第65课:实战S1-FPGA板级实战导学 1、SPI简介 1.1、SPI概述 SPI是(Serial Peripheral Interface) 串行外设接口,由Mot…

Linux -- 日志

一 日志的重要性 在之前的编程经历中,如果我们的程序运行出现了问题,都是通过 标准输出 或 标准错误 将 错误信息 直接输出到屏幕上,以此来排除程序中的错误。 这在我们以往所写的程序中使用没啥问题,但如果出错的是一个不断在运行…