lua脚本获取table类型-Java使用lua脚本操作redis获取zset元素的集合

这篇具有很好参考价值的文章主要介绍了lua脚本获取table类型-Java使用lua脚本操作redis获取zset元素的集合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

lua脚本获取table类型-Java使用lua脚本操作redis获取zset元素的集合

7.0点赞功能-定时持久化到数据库-lua脚本的编写_哔哩哔哩_bilibili

https://www.bilibili.com/video/BV1bu411j75u

这个脚本主要是放到Springboot工程里的,

local prefix = KEYS[1]; 
local redisKeys = redis.call('keys',prefix ..'*');

if(not redisKeys) 
    then    
    	return (nil);
end;

local maps = {};

for i, v in pairs(redisKeys) do
    local blogId = string.sub(v,string.len(prefix) + 1,string.len(v));
    local zset = redis.call('zrange',v,'0','-1','withscores');
    table.insert(maps,blogId);
    table.insert(maps,zset);    
end;

return maps;

这里如果是向放到字段控制台执行,那就要加入eval关键字以及其他参数:

eval "
local prefix = KEYS[1]; 
local redisKeys = redis.call('keys',prefix ..'*');

if(not redisKeys) 
    then    
    	return (nil);
end;

local maps = {};

for i, v in pairs(redisKeys) do
    local blogId = string.sub(v,string.len(prefix) + 1,string.len(v));
    local zset = redis.call('zrange',v,'0','-1','withscores');
    table.insert(maps,blogId);
    table.insert(maps,zset);    
    
end;

return maps;
" 1 BLOG_LIKED_KEY

返回的变量是maps,已经是table类型。

table类型在lua脚本中可以代表是数组,也可以是以键值对的Map集合。

但是如果是要在redis的终端来执行lua脚本的话,这里一定要使用table.insert方法来将数据插入到要返回的那个maps变量里面,这样的table类型才可以返回。

table.insert这个方法应该是maps成为table类型的数组形式吧。本来想用maps[key]=val这种形式,发现根本走不通,也就是return时没办法返回这种类型的数据,也就是没办法返回以键值对存储的Map集合类型的数据。

另外调试工具网上大多数都是用print这个函数,笑死,好像都没讲可以在redis终端控制台中执行lua脚本的打印语句,这个print是行不通的,所以就用return来测试吧,将就用吧,另外type函数也是好用的api,可以查看lua语言里的数据类型。

怎么在Springboot工程使用这种lua脚本,就看:

(108条消息) springboot+redis+mysql+quartz-通过Java操作jedis定时使用lua脚本获取缓存数据并更新数据库_xin麒的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-542332.html

到了这里,关于lua脚本获取table类型-Java使用lua脚本操作redis获取zset元素的集合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis执行lua脚本-Time函数-获取当前时间

    TIME 命令返回当前服务器的时间,包含两个条目 Unix 时间戳和这一秒已经过去的微秒数。 如果想要判断两个时间哪个最新,先去比较各自的 unix_timestamp : unix_timestamp 大的那个时间戳最新 unix_timestamp 都一样时,则判断 milliseconds , milliseconds 大的哪个时间戳最新。 如果都一样

    2024年02月11日
    浏览(47)
  • 基于 Redis + Lua 脚本实现分布式锁,确保操作的原子性

    1.加锁的Lua脚本: lock.lua 2.解锁的Lua脚本: unLock.lua 3.将资源文件放在资源文件夹下 4.Java中调用lua脚本 1)获取文件方式 2)lua字符串方式 5.jedis调用Lua脚本实现分布式重试锁 1)引入jedis依赖 2)jedis调用lua

    2024年02月07日
    浏览(56)
  • 【实战】使用Lua脚本怎么清理redis中的数据【实战】使用Lua脚本怎么清理redis中的数据

    首先我们通过hiredis 向redis 中写入了数据,这里我们主要以测试为目的,所以,Key 值设定为毫秒级时间戳。 但是当我们测试完成之后,需要验证实际情况,这里我们直接使用redis-cli 登录数据库看看。 本次测试完成,接下来要结合业务开始测试,需要清理数据库,但是一条一

    2024年02月13日
    浏览(90)
  • Redis命令行使用Lua脚本

    Lua脚本在Redis中的使用非常有用,它允许你在Redis服务器上执行自定义脚本,可以用于复杂的数据处理、原子性操作和执行多个Redis命令。以下是Lua脚本在Redis中的基本使用详细讲解: 运行Lua脚本: 在Redis中,你可以使用 EVAL 或 EVALSHA 命令来运行Lua脚本。 EVAL 用于执行未经缓存

    2024年02月07日
    浏览(47)
  • Redis Zset类型

    Zset(有序集合)它是集合的一种,不仅可以保存元素,还可以为每个元素关联一个 double 类型的分数(score),Redis 正是通过分数来为集合中的元素进行从小到大的排序。在 Zset 中,元素的值是唯一的,但分数(score)却可以重复。 有序集合 :该有序集合显示了三国中的武将

    2024年01月19日
    浏览(39)
  • Redis——zset类型详解

    zset是有序集合,将zset中的members引入一个属性score,根据这个属性值来进行排序,其中members不可以重复,score可以重复(按照字典序排序),默认按照升序排序 有序集合中提供指定分数和元素范围查找,计算成员排名功能,一般用于排行榜系统 zset中的member和score并不是键值对

    2024年02月09日
    浏览(38)
  • 在Spring Boot微服务使用ZSetOperations操作Redis集群Zset(有序集合)

    记录 :447 场景 :在Spring Boot微服务使用RedisTemplate的ZSetOperations操作Redis集群的Zset(有序集合)数据类型。 版本 :JDK 1.8,Spring Boot 2.6.3,redis-6.2.5。 1.微服务中 配置Redis信息 1.1在pom.xml添加依赖 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.ym

    2024年02月08日
    浏览(44)
  • 【Redis】Redis 的学习教程(十二)之在 Redis使用 lua 脚本

    lua 菜鸟教程:https://www.runoob.com/lua/lua-tutorial.html 在 Redis 使用 lua 脚本的好处: 减少网络开销 。可以将多个请求通过脚本的形式一次发送,减少网络时延及开销 原子性操作 。Redis会将整个脚本作为一个整体执行,中间不会被其他请求插入。因此在脚本运行过程中无需担心会出

    2024年02月07日
    浏览(49)
  • Spring Boot - 结合 Redis 使用 Lua脚本

    在Spring Boot中整合Redis并使用Lua脚本: 添加Spring Boot和Redis的依赖: 首先,在Spring Boot项目的 pom.xml 文件中添加Spring Boot和Spring Data Redis的依赖: 配置Redis连接: 在 application.properties 或 application.yml 中配置Redis的连接信息,以及 redis 配置: RedisConfig.java

    2024年02月08日
    浏览(43)
  • lua脚本的基本语法,以及Redis中简单使用

    Lua 脚本的基本语法如下: 变量与赋值: 变量名可以是字母、数字和下划线的组合,以字母或下划线开头。Lua 是动态类型语言,无需事先声明变量类型。 控制结构: a) 条件语句: b) 循环语句: 函数定义: 函数可以有参数和返回值。 表(table): 表是 Lua 中的一种数据结构

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包