首页文章正文

redis sds原理,SDS算法

redis缓存原理与实现 2023-12-20 14:51 478 墨鱼
redis缓存原理与实现

redis sds原理,SDS算法

​ SDS,即Simple Dynamic String,简单动态字符串。​ Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组),而是自己构建了一种名为简单动态字符Redis 通过len属性的值来判断是否结束,而不是C字符串的\0 作为结束。兼容部分C字符串函数上面已经提到SDS在末尾添加了\0 ,这样可以兼容部分C字符串函数,

SDS是Simple Dynamic String的缩写,它是Redis中字符串的底层实现方式。SDS是一种动态字符串,它可以自动扩容,支持O(1)时间复杂度的字符串长度计算,同时还支持二进制安全的字符SDS简介Redis是C语言编写的,但没有使用c语言的字符串结构,而是自己实现了一套简单动态字符串simple dynamic string 简称SDS,SDS兼容C语言的字符串类型,原理

value对象通常具有两个内存部分:redisObject部分和redisObject的ptr指向的sds部分。创建value对象时,通常需要为redisObject和sds申请两次内存。单对于短小的字因此redis 中的sds数据结构是这样设计的,是通过一个成员来标志字符串的长度:SDS: free:0len:6charbuf[]="xiaomo"若这个时候,我们需要在字符串后面追加字符串,sds 就会进行扩容,例

// 空string 往往用于append , 在这里可以看到sds type 5 类型会被怒sds type 8 替换掉if (type == SDS_TYPE_5 && initlen == 0) type = SDS_TYPE_8; //获取struct的长度int hdr1.redis没有直接使用C的字符串,而是自己实现了字符串的实现名叫SDS 2.c的字符串只会用在值不会改变的地方,比如redislog打印回到顶部SDS的应用场景1. 本地:0>

个结构SDS,REDIS_ENCODING_RAW,输出raw字典,REDIS_ENCODING_HT,输出hashtable双端链表,REDIS_ENCODING_LINKEDLIST,输出linkedlist压缩列表,REDIS_ENCODING_ZIPLIST,输出ziplist整数Redis中规定假如存储的是「整数型值」比如set num 123这样的类型,就会使用int的存储方式进行存储,在redisObject的「ptr属性」中就会保存该值。SDS 假如存储的「字符串是一个字符

后台-插件-广告管理-内容页尾部广告(手机)

标签: SDS算法

发表评论

评论列表

灯蓝加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号