400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

redis五种数据结构的底层实现方法

本篇内容主要讲解“redis五种数据结构的底层实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis五种数据结构的底层实现方法”吧!

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比陇西网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式陇西网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖陇西地区。费用合理售后完善,十年实体公司更值得信赖。

实现方法:1、每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码;2、每种数据结构都有两种以上的内部编码实现;3、内部编码可以作为多种外部数据结构的内部实现。

本教程操作环境:windows7系统、Redis5.0.10版、DELL G3电脑。

Redis有五种基本数据结构:字符串、hash、set、zset、list。下面解释下载Redis 3.0.6版本中底层是怎样实现他们的。

总结一下

(1)每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码。

(2)可以看到每种数据结构都有两种以上的内部编码实现,例如string数据结构就包含了raw、int和embstr三种内部编码。

(3)同时,有些内部编码可以作为多种外部数据结构的内部实现,例如ziplist就是hash、list和zset共有的内部编码。

动态字符串SDS

SDS是“simple dynamic string”的缩写。Redis中所有场景出现的字符串,基本都是有SDS来实现的:

SDS长这样:

redis五种数据结构的底层实现方法

free:还剩多少空间

len:字符串长度

buf:存放的字符数组

空间预分配

为减少修改字符串代理的内存重分配次数,SDS采用了“一次管够“的策略:

惰性空间释放

为避免缩短字符串时候的内存重分配操作,SDS在数据减少时,并不立刻释放空间。

int

就是redis中存放的各种数字,包括故意加“”的

set game “111”

双向链表

双向链表如lpush, rpush, lpop, rpop

长这样:

redis五种数据结构的底层实现方法

分两部分:

双向链表由 list 和 listNode 两个数据结构构成。

到此,相信大家对“redis五种数据结构的底层实现方法”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


网站题目:redis五种数据结构的底层实现方法
网页网址:http://www.bluegullmedia.com/article/jccdid.html

其他资讯

让你的专属顾问为你服务

0.0457s