redis的set数据和get数据的底层原理
redis的存值是基于全局hash表来实现的。详细的过程如下:
一、存
1、首先会对存的key进行hash运算,拿到这个key的hash值
2、对这个hash值模上数字的长度,最后会得到一个数组的长度
1,那么就存在数组长度为1的数组位置上
3、最后将这个key和value存储到数组对应的链表上,存储的形式是如上图,以key-value的形式存储
二、取
1、首先会对存的key进行hash运算,拿到这个key的hash值
2、对这个hash值模上数字的长度,最后会得到一个数组的长度。比如最后模余了1,就定为到了这个key的存储数组位置
3、通过key获取到数组长度为1对应链表上的key为目标key的数据并返回
至此,关于Redis存取常规数据已经介绍完毕,后续该模块还会持续的进行优化,希望大家可以保持学习!