【问题标题】:Storing key-value pairs with or without a hash in redis在 redis 中存储带或不带散列的键值对
【发布时间】:2012-02-17 16:45:44
【问题描述】:

我通过 Redis-py 客户端将键值对存储在 Redis 数据库中。所有键都是唯一的,没有重复项。这是一个例子:

key = 133735570
value = {"key":133735570,"value":[[141565041,1.2],[22592300,1.0],[162439394,1.0],[19397942,1.0],[79996146,1.0],[84352985,1.0],[123276403,1.0],[18356816,1.0],[113839687,1.0],[16235789,1.0],[144779115,1.0],[94628304,1.0],[134973120,1.0],[138501363,1.0],[34351681,1.0],[80202522,1.0],[81561595,1.0],[18913677,1.0],[130488590,1.0],[128208311,1.0],[93912155,0.5]]}

添加哈希(与键名相同)会提高性能吗?例如,

key = 133735570
hash = 133735570
value = {"key":133735570,"value":[[141565041,1.2],[22592300,1.0],[162439394,1.0],[19397942,1.0],[79996146,1.0],[84352985,1.0],[123276403,1.0],[18356816,1.0],[113839687,1.0],[16235789,1.0],[144779115,1.0],[94628304,1.0],[134973120,1.0],[138501363,1.0],[34351681,1.0],[80202522,1.0],[81561595,1.0],[18913677,1.0],[130488590,1.0],[128208311,1.0],[93912155,0.5]]}

我的要求是查找键以便从中检索相应的值。

【问题讨论】:

    标签: python performance hash redis key-value-store


    【解决方案1】:

    您可以尝试将您的键值对(您的示例中的值部分)存储在 hash 数据结构中(其中您的键部分将存储为哈希字段,值部分存储为哈希值;查看 @987654322 @) 对数据操作更灵活,可能比纯值字符串consume less memory

    【讨论】:

    • 那么,我应该做 redisObject.hmset(key,value) 而不是当前的 redisObject.hset(key,key,value) ?注意:有 NO 重复键。它仍然有助于提高内存效率吗?
    • 哦,所以你已经在使用哈希了? HMSET 允许您在一次操作中将多个字段/值对设置为哈希。根据文章,它应该是内存效率的,但只有一种方法可以确定,所以你可能不得不尝试一下。
    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多