
redis
文章平均质量分 80
我在阳澄湖畔吃炸鸡
这个作者很懒,什么都没留下…
展开
-
Redis学习(十)——db.c
文章目录1.lookupKey2.lookupKeyRead3.lookupKeyReadOrReply4.addReply5.addReplyErrorFormat6.dbRandomKey7.dbUnshareStringValue8.emptyDb9.selectDb10.flushdbCommand11.flushallCommand12.delCommand13.keysCommand14.scanGenericCommand15.moveCommand16.expireIfNeeded17.ex原创 2021-06-29 20:50:37 · 341 阅读 · 0 评论 -
Redis学习(九)——数据库
文章目录一、数据库的结构二、有关数据库的操作1.键空间的操作2.键的生存时间或过期时间3.过期键的删除4.AOF、RDB对过期键的处理4.复制一、数据库的结构数据库的数据结构如下typedef struct redisDb { // 数据库键空间 dict *dict; // 键的过期时间,字典的键为键,字典的值为过期事件 UNIX 时间戳 dict *expires; // 正处于阻塞状态的键原创 2021-06-28 21:03:45 · 152 阅读 · 0 评论 -
Redis学习(七)——对象
文章目录一、对象二、字符串对象三、列表对象四、哈希对象五、集合对象六、有序集合对象一、对象前面学习了SDS、双端列表,字典,压缩列表,整数集合等。但是Redis并没有直接使用这些数据结构来实现键值对数据库,而是使用这些数据结构来创建一个对象系统,这个系统包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象。通过这五种不同类型的对象,redis在执行命令前,根据对象的类型来判断一下对象是否可以执行给定的命令,另一个好处是我们可以通过不同的场合从而设置多种不同的数据结构实现,从而优化对象在不同场景的原创 2021-06-24 16:20:17 · 160 阅读 · 0 评论 -
Redis学习(六)——压缩列表
文章目录一、压缩列表一、压缩列表压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含列表项,并且每个列表要么就是长度较短的字符串,要么就是小整数值,那么redis就会使用压缩列表作为列表键的底层实现。压缩列表是redis为了节约而开发的,是一系列由特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点包含一个字节数组或者一个整数值。压缩列表的布局<zlbytes><zltail><zllen><entry原创 2021-06-23 22:45:18 · 2287 阅读 · 0 评论 -
Redis学习(五)——整数集合
文章目录一、整数集合1.介绍2.升级三、API四、源码1.intsetNew2.intsetAdd3.intsetRemove4.intsetFind5.intsetRandom6.intsetGet一、整数集合1.介绍整数集合是集合键的底层实现之一,当一个集合只包含整数元素,并且这个集合的元素不多时,redis就会使用整数集合作为集合键的底层实现。整数集合用于保存整数值的集合抽象数据结构,它可以保存 类型为int16_t、int32_或者int64_t的整数值,并且保证集合中不会出现重复元素。它原创 2021-06-23 13:38:08 · 197 阅读 · 0 评论 -
Redis学习(四) —— 跳跃表
文章目录一、跳跃表二、 跳跃表API三、API的源码1.zslCreate2.zslFree3.zslInsert4.zslDelete5.zslFirstInRange6.zslLastInRange7.zslGetRank一、跳跃表跳跃表(skiplist) 是一种有序数据结构,它通过在每个节点中维持多个指向其它 节点的指针,从而达到快速访问节点的目的,其结构如下:typedef struct zskiplistNode { // 成员对象 robj *obj; //原创 2021-06-22 20:25:30 · 107 阅读 · 0 评论 -
Redis学习(三)——字典
文章目录一、字典1.字典的结构二、哈希算法和rehash三、字典的API四、源码1.dicCreate2.dicExpand3.dicRehash4.dicAddRaw5.dictReplace6.dictReplaceRaw7.dictGenericDelete8.dictRelease9.dictFind10.dictFetchValue11.dictResize12.dicGetIterator13.dictGetSafeIterator14. dictNext15.dictReleaseIterat原创 2021-06-22 14:59:15 · 216 阅读 · 0 评论 -
Redis学习(二)——链表
文章目录一、链表的结构二、链表的API三、链表api源码1.listCreate2.listRelease3.listAddNodeHead4.listAddNodeTail5.listInsertNode6.listDelNode7.listGetIterator8.listReleaseItertor9.listRewind10.listRewindTail11.listNext12.listDup13.listSearchKey14.listIndex15.listRotate一、链表的结构typ原创 2021-06-20 17:49:34 · 295 阅读 · 0 评论 -
Redis学习(1)-SDS
文章目录前言一、SDS的定义二、区别及优点三、SDS的API以及源码1.sdsnewlen2.sdsnew3.sdsempty4.sdslen前言一、SDS的定义Redis没有直接使用C语言传统的字符串表示(以下简称字符串),使用的是一种叫简单动态字符串(simple dynamic string)的类型。sds.h/sdshdr结构表示SDS值如下struct sdshdr { // buf 中已使用的长度 int len; // buf 中剩余可用空间的长原创 2021-06-19 20:38:27 · 259 阅读 · 0 评论