Java
synchronized的锁升级过程
Volatile 关键字
java.util
Arrays
HashSet
TreeSet
Deque
ArrayDeque
ArrayList
LinkedBlockingDeque
Map
HashMap
HashTable
TreeMap
LinkedHashMap
ComputeIfAbsent 在jdk8下的死锁场景
redis 中的Lua脚本
AQS - 从干饭角度解析
ConcurrentHashMap
本站点使用 MrDoc 构建
-
+
redis 中的Lua脚本
## Lua入门 https://www.runoob.com/lua/lua-tutorial.html ## springboot使用 ``` RedisScript<Long> script = new DefaultRedisScript<>("return 1", Long.class); Object[] args = Stream.of(5).map(String::valueOf).toArray(); long result = redisTemplate.execute(script, Arrays.asList(key), args); ``` ## redis 设值时同步设置过期时间 ``` if redis.call('SET', KEYS[1], ARGV[1]) then redis.call('EXPIRE', KEYS[1], ARGV[2]) return 1 else return 0 end ``` ## redis String CAS ``` local v = redis.call(""GET"", KEYS[1]) if v == false or v == ARGV[1] then redis.call(""SET"", KEYS[1], ARGV[2]) redis.call('EXPIRE', KEYS[1], ARGV[3]) return 1 else return 0 end ``` ## redis Hash CAS ``` local v = redis.call(""HGET"", KEYS[1], ARGV[1]) if v == false or v == ARGV[2] then redis.call(""HSET"", KEYS[1], ARGV[1], ARGV[3]) return 1 else return 0 end ```
寒烟濡雨
2022年11月28日 15:05
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码