【发布时间】:2015-12-08 16:53:06
【问题描述】:
我有一个 json 对象,例如一个包含大约 10 个键/值对的用户对象,我目前存储在集合中以用于各种分组。
我将对象字符串化,然后在输出时对其进行解析。更新有时很痛苦,因为我必须获取数据然后重置它。
我正在考虑切换到哈希集并使用 hmset 和 hgetall。
使用哈希有什么缺点吗?性能或其他方面,或者这会是更好的解决方案吗?
【问题讨论】:
标签: redis
我有一个 json 对象,例如一个包含大约 10 个键/值对的用户对象,我目前存储在集合中以用于各种分组。
我将对象字符串化,然后在输出时对其进行解析。更新有时很痛苦,因为我必须获取数据然后重置它。
我正在考虑切换到哈希集并使用 hmset 和 hgetall。
使用哈希有什么缺点吗?性能或其他方面,或者这会是更好的解决方案吗?
【问题讨论】:
标签: redis
如果用户对象是扁平的,即没有嵌套对象,那么哈希是完美的。使用 hget 获取单个字段是 O(1)。使用 hgetall 获取整个对象是 O(n),其中 n 是字段数,因此在您的情况下它也会非常快。
请记住,哈希字段值存储为字符串。所以当你从 redis 取回数据时,你可能需要做一些类型转换。
【讨论】: