我有很多不同的钥匙。一些以“用户USERNAME”和许多其他人开头。
有没有办法从“user *”获取随机密钥?
如果是这样,我怎么能得到5个不同的用户?
答案 0 :(得分:2)
如果将所有用户名放入Redis集中,则可以使用SRANDMEMBER命令从集合中随机获取用户名。文档中的示例:
redis> SADD myset one two three
(integer) 3
redis> SRANDMEMBER myset
"three"
redis> SRANDMEMBER myset 2
1) "three"
2) "two"
该集合似乎是唯一可以从集合中返回随机元素的Redis data type。您可能必须以不同的方式处理数据。
答案 1 :(得分:1)
您可以使用Set并将所有“user *”键名称存储在其中,如 @Sunil D 所示。
或者,您可以使用专用的Redis数据库作为“user *”键,然后使用RANDOMKEY
命令从中获取密钥。关于这一点的好处是你不必管理密钥名集(即分别在创建或删除密钥时添加和删除密钥名称。)
但是,请注意,对于这两种方法,您必须检查在每次调用SRANDMEMBER
或RANDOMKEY
之后未提前返回的结果,因为不会确保每次调用时都会得到不同的答案。