redis为什么快?

规避数据库的事务操作

   

Sorted_set做排名为什么快?

因为底层使用了skip list跳表,skip list特点是以空间换取时间。

   

跳表的

a、一个跳表应该有几个层(level)组成.

通常是10-20层,leveldb中默认为12层。

   

b、跳表的第0层包含所有的元素;

且节点值是有序的。

   

c、每一层都是一个有序的链表;

层数越高应越稀疏,这样在高层次中能'跳过'许多的不符合条件的数据。

   

d、如果元素x出现在第i层,则所有比i小的层都包含x;

   

e、每个节点包含key及其对应的value和一个指向该节点第n层的下个节点的指针数组

x->next[level]表示第level层的x的下一个节点

   

   

1、通过原始链表查询元素16,需要比较10次

   

2、通过一级索引查找需要7次

   

   

3、通过1、2级索引联合查找需要5次。

posted @ 2020-10-21 08:31  黑质白章  阅读(100)  评论(0编辑  收藏  举报