每天一个知识点:Redis Zset 原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天一个知识点:Redis Zset 原理相关的知识,希望对你有一定的参考价值。
参考技术A 否则,创建一个 REDIS_ENCODING_SKIPLIST 编码的 Zset。ziplist 编码的 Zset 使用紧挨在一起的压缩列表节点来保存,第一个节点保存 member,第二个保存 score。ziplist 内的集合元素按 score 从小到大排序,其实质是一个双向链表。虽然元素是按 score 有序排序的, 但对 ziplist 的节点指针只能线性地移动,所以在 REDIS_ENCODING_ZIPLIST 编码的 Zset 中, 查找某个给定元素的复杂度为 O(N)。
深入理解Redis Zset原理
拼多多面试官问我zset底层是如何实现的,我反手就把跳表的数据结构画了出来
数据存储Redis第三章: Redis五大数据类型实现原理
Redis五大数据类型实现原理
对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象redisObject,根据对象的类型type,为对象设置多种不同的数据结构,对象可以执行特定的命令。
本章主要涉及到的知识点有:
- redisObject的属性
- 五大数据类型编码
注意:本章内容每一小节可单独学习,无论先后。
redisObject属性
学完本章中,读者需要回答:
1.Redis底层数据结构如何实现?
2.Redis是如何回收内存?
Redis的一个键值对,有两个对象,一个是键对象,一个是值对象,键总是一个字符串对象,而值可以是字符串、列表、集合等对象,Redis中的值对象都是由 redisObject 结构来表示:
typedef struct redisObject{
//表示类型:string,list,hash,set,zset
unsigned type:
以上是关于每天一个知识点:Redis Zset 原理的主要内容,如果未能解决你的问题,请参考以下文章