
redis
文章平均质量分 92
百里行者
行百里者半九十
展开
-
Redis深入之路(十四)
排序 Redis 的 SORT 命令可以对,列表键,集合键,有序集合键进行排序升序,降序redis> rpush ints 3 5 4 2 1(integers) 5// 默认按照数字大小进行升序排序redis> sort ints"1" "2" "3" "4" "5"// 使用降序排序redis> sort ints desc"5" "4" "3" "2" "1"alpha 选项原创 2016-08-27 17:37:34 · 749 阅读 · 0 评论 -
Redis深入之路(二)
链表链表节点每个链表节点使用一个adlist.h/listNode结构表示typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;}listNode;多个listNode可以通过prev和next原创 2016-08-13 20:48:08 · 575 阅读 · 0 评论 -
Redis深入之路(一)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-08-13 18:05:10 · 675 阅读 · 0 评论 -
Redis深入之路(五)
整数集合(intset) 整数集合是集合键的底层实现之一,当一个集合中只包含整数值元素,并且集合元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。实现整数集合是Redis用于保存整数值的集合抽象数据结构,可以保存类型为 int16_t、int32_t、int64_t 的整数值,并且保证集合中不会出现重复元素。intset.h/intsettypedef struct intset原创 2016-08-14 14:45:58 · 475 阅读 · 0 评论 -
Redis深入之路(四)
跳跃表(Skip List) 跳跃表,是一种有序数据结构,通过在每个节点中保存多个指向其他节点的指针,从而达到快速访问节点的目的。在Redis中的应用:作为有序集合的底层实现。在集群节点中用作内部数据结构。跳跃表节点redis.h/zskiplistNodetypedef struct zskiplistNode { // 后退指针 struct zskiplistNode原创 2016-08-14 12:11:27 · 418 阅读 · 0 评论 -
Redis深入之路(三)
字典又称关联数组(associative array),映射(map),符号表(symbol table) Redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,每个哈希表节点保存了字典中的一个键值对。哈希表节点dict.h/dictEntrytypedef struct dictEntry { // 键 void *key; // 值 unio原创 2016-08-13 22:06:11 · 520 阅读 · 0 评论 -
Redis深入之路(十二)
Redis 服务端 Redis 服务端通过负责和多个客户端建立网络连接,并处理客户端发送来的命令请求,在数据库中保存命令执行结果,通过自检系统提供稳定服务。初始化 Redis 服务端对外服务,需要经过一系列的初始化过程,包括:声明全局Server、加载配置、初始化数据结构声明全局Serverredis.c/* Global vars */struct redisServer serve原创 2016-08-21 10:57:29 · 590 阅读 · 0 评论 -
Redis深入之路(十一)
事件 Redis 基于 Reactor 模式开发了自己的网络时间处理器:文件事件处理器(File Event Handler) 文件事件处理器基于 I/O 多路复用(multiplexing)程序来同时监听多个套接字(Socket),并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(writ原创 2016-08-20 22:40:32 · 521 阅读 · 0 评论 -
Redis深入之路(十)
AOF(Append Only File) 对比 RDB: RDB 通过保存当前数据库中 键值对数据 实现持久化。 AOF 通过保存服务器执行的 写命令 实现持久化。 AOF 持久化功能,分为:命令追加、文件写入、文件同步。AOF 命令追加 当 AOF 功能打开时,服务器执行写命令之后,将命令按照一定的协议格式添加到 redisServer 结构的 aof_buf原创 2016-08-20 18:28:08 · 834 阅读 · 0 评论 -
Redis深入之路(九)
RDB Redis 实现数据持久化的方式之一。创建 RDB 文件创建 RDB 文件的两个命令:save,bgsaveredis> save // 阻塞服务器主进程,直到 save 命令执行完成OKredis> bgsave // 服务器派生子进程来完成 rdb 文件的创建,不会阻塞服务器主进程载入 RDB 文件服务器启动是自动载入如果服务器开启 AOF 功能,服务器将使用 AOF 来还原创 2016-08-20 17:57:55 · 384 阅读 · 0 评论 -
Redis深入之路(八)
数据库 Redis 所有的数据库都保存在服务器结构的 db 数组中。redis.h/redisServertypedef struct redisDb { // ... // 数据库键值对字典 dict *dict; // ...} redisDb;struct redisServer { // ... // 数据库数组,保存着服务器所有的数据原创 2016-08-20 16:43:39 · 456 阅读 · 0 评论 -
Redis深入之路(七)
对象 前面一到六节介绍了 Redis 基本数据结构,但是在 Redis 世界中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,包括:字符串对象、列表对象、哈希对象、结合对象和有序集合对象。 Notice: Redis 中每种数据对象至少用到一种基本数据类型。优化对象在不同场景中的使用效率。源码typedef struct redisObject {原创 2016-08-19 22:31:54 · 1039 阅读 · 0 评论 -
Redis深入之路(十六)
慢查询日志 慢查询日志功能用于记录执行时间超过给定时间的命令,帮助用户监视和优化查询速度。// slowlogEntry 慢查询日志记录结构typedef struct slowlogEntry { // 日志唯一标识符 ID long long id; // 命令执行的时间,UNIX 时间戳 time_t time; // 命令执行所消耗的时间,单原创 2016-08-28 07:56:30 · 1042 阅读 · 0 评论 -
Redis深入之路(六)
压缩列表 压缩列表是Redis为了节约内存开发的,由一系列特殊编码的连续内存块组成的顺序型数据结构。压缩列表节点结构| previous_entry_length | encoding | content | previous_entry_length:记录前一个压缩类表节点的长度。 encoding:记录节点 content 属性所保存的数据类型及长度。 content:保原创 2016-08-14 18:18:59 · 440 阅读 · 0 评论