set data:1001 "some string 2" 但是如何使用散列来最小化键的数-6ren">
gpt4 book ai didi

redis - 字符串类型的字符串与哈希?哈希将只有一个键而不是多个

转载 作者:IT王子 更新时间:2023-10-29 06:00:57 25 4
gpt4 key购买 nike

例如,我看到很多人都在做类似下面的事情:

> set data:1000 "some string 1"
> set data:1001 "some string 2"

但是如何使用散列来最小化键的数量呢?

> hset data 1000 "some string 1"
> hset data 1001 "some string 2"

在第二种方式中,它只会创建一个 data 键,而不是在第一种方式中创建许多键。

推荐哪种方式?

我只是看到一些人和教程正在做 hset data:10 01 xxx。这实际上与我的问题无关。我的问题只是询问 set data:1001 xxxhset data 1001 xxx 之间的推荐值。

而且我不打算修改 hash-max-zipmap-entrieshash-max-zipmap-value。这意味着哈希最终将超过这两个值。在这样的配置中,这两种方式是否相同?或者推荐哪种方式?

最佳答案

使用字符串的原因:

  • 你需要每个值超时
  • 值在语义上是隔离的
  • 您在集群上并希望将值分片到不同的节点以分散负载(分片基于键)

使用哈希的原因:

  • 您希望能够一次清除所有这些 (del/unlink),或者有一个影响所有这些值(value)观一次
  • 你希望能够枚举它们(更喜欢 hscan/hgetall 而不是 scan/keys)
  • 键本身的内存使用略有改善
  • 值在语义上相关
  • 所有的值都可以在同一个节点上(无论是单服务器还是集群)

关于redis - 字符串类型的字符串与哈希?哈希将只有一个键而不是多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55205535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com