redis 中 有 很多命令,但redis提供的计算能力有限,为了增加redis的计算能力,redis在2.6版本后
提供了lua 脚本支持,而且lua脚本在redis中具有原子性,所以在需要保证数据一致性的高并发环境
中,可以使用redis的lua 脚本保证数据一致性,且lua 脚本具有更强大运算能力,在高并发需要保证
数据一致性时,lua脚本比redis自身提供的事务要好些。
Redis 中 有两种运行Lua的方法:
1. 直接发送Lua到redis服务器中执行。
2. 先将Lua发送给redis,redis会对Lua脚本缓存,然后返回一个SHA1的32位编码,之后只要发送SHA1
和相关参数 给redis 就可执行, 这样可以提高执行速度。
为了提高 redis 的lua脚本,spring 提供了 RedisScript 接口,与此同时提供一个DefaultRedisScript
实现类。
RedisScript 接口源码
public interface RedisScript <T> {
// 获取脚本的 sha1
java.lang.String getSha1();
// 获取脚本的返回值
@org.springframework.lang.Nullable
java.lang.Class<T> getResultType();
// 获取脚本字符串
java.lang.String getScriptAsString();
default boolean returnsRawValue() { /* compiled code */ }
s