获取redis中存在的所有哈希值

时间:2016-12-14 07:10:34

标签: redis redis-cli

我在redis缓存中有哈希,如:

Hash         Key    Value
hashme:1    Hello   World
hashme:2    Here    Iam
myhash:1    Next    One

我的目标是在CLI中将Hashes作为输出,如:

hashme
myhash

如果没有这样的选择,也可以这样做:

 hashme:1
 hashme:2
 myhash:1

我在Redis API中没有找到任何相关命令。

有什么建议吗?

5 个答案:

答案 0 :(得分:2)

redis(以及其他K / v商店)的想法是为您构建索引。数据库不会为您执行此操作。这是关系数据库的一个主要区别,它可以带来更好的表现。

因此,当您的应用创建哈希时,将其密钥放入SET中。当您的应用删除哈希时,请从SET中删除其密钥。然后要获取哈希ID列表,只需使用SMEMBERS获取SET的内容。

答案 1 :(得分:2)

您可以使用SCAN命令从Redis获取所有密钥。然后,对于每个密钥,使用TYPE命令检查它是否为哈希值。

答案 2 :(得分:1)

    // Set up the cluster manager with the supplied icon generator and
    // renderer.
    let iconGenerator = GMUDefaultClusterIconGenerator()
    let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
    let renderer = GMUDefaultClusterRenderer(mapView: mapView,
                                             clusterIconGenerator: iconGenerator)
    renderer.delegate = self
    renderer.minimumClusterSize = 5 // Here is the setting

    clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm,
                                       renderer: renderer)
    clusterManager.setDelegate(self, mapDelegate: self)

为我工作。您可以尝试。

答案 3 :(得分:0)

connection.keys('*')将带出所有键,而与数据类型无关,因为redis中的所有内容均以键值格式存储

答案 4 :(得分:0)

对于python中的redis,您可以使用以下命令从redis db中检索密钥

def standardize_list(bytelist):
    return [x.decode('utf-8') for x in bytelist]

>>> standardize_list(r.keys())
['hat:1236154736', 'hat:56854717', 'hat:1326692461']

这里的r变量是redis连接对象