【Redis初级】简单动态字符串(一)
来源:互联网 发布:python ftp 传输模式 编辑:程序博客网 时间:2024/06/16 12:15
Redis是C编写的开源高性能数据服务器。
参考书籍:《Redis设计与实现》
内容:
-1- Redis的SDS定义
-2- SDS与C字符串的区别
-3- SDS的API
-1- Redis的SDS定义:
struct定义的SDS。有三个属性:len、free和char数组buf,buf遵循C以‘\0’结尾的惯例。
-2- SDS与C字符串的区别:
<1> SDS的len可以直接返回数组长度,C数组长度获取O(N),SDS为O(1),
<2>拼接操作(sdscat),SDS先检查扩容,再执行,避免buffer overflow
**<3>**redis在分配字符串的高性能策略:空间预分配、惰性空间释放。
空间预分配:小于1M,预留double;大于1M,预留1M。够用则不分配,连增N字,最多重分配N次。
惰性空间释放:移除字符不释放空间,用free记录,以便于避免增长时的充分配。
<4>二进制安全:C语言只能保存文本,而不能保存图片、视频等。空格符会被误认为终止符。
SDS的API都会以处理二进制的方式处理SDS的buf,不会对数据做限制和过滤。而SDS用len来判断是否读取结束。
<5>遵循’\0’结尾,可以使用C语言
阅读全文
0 0
- 【Redis初级】简单动态字符串(一)
- Redis数据结构(一)简单动态字符串
- redis设计与实现(一)简单动态字符串
- Redis学习笔记(一)----简单动态字符串
- Redis-简单动态字符串
- Redis 简单动态字符串
- redis 简单动态字符串
- Redis-简单动态字符串
- Redis -- 1、简单动态字符串(sds)
- Redis中的简单动态字符串
- Redis之简单动态字符串
- Redis SDS简单动态字符串
- Redis源码剖析和注释(二)--- 简单动态字符串
- redis学习笔记二(简单动态字符串)
- Redis深入之简单动态字符串
- redis内部数据结构--简单动态字符串sds
- Redis-数据结构-1-简单动态字符串
- Redis底层数据结构之简单动态字符串
- uboot移植(一)
- 类的初始化顺序
- 单例模式
- okhttp-utils使用
- FFMPEG mp3->wav wav->pcm
- 【Redis初级】简单动态字符串(一)
- 微信扫描自定义二维码关注公众号
- Python3.5基础——NumPy模块的使用(上)
- uniq指令 & wc指令
- OpenGL开发库的详细介绍
- Java中的多线程你只要看这一篇就够了
- springmvc的常用接口
- Docker常用命令
- kafka2:性能优化