在redis中存储对象属性

发布于 2024-10-21 03:29:46 字数 288 浏览 5 评论 0原文

假设我有一个对象(用户),其中包含一些属性(ID、姓名、姓氏、年龄)。哪种方式更好地将这个对象存储在redis中?

  • 将每个属性值存储在专用键中,例如 user:{id}:id、user:{id}:name、user:{id}:surename、user:{id}:age
  • 将整个 User 对象存储为 JSON 字符串键,例如 user:{id}:json (键的值将是这样的:{"ID": 123, "Name": "Johny", "Surename": "Bravo", "Age": 22 })

Lets say I have an object (User) which consists of a few properties (ID, Name, Surename, Age). Which way is better to store this object in redis?

  • store each property value in dedicated key, for example user:{id}:id, user:{id}:name, user:{id}:surename, user:{id}:age
  • store whole User object as JSON string in one key, for example user:{id}:json (value of the key will be something like this: {"ID": 123, "Name": "Johny", "Surename": "Bravo", "Age": 22})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

遗弃M 2024-10-28 03:29:46

根据 这些 两个 来源可能最佳解决方案是使用 哈希,因为在以 JSON 作为键值的场景中使用专用键和长字符串时会消耗内存。

According to these two sources probably the optimal solution would be to use hashes because of memory consumption when using dedicated keys and long string in scenario with JSON as key value.

鹊巢 2024-10-28 03:29:46

来自官方 Redis

尽可能使用哈希

小哈希值被编码在非常小的空间中

当你没有太多字段时,

每次哈希都会超出元素数量或元素大小
指定它将被转换成真正的哈希表,并且内存
储蓄将会丢失。

From official Redis

Use hashes when possible

Small hashes are encoded in a very small space

When you haven't to much fields in it.

Every time an hash will exceed the number of elements or element size
specified it will be converted into a real hash table, and the memory
saving will be lost.

时光是把杀猪刀 2024-10-28 03:29:46

根据我的测试,使用哈希占用的空间要小得多,但这就是唯一的原因。如果您有大量数据,请考虑使用哈希。否则,您也可以使用 JSON,因为如果您愿意,可以很容易将其序列化和反序列化为对象,并且可以进行一般处理。

From my tests using hash takes much smaller space, but that is about the only reason. If you have a lot of data consider using hash. Otherwise you might as well use JSON since it's easy to serialize and deserialize it to objects if you so wish, and handle in general.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文