博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的sds
阅读量:5365 次
发布时间:2019-06-15

本文共 500 字,大约阅读时间需要 1 分钟。

Redis 源码中的sds,是一个动态字符串库(A dynamic string library).

结构如下:

struct sdshdr {

  int len;

  int free;

  char buf[];

};

len是字符串长度,free是缓存区中的剩余大小,其中的内存分配当然用zmalloc。

typedef char* sds;  sds类型的指针退sizeof(sdshdr)个字节就是sdshdr。

这个库接口比较丰富,包括增长(sdsMakeRoom, sdsgrowzero,sdscat,sdslen,缓存区每次增长到需要的2倍,如果超过1M,则每次增长1M),切分(sdssplit,sdssplitlen),sprintf接口,大小写转换,字符替换。

比较特别的是其中可以添加引用字符串(quoted string),接口为sdscatrepr,还有反向操作sdssplitargs,可以做命令行解析。

感觉里面少一个字符串替换的接口。

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/16/3138888.html

你可能感兴趣的文章
NYOJ1——A+B Problem NYOJ2——括号配对问题
查看>>
Python闭包
查看>>
Linux crontab命令
查看>>
Python 迭代器 & __iter__方法
查看>>
Zookeep启动异常:Error contacting service. It is probably not running.
查看>>
微信批量关注公众号,推送消息软件介绍
查看>>
1.1 环境搭建
查看>>
Two path ray tracing与Photon Mapping(粒子跟踪)
查看>>
Billboard mapping
查看>>
MyBatis学习(一)
查看>>
ScrollView嵌套ListView只显示一行解决方案
查看>>
【RL系列】Multi-Armed Bandit笔记补充(二)
查看>>
C语言博客作业--字符数组
查看>>
2017.07.18
查看>>
“耐撕”团队记账本 剧透
查看>>
9. 面向对象
查看>>
[NOI2015]荷马史诗
查看>>
电影《推拿》观后
查看>>
c++复习:STL之容器
查看>>
Python文件格式化写入
查看>>