首页 > 数据库 >1102_REDIS中使用LUA

1102_REDIS中使用LUA

时间:2022-09-22 00:33:48浏览次数:66  
标签:flat 000002 batchDeduct REDIS company sms send LUA 1102

定时删除公司费用

  • 查询费用并删除数据,保持原子操作
  • 准备数据

sadd sms:send:batchDeduct:company 000002

sismember sms:send:batchDeduct:company 000002

hgetall sms:send:batchDeduct:company:000002

hmset sms:send:batchDeduct:company:000002 name "张三"

hincrby sms:send:batchDeduct:company:000002 num 100

  • 编写LUA脚本
eval "redis.call('srem',KEYS[1],KEYS[2]) local flat_map=redis.call('hgetall',KEYS[3]) local result={} for i=1,#flat_map,2 do result[flat_map[i]]=flat_map[i+1] end  redis.call('del',KEYS[3])  return  cjson.encode(result)" 3 sms:send:batchDeduct:company  000002  sms:send:batchDeduct:company:000002
  • 将脚本加载到redis中,并执行
script load "redis.call('srem',KEYS[1],KEYS[2]) local flat_map=redis.call('hgetall',KEYS[3]) local result={} for i=1,#flat_map,2 do result[flat_map[i]]=flat_map[i+1] end  redis.call('del',KEYS[3])  return  cjson.encode(result)"

evalsha bd5216e08be2590520bd3e1e81bff535a340dcef 3 sms:send:batchDeduct:company  000002  sms:send:batchDeduct:company:000002

标签:flat,000002,batchDeduct,REDIS,company,sms,send,LUA,1102
From: https://www.cnblogs.com/wanwei2018/p/16717752.html

相关文章

  • 【轻量应用服务器】k3s部署redis
    1.在轻应用服务器中安装好K3s2.登录k3s及token 3.登录上k3s,如下图4.按照图下图操作,打开部署界面 5.部署redis,部署用的yaml如下apiVersion:apps/v1kind:Depl......
  • redis的简单使用
    1.Redis安装Redis下载官网下载将压缩包上传到Linux服务器上/opt目录下解压压缩文件tar-zxvfredis-6.2.3.tar.gz安装GCC编译器yuminstall-ygcc......
  • KeeWiDB:兼容Redis协议,领跑NoSQL
    如果现在的我们离开了互联网,生活会是什么样子?互联网++++,已经深刻渗透到人们的生活中。不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求。你查看的每一个......
  • WSL+Redis
    WSL+Redis最近恶补Spring*心有余而力不足,打算补充一些与自身技术栈耦合度小(相比来说)的知识,选择了Redis。Redis官方建议配置到Linux操作系统中,直接部署到云服务器,有被黑的......
  • Redis
    主从的架构:一主多从,级联 主从复制1.s初次链接到m,发送sync命令,会触发一次全量复制。2.m新开后台线程,生成一份RDB快照,同时将客户端发来的写命令,缓存在内存中3.RDB生成......
  • Redis——数据操作(2)
    2022-09-21(2)hash操作:①设置多个hash值,(hmset):查看说明:helphmset hmsetpersonnameAage1 ②获得多个hash值,(hmget):查看说明:helphmget ......
  • CentOS 7.x 安装redis-5.0.14
    准备篇一、防火墙配置CentOS7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:systemctlstopfirewalld.service#停止firewallsystemctl......
  • Redis 安装与使用
    Redis安装与使用Redis介绍Redis是由SalvatoreSanfilippo写的key-value存储系统,是一个跨平台的非关系型数据库(NoSQL)。Redis是用C语言开发完全开源,基于内存的高......
  • Redis操作类
    importcn.hutool.core.date.DatePattern;importcn.hutool.core.date.DateUtil;importcn.hutool.extra.spring.SpringUtil;importorg.slf4j.Logger;importorg.slf......
  • 学习lua-05,io.open 读取输出修改文件,以及io.read的参数运用,读所有,读一行多行
    --以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)file=io.open("D:\\ProgramFil......