【问题标题】:Do I need to hash a Redis key before using *SET?在使用 *SET 之前是否需要对 Redis 密钥进行哈希处理?
【发布时间】:2020-10-29 00:06:12
【问题描述】:

我的印象是,在向其添加数据之前,应该散列(即 sha3)他们的 Redis 密钥。 (甚至可能与内存缓存有关。)我不记得为什么我有这种印象或它来自哪里,但我找不到任何东西来验证(或反驳)它。原因是哈希有助于在集群中均匀分布。

在使用 Redis 时(在集群模式和非集群模式中的一种/两种)是最好在调用 SET 之前对密钥进行哈希处理吗?例如set(sha3("username:123"), "owlman123")

【问题讨论】:

    标签: redis


    【解决方案1】:

    不,您不应该散列密钥。 Redis Clusterhashes the key本身用于选择节点:

    Redis 集群中有 16384 个哈希槽,要计算给定键的哈希槽,我们只需将键的 CRC16 取模 16384。

    您还可以使用hash tags 来控制哪些键共享同一个槽。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 2020-05-23
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      相关资源
      最近更新 更多