在 redis 中,是否可以为集合设置最大数量的元素,以便在使用 时sadd,redis 服务器会阻止该集合包含超过最大数量的元素?例如:
127.0.0.1:6379> SETSIZE KEY 100
Run Code Online (Sandbox Code Playgroud)
提前致谢。
不,通常的命令是不可能的,但 LUA 脚本是可能的:
local size = redis.call('SCARD', KEYS[1]);
if size < tonumber(ARGV[1], 10) then
return redis.call('SADD', KEYS[1], ARGV[2]);
end
return -1;
Run Code Online (Sandbox Code Playgroud)