Redis学习笔记15:基于spring data redis及lua脚本发送到redis服务器多久过期

在Redis服务器中,通过SCRIPT LOAD命令加载的脚本会被缓存,并且会一直保存在缓存中,直到服务器重启或者使用SCRIPT FLUSH名利手动清空缓存。

一个对springboot redis框架进行重写,支持lettuce、jedis、连接池、同时连接多个集群、多个redis数据库、开发自定义属性配置的开源SDK

xml 复制代码
<dependency>
    <groupId>io.github.mingyang66</groupId>
    <artifactId>emily-spring-boot-redis</artifactId>
    <version>4.4.0</version>
</dependency>

GitHub地址:https://github.com/mingyang66/spring-parent

一、缓存的好处

缓存的好处是,当一个脚本被多次执行时,可以避免每次都重新解析和编译脚本,提高执行效率。缓存的脚本会通过SHA1散列值作为键,保存在Redis服务器的脚本缓存中。

需要注意的是,当Redis服务器重启或者使用SCRIPT FLUSH命令手动清空缓存时,所有缓存的脚本都会被清除,需要重新加载。

在脚本缓存中的脚本并不会自动过期或者自动清除,除非手动进行重启或者执行清空操作。

二、Redis脚本命令
  • 执行lua脚本
sh 复制代码
EVAL script numkeys key [key ...] arg [arg ...]
  • 执行lua脚本
sh 复制代码
	EVALSHA sha1 numkeys key [key ...] arg [arg ...]
  • 查询指定的脚本是否已经被保存在缓存当中
sh 复制代码
SCRIPT EXISTS script [script ...]

案例如下:

sh 复制代码
xx.xx.xx.xx:0>SCRIPT EXISTS "e877b0c16c7f1c6d1b4e0c7be5b13c02b98d58d4"
 1)  "0"
  • 从脚本缓存中移除所有脚本
sh 复制代码
SCRIPT FLUSH

案例如下:

sh 复制代码
xx.xx.xx.xx:0>script flush
"OK"
  • 杀死当前正在运行的lua脚本
sh 复制代码
	SCRIPT KILL

案例如下:

sh 复制代码
xx.xx.xx.xx:0>SCRIPT KILL
"NOTBUSY No scripts in execution right now."
  • 将脚本script添加到脚本缓存中,但并不立即执行这个脚本
sh 复制代码
SCRIPT LOAD script

案例如下:

sh 复制代码
xx.xx.xx.xx:0>SCRIPT LOAD "return redis.call('GET', 'mykey')"
"87f5a5b4a00f1811c3352ea840cb30dea17ac071"
相关推荐
swordbob1 小时前
Redis 3 大问题 + 5 大扩展问题
redis
笑虾1 小时前
Frida Hook Cocos2dx lua 3.15 的 lua 脚本
lua·cocos2d
AOwhisky3 小时前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算
AOwhisky3 小时前
Redis 学习笔记(第四期):高可用与集群(哨兵 + Cluster + 容器化)
linux·运维·数据库·redis·笔记·学习·缓存
IT策士6 小时前
Redis 从入门到精通:事务与 Lua 脚本
redis·junit·lua
慧都小妮子6 小时前
不想频繁改 PLC?用 DeviceXPlorer Lua 脚本把产线业务逻辑放到 OPC Server 层
java·junit·lua·takebishi·dxpserver·设备数据采集软件·opc server
胡小禾10 小时前
Redis哨兵模式下主从同步的偏差
数据库·redis·缓存
zzqssliu10 小时前
Taocarts接口限流实操:基于Redis实现API防刷与流量管控
数据库·redis·缓存
啦啦啦啦啦zzzz11 小时前
redis的持久化操作和主从复制与集群的关系及其应用
数据库·redis
IT策士11 小时前
Redis 从入门到精通:分片之道 —— Redis Cluster
数据库·redis·缓存