redis2. sds 字符串(SimpleDynamicString)
2024-10-06 19:18:20
1.标准strcat 会有溢出风险,sdscat无溢出风险
2.空间预分配,惰性空间释放
空间预分配:sds分配空间时,如果原来是5,free是0, sdscat追加一个10长度的,此时字符串加长到15,free也同时分配15,总长为15 + 15free + 1(/0) 为31字节; 若大于1M后则以1M为单位追加。
这么做的原因是,内存分配是比较耗时的操作【https://baike.baidu.com/item/realloc/659993?fr=aladdin】,在原地址空间后面若无足够的可用空间,还需要内存拷贝。这样预分配free空间以减少后续的内存分配操作。
惰性过期:free后不会释放空间,会把减少的字符长度追加到free上。
3.二进制安全
最新文章
- 从DataGridView导出Excel
- POJ 3181 Dollar Dayz DP
- 【nginx】负载均衡和proxy的配置
- jenkins+jmeter+ant搭建接口测试平台
- How to install more voices to Windows Speech?
- IIS 发布网站到外网
- data structure online video
- Monitor and diagnose performance in Java SE 6--转载
- hdu 2074 堆放篮 好开心图纸标题
- ios开发屏幕问题
- 将百度的ECharts整合到阿里的Weex中。
- [Python Study Notes]字符串操作
- 让UltraEdit成为java编译器
- How hacker do IT: Tricks Tools and Techniques (翻译)
- 在WINDOWS中安装使用SIGPACK(MinGW64+Sublime Text3 &;Visual Studio)
- msmq访问格式
- js回调函数以及同步与异步
- 20145203盖泽双《网络对抗技术》实践五:MSF基础应用
- 存储json数据的编码问题
- UWP Button添加圆角阴影(一)
热门文章
- webapi 之 post参数传递
- docker images 导入和导出
- Djang简介
- vue项目环境的搭建
- 用jquery实现Ping测试网络连接性
- spark_rdd 一波怼完面试官系列
- springboot 详解RestControllerAdvice(ControllerAdvice)(转)
- sql server 遍历表成一棵树结构
- Go学习笔记(六) | 使用swaggo自动生成Restful API文档(转)
- [Javascript] How to deal with floating number