Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用*SET之前是否需要散列Redis密钥?_Redis - Fatal编程技术网

在使用*SET之前是否需要散列Redis密钥?

在使用*SET之前是否需要散列Redis密钥?,redis,Redis,我的印象是,在添加数据之前,应该先散列(即sha3)他们的Redis密钥。(这甚至可能是关于memcache的)我不记得为什么会有这种印象,也不记得它是从哪里来的,但我找不到任何东西来验证(或反驳)它。原因是散列将有助于在集群中均匀分布 当使用Redis时(在集群和非集群模式中的任一种/两种模式下),在调用SET之前散列密钥是最佳做法吗?e、 g.set(sha3(“用户名:123”),“owlman123”)不,不应该散列密钥。Redis群集本身用于选择节点: Redis集群中有16384个哈

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


当使用Redis时(在集群和非集群模式中的任一种/两种模式下),在调用SET之前散列密钥是最佳做法吗?e、 g.
set(sha3(“用户名:123”),“owlman123”)
不,不应该散列密钥。Redis群集本身用于选择节点:

Redis集群中有16384个哈希槽,为了计算给定密钥的哈希槽,我们只需取密钥模16384的CRC16

您还可以使用来控制哪些键共享同一插槽