
Redis
bingshanzhu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis的链表实现
链表节点定义typedef struct listNode { struct listNode *prev;//前置节点 struct listNode *next;//后置节点 void *value;//节点值}listNode;链表定义typedef struct list { listNode *head;//表头节点 listNode *tail;//表尾节点 un...原创 2019-03-20 15:04:20 · 200 阅读 · 0 评论 -
Redis的字典实现
字典概念键值对:键和值进行关联,这些关联的键和值就是键值对字典:又称符号表、关联数组、映射,是一种用于保存键值对的抽象数据结构哈希表节点定义typedef struct dictEntry { void *key;//键 union{ void *val; uint64 _tu64; int64 _ts64; }v;//值 struct dictEntry *next;...原创 2019-03-20 20:32:56 · 306 阅读 · 0 评论 -
Redis的SDS类型
SDS(simple dynamic string)由Redis构建的简单动态字符串抽象类型一般c字符串用于字符串字面值,SDS类型用于底层操作SDS结构定义:struct sdshdr { int len;//保存字符串长度,不计空字符 int free;//预留空间 char buf[];//字节数组,存储字符串遵循c以空字符结尾的惯例};SDS为减少内存重分配次数,采用如下...原创 2019-03-18 20:17:44 · 664 阅读 · 0 评论 -
Redis的跳跃表
跳跃表节点typedef struct zskiplistNode { struct zskiplistLevel { struct zskiplistNode *forward;//前进指针 unsigned int span;//跨度 用来计算排位 } level[];//层(层高1~32随机,一般层数量越多,访问其他节点速度越快) struct zskiplistNode *...原创 2019-04-12 17:36:05 · 207 阅读 · 0 评论 -
Redis的整数集合
整数集合是集合键的底层实现之一,是Redis用于保存整数值的集合抽象数据结构,可以保存的类型为int16_t、int32_t、int64_t,并保证集合中不会出现重复元素整数集合typedef struct intset { uint32_t encoding;//编码方式 INTSET_ENC_INT16 contents均为int16_t整数值;INTSET_ENC_INT32 cont...原创 2019-04-17 19:33:04 · 381 阅读 · 0 评论 -
Redis的压缩列表
压缩列表是列表键和哈希键的底层实现之一,为了优化数据存储,节约内存,在列表、字典(哈希键)和有序集合的底层实现了使用压缩列表这一优化方案,当列表键只包含少量列表项,且列表项是小整数值、比较短的字符串,就使用压缩列表实现。压缩列表构成压缩列表是Redis为了节约内存开发的,由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或一个整数值...原创 2019-04-17 21:06:42 · 802 阅读 · 0 评论 -
Redis的对象
Redis基于所用到的主要数据结构创建了一个对象系统,包含字符串对象,列表对象,哈希对象,集合对象和有序集合对象。根据对象的类型可以判断一个对象是否可以执行给定的命令,也可针对不同的使用场景,对象设置有多种不同的数据结构实现,从而优化对象在不同场景下的使用效率。对象的类型与编码Redis中的每个对象都是由如下结构表示(列出了与保存数据有关的三个属性)typedef struct redisO...原创 2019-04-23 21:18:40 · 208 阅读 · 0 评论 -
Redis是单线程的为什么这么快(转)
转自 https://blog.youkuaiyun.com/xlgen157387/article/details/79470556转载 2019-07-18 14:00:57 · 268 阅读 · 0 评论 -
MySQL MongoDB Redis 数据库之间的区别
转自 https://blog.youkuaiyun.com/CatStarXcode/article/details/79513425MongoDB它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但 MongoDB 并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性...转载 2019-07-18 14:15:52 · 234 阅读 · 0 评论