redis hashtag一文搞懂,源码解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis hashtag一文搞懂,源码解析相关的知识,希望对你有一定的参考价值。

参考技术A 仅仅花括号中间的部分参与hash,hash结果为slot编号。

 

强制多个key写入同一个slot,也就是同一个节点(假设没有正在进行分片)。
 

在redis cluster中有16384个slot。
slot编号:0~16383。
cluster中存储每个节点负责哪些slot。
cluster中存储每个slot对应哪一个节点。
 

源码有2处。
第一处:
https://github.com/redis/redis/blob/6.2.6/src/redis-cli.c
line:3282
方法:clusterManagetKeyHashSlot

第二处:
https://github.com/redis/redis/blob/6.2.6/src/cluster.c
line:749
方法:keyHashSlot

 

仅...里的部分参与hash。

如果有多个花括号,从左向右,取第一个花括号中的内容进行hash。

若第一个花括号中内容为空如:acd,则整个key参与hash。

相同的hashtag被分配到相同的节点,相同的槽。

hash算法采用crc16。crc16算法为redis自己封装的,源码位置: https://github.com/redis/redis/blob/6.2.6/src/crc16.c 。

以上是关于redis hashtag一文搞懂,源码解析的主要内容,如果未能解决你的问题,请参考以下文章

一文带你快速搞懂动态字符串SDS,面试不再懵逼

一文搞懂Spring AOP源码底层原理

一文带你搞懂C++如何操作文件对话框(附源码)

tomcat与javaweb开发技术详解,一文搞懂

一文搞懂百度强推的Redis天花板笔记,原来数据库是这样理解的

分布式存储引擎大厂实战——带你读源码搞懂为什么Redis用单线程还这么快