随笔分类 -  redis

摘要:string 缓存 分布式锁 value整数还可以计数 list 栈 队列 平均分配,从队头取部分放到结尾,并返回这部分。 hash hash和string用途类似,操作方式也类似,适合存储一个对象 set 有去重效果,可以存储中奖用户id,保证一个用户不会中2次奖 zset 滑动窗口做限流 pub 阅读全文
posted @ 2021-07-26 21:42 扶不起的刘阿斗 阅读(39) 评论(0) 推荐(0)
摘要:一、原理 布隆过滤器就是一个初始为0的数组+n个hash函数 上图三个hash函数h1,h2,h3,分别算出x1的三个位置,h1(x1),h2(x1),h3(x1),然后把对应位置(数组的1,4,8)置1,同理算出x2的三个位置(数组的4,6,10)置1 判断是否存在则根据三个hash函数算出3个位 阅读全文
posted @ 2021-06-27 23:44 扶不起的刘阿斗 阅读(199) 评论(0) 推荐(0)
摘要:大纲: 跳跃表结构 跳跃表特性 跳跃表源码 一、跳跃表结构 图转自:http://www.cppblog.com/mysileng/archive/2013/04/06/199159.html 这个图描述了一个大于37小于45的数字的插入过程,也基本描述了跳跃表的结构,增、删、查都是从左上角的头结点 阅读全文
posted @ 2021-06-05 16:13 扶不起的刘阿斗 阅读(187) 评论(0) 推荐(0)
摘要:大纲 字典的数据结构 字典的特性 一、字典的数据结构 字典的实现和java的hashmap很像,dictht就是一个哈希表 typedef struct dict { // 类型特定函数 dictType *type; // 私有数据保存了传给type的可选参数 void *privdata; // 阅读全文
posted @ 2021-05-09 21:59 扶不起的刘阿斗 阅读(88) 评论(0) 推荐(0)
摘要:整数集合是纯整数时set的底层实现 typedef struct intset { uint32_t encoding; uint32_t length; int8_t contents[]; } intset; encoding表示数组内的变量的类型,一共三个枚举值(int16,int32,int 阅读全文
posted @ 2021-05-05 13:07 扶不起的刘阿斗 阅读(89) 评论(0) 推荐(0)
摘要:大纲: 双向链表-list 压缩表-ziplist 快速表-quicklist 一、双向链表-list redis早期版本处理list用的就是双向链表 struct listNode{ struct listNode *prev; //前一个结点 struct listNode *nenxt; // 阅读全文
posted @ 2021-04-29 22:45 扶不起的刘阿斗 阅读(635) 评论(0) 推荐(0)
摘要:大纲: sds结构 sds优势 一、sds结构 sds结构 struct sdshdr { int len;//数组中已使用的长度 int free;//数组中未使用的长度 char buf[];//字节数组 } c语言以'\0'空字符串表示结尾。用N+1个字符组数长度可以表示N长度的字符串。 二、 阅读全文
posted @ 2021-04-11 21:02 扶不起的刘阿斗 阅读(84) 评论(0) 推荐(0)