2012-01-06 73 views

回答

2

不是2.4版本。隨着未來的2.6版本,也許它可以用Lua服務器端腳本實現,但我並不認爲這是真正有效的。

我不知道你的用例,但是如果你可以爲你的項目使用unicity,你也許可以用set來替換列表並使用SPOP命令。您可以使用無序容器並彈出隨機項目,而不是按特定順序洗牌清單和刪除項目。

+1

如果你要使用這種方法,首先創建一個集合的副本,以便在完成'SPOP'之後仍然有你的原始集合可能是有用的。你可以通過[SUNIONSTORE](http://redis.io/commands/sunionstore)執行此操作 – 2012-01-09 16:21:06

+0

在2.6版本中有[srandmember](http://redis.io/commands/srandmember)_「如果count大於在Set中的元素數量,該命令將只返回整個集合,而不需要額外的元素。「_ 所以一種方法可能是用一個很大的數字調用這個命令,清除並用隨機返回重新填充列表。 – 2014-05-13 21:00:54