Hello World
摘要: 1. 概述 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 2. 基本结构 typedef struct dictEntry { void *key; // 键 阅读全文
posted @ 2018-08-27 22:15 小小忧愁米粒大 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Redis通过 MULTI, EXEC / WATCH 等命令来实现事务. 事务提供一种将多个命令请求打包, 然后一次性、按顺序的执行多个命令的机制. 并且在事务执行期间, 服务器不会中断事务而改去执行其他客户端的命令请求, 他将事务中的所有命令执行完毕, 然后才去处理其他客户端的命令请 阅读全文
posted @ 2018-08-27 19:47 小小忧愁米粒大 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。 Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。快照是一次全量备份,AOF 日志是连续的增量备份 阅读全文
posted @ 2018-08-27 18:59 小小忧愁米粒大 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 跳跃表是一种有序的数据结构, 他通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的. 大部分情况下, 跳跃表的效率可以和平衡树相媲美. Redis中只在两处用到了跳跃表, 一个是实现有序集合, 另一个是 集群节点中国用作内部数据结构. 2. 基本结构 typedef 阅读全文
posted @ 2018-08-27 17:04 小小忧愁米粒大 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 1. 基本结构 Redis 早期版本存储 list 列表数据结构使用的是压缩列表 ziplist 和普通的双向链表 linkedlist,也就是元素少时用 ziplist,元素多时用 linkedlist。 // 链表 struct list { listNode *head; listNode * 阅读全文
posted @ 2018-08-27 15:10 小小忧愁米粒大 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 1.概述 压缩列表是一块连续的内存空间,元素之间紧挨着存储,没有任何冗余空间。 Redis 为了节约内存空间使用,zset 和 hash 容器对象在元素个数较少的时候,采用压缩列表 (ziplist) 进行存储。3.2.0版本之前, 当 List 容器对象在元素个数较少的时候,也采用压缩列表 (zi 阅读全文
posted @ 2018-08-27 15:00 小小忧愁米粒大 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 1.String(字符串) 1.1 概述 字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。 String 数据结构是简单的key-value类型,value其实不仅是S 阅读全文
posted @ 2018-08-25 12:29 小小忧愁米粒大 阅读(383) 评论(2) 推荐(0) 编辑
摘要: Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。 在 Redis 里面, C 字符串只会作为 阅读全文
posted @ 2018-08-25 11:02 小小忧愁米粒大 阅读(2167) 评论(0) 推荐(0) 编辑
摘要: 用法: javap 参数 class文件路径 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/公共类和成员 阅读全文
posted @ 2018-08-22 16:41 小小忧愁米粒大 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1. 标记—清除(Mark-Sweep)算法 1. 标记—清除(Mark-Sweep)算法 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 阅读全文
posted @ 2018-08-21 10:32 小小忧愁米粒大 阅读(141) 评论(0) 推荐(0) 编辑
瞅啥瞅,好好看书