为什么Redis不在多个键上提供批处理集过期时间操作?
我想设置多个密钥的过期时间,但似乎我必须逐个过期每个密钥。为什么Redis不提供类似“mset”的操作?因为此操作不太频繁,您可以通过以下方式轻松模拟它:为什么Redis不在多个键上提供批处理集过期时间操作?,redis,Redis,我想设置多个密钥的过期时间,但似乎我必须逐个过期每个密钥。为什么Redis不提供类似“mset”的操作?因为此操作不太频繁,您可以通过以下方式轻松模拟它: 服务器端Lua脚本 或 管道化多个过期命令 无论选择何种解决方案,它都只会生成到redis服务器的一次往返。您可以使用一个脚本 EVAL 'for i, name in ipairs(redis.call("KEYS", "0*")) do redis.call("EXPIRE", name, 10); end' 0 你能再解释一下
- 服务器端Lua脚本
- 管道化多个过期命令
无论选择何种解决方案,它都只会生成到redis服务器的一次往返。您可以使用一个脚本
EVAL 'for i, name in ipairs(redis.call("KEYS", "0*")) do redis.call("EXPIRE", name, 10); end' 0
你能再解释一下这里发生了什么吗?
“0*”
和10
的用途是什么?“0*”是一个通配符,用于获取所有以值0开头并设置10秒过期的密钥。对于使用spring数据的用户,有内置的管道支持-