You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis键是否会在Lua脚本的两条命令间过期?两次exists结果是否不同?

Redis Lua脚本中键过期与命令一致性问题

一、Redis键会在Lua脚本的两条命令之间过期吗?

不会。Redis的Lua脚本是原子执行的——整个脚本执行期间,Redis服务器不会处理其他客户端的请求,也不会触发键的过期删除操作(过期键的清理要么在命令执行间隙处理,要么由后台线程异步处理,而脚本执行时会阻塞这些操作)。所以在脚本内部的多条命令执行间隙,目标键的过期状态不会发生变化。

二、两次exists调用的返回值v0和v1是否可能不同?

不可能。基于Lua脚本的原子性特性,从脚本开始执行到结束的整个过程中,目标键的存在状态不会被任何外部操作或过期机制修改。因此你给出的代码中,v0和v1的返回值必然完全一致。

对应的代码示例:

local v0 = redis.call('exists', KEY);
local v1 = redis.call('exists', KEY);

内容的提问来源于stack exchange,提问作者someonewhoisajavadeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:52:09