首页 > 编程知识 正文

redis存储结构(redis怎么用)

时间:2023-05-06 00:09:17 阅读:356 作者:513

作者:qcdxb

原产地:https://segmentfault.com/a/1190000038536532

由多个dldgb存储桶(数组中的元素,包括条目元素)组成的全局dldgb表(数组)

例如,键名为: aaa,键值为bbb。

通过哈希(aaa),得到数组索引6,然后dldgb桶6。dldgb存储桶6中的条目元素包含指向键和值的指针。key指向键名aaa,value指向键值bbb,这是常用的redis数据结构、字符串、列表等。我们经常接触的。

00-1010 dldgb桶数有效,键数通常比dldgb桶多,多个键可能落入同一个dldgb桶,那么dldgb冲突(dldgb冲突:在两个键的dldgb值与dldgb桶的计算关系中,它们落入同一个DLDGB桶。),所以我们要先找到桶,然后再找到桶上的元素,这样就慢下来了。

00-1010如图所示,多个元素(entry1、entry2等。)存储在一个链表中,该链表由指针依次链接。entry1元素将通过下一个指针指向entry2,entry2也将通过下一个指针指向entry3。这个链表叫做dldgb冲突链。

00-1010,沿着链表指针进行搜索,确定条目元素中*key指针指向的键名是否一致。

redis存储数据太多,为什么查找速率会变慢?

重新散列(再次dldgb),增加现有的dldgb桶,让入口元素分散在不同的dldgb桶中,减少单向元素的数量。默认情况下有两个dldgb表,分别是dldgb表1和dldgb表2。重新散列过程如下。

为dldgb表2分配更多空间,例如,当前dldgb表1的两倍大小。将dldgb表1中的数据重新映射并复制到dldgb表2,以释放dldgb表1的空间。00-1010渐进式重挂,在上面第二步的过程中,当有客户端请求时,首先会迁移dldgb表1的index 1的元素,然后会有请求,再迁移dldgb表的index 2的元素,避免了全拷贝阻塞线程影响服务。

作者:qcdxb

原产地:https://segmentfault.com/a/1190000038536532

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。