redis讨论下Sorted Set底层数据结构及应用场景

概述

redis中一般数据结构已经够用了,比如常用的string和hash基本已经可以覆盖常用场景了,数据读写时间复杂度都是O(1).因为都是key value的结构. 但是当需要范围查找和排序的话,那就不能了,这种操作有点像数据库操作,而且有点像索引的功能. 没错,Sorted Set底层就是使用跳表实现的,有点类似二叉树索引之类的数据结构,时间复杂度为O(LogN).

数据结构图

redis整体结构图 image.png

entry结构图

image.png

skiplist结构图

image.png

1.Sorted Set也是一个集合,相对于string来说,底层也是两种数据结构压缩列表和跳表

2.skiplist起到一个索引的作用,那么索引相关的操作就能使用了,比如排序,范围查询这些操作.

3.skiplist时间复杂度要比hash string高一些,时间复杂度O(LogN)
复制代码

使用场景

1.如果只是单纯的key value操作,那么建议使用hash,string,时间复杂度低

2.如果要进行排序,范围查找.比如点赞,评论,排名,那么建议使用Sorted Set
复制代码

おすすめ

転載: juejin.im/post/7039616309977415711
おすすめ