我使用分号保存了数据。
redis> keys party:*
1) "party:congress:president"
2) "party:bjp:president"
3) "party:bjp"
4) "party:sena"
是否有任何命令列出所有各方?在上面的例子中,我希望
congress
bjp
sena
答案 0 :(得分:24)
不,没有命令这样做。 但如果你真的需要在客户端实现它将是微不足道的。
应用程序绝不应使用KEYS命令来检索数据。 KEYS会阻塞整个Redis实例,同时线性扫描您存储的数百万个密钥。它更像是一个应该在管理工具中使用的调试命令。
使用Redis,没有btree结构来索引键,所以你不能查询键,除非你的键存储在现有的集合中(set,zset等...)
答案 1 :(得分:5)
您可以使用redis中的SCAN命令搜索键而不会阻止整个数据库。
此命令有一个可选的MATCH过滤器,其工作方式与KEYS命令上的过滤器非常相似。
redis> SCAN 0 MATCH party:*
1) <the cursor>
2) 1) "party:congress:president"
2) "party:bjp:president"
3) "party:bjp"
4) "party:sena"
继续调用,直到光标返回0以获取所有各方 (如果在扫描时插入它们,可能无法获得所有参与方)
自2.8以来可用
答案 2 :(得分:3)
您可以使用KEYS
和*
通配符。
SET user:1 Amir
SET user:2 Jack
要使所有用户都使用通配符:
KEYS user:*
结果将是:
1) "user:1"
2) "user:2"
答案 3 :(得分:1)
我想如果您想从redis获取'派对'数据,那么每次保存常规数据时,您还会将派对名称保存到派对列表中,然后就可以轻松获取