在redis中,是否可以将一个元素的最大数量设置为一个集合,这样当一个人使用sadd
时,redis服务器会阻止该集合拥有更多的元素?例如类似的东西:
127.0.0.1:6379> SETSIZE KEY 100
提前致谢。
答案 0 :(得分:4)
不,使用常规命令是不可能的,但可以使用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;