图解redis五种数据结构底层实现(动图哦)
Posted 菜刚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解redis五种数据结构底层实现(动图哦)相关的知识,希望对你有一定的参考价值。
redis有五种基本数据结构:字符串、hash、set、zset、list。但是你知道构成这五种结构的底层数据结构是怎样的吗?今天我们来花费五分钟的时间了解一下。(目前redis版本为3.0.6)
动态字符串SDS
SDS是"simple dynamic string"的缩写。redis中所有场景中出现的字符串,基本都是由SDS来实现的
所有非数字的key。例如
setmsg"hello world"
中的key msg.字符串数据类型的值。例如`` set msg "hello world"中的msg的值"hello wolrd"
非字符串数据类型中的“字符串值”。例如
RPUSH fruits"apple""banana""cherry"
中的"apple" "banana" "cherry"
SDS长这样:
free:还剩多少空间 len:字符串长度 buf:存放的字符数组
空间预分配
为减少修改字符串带来的内存重分配次数,sds采用了“一次管够”的策略:
以上是关于图解redis五种数据结构底层实现(动图哦)的主要内容,如果未能解决你的问题,请参考以下文章