数据库
Kuroba_thief
互相交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis集合
Redis集合底层实现是哈希表或整数数组,如下图所示127.0.0.1:6379> SADD names "lxx" "xuming"(integer) 2127.0.0.1:6379> object encoding names"hashtable"127.0.0.1:6379> SADD ages 11 12 13(integer) 3127.0.0.1:6379> smembers ages1) "11"2) "12"3) "13"127.0.0原创 2020-12-30 17:52:46 · 252 阅读 · 0 评论 -
redis—skiplist
跳表数据结构:跳表节点/* ZSETs use a specialized version of Skiplists *//* * 跳跃表节点 */typedef struct zskiplistNode { // 成员对象 robj *obj; // 分值 double score; // 后退指针 struct zskiplistNode *backward; // 层 struct zskiplistLevel原创 2020-12-21 11:10:26 · 186 阅读 · 0 评论 -
redis—rehash
int dictRehash(dict *d, int n) { // 只可以在 rehash 进行中时执行 if (!dictIsRehashing(d)) return 0; // 进行 N 步迁移 // T = O(N) while(n--) { dictEntry *de, *nextde; /* Check if we already rehashed the whole table... */ // .原创 2020-12-10 23:06:51 · 224 阅读 · 0 评论 -
redis源码阅读—SDS空间预分配策略和惰性删除策略
备注:文中redis源码版本为redis3.0该段摘自于《redis设计与实现》空间预分配用于优化 SDS 的字符串增长操作: 当 SDS 的 API 对一个 SDS 进行修改, 并且需要对 SDS 进行空间扩展的时候, 程序不仅会为 SDS 分配修改所必须要的空间, 还会为 SDS 分配额外的未使用空间。其中, 额外分配的未使用空间数量由以下公式决定:如果对 SDS 进行修改之后, SDS 的长度(也即是len属性的值)将小于1MB, 那么程序分配和len属性同样大小的未使用...原创 2020-12-10 11:47:54 · 1524 阅读 · 0 评论 -
redis源码阅读—SDS阅读札记
阅读SDS数据结构实现时,发现如下代码struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));原创 2020-12-09 19:37:31 · 209 阅读 · 0 评论
分享