
redis
文章平均质量分 95
谁动了我的小老弟
这个作者很懒,什么都没留下…
展开
-
11.redis设计与实现学习笔记-Sentinel(哨兵)
15. Sentinel Sentinel(哨兵、哨岗)是Redis 的高可用性的解决方案:有一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。 补充下:在替换了新的主服务器之后,如果...原创 2018-10-09 10:52:01 · 536 阅读 · 0 评论 -
6.redis设计与实现学习笔记-对象补充
补充一、类型检查与命令多态 Redis 中用于操作键的命令可以分为两种类型: 可以对任何类型的键执行 eg:DEL、EXPIRE、RENAME、TYPE、OBJECT等等 只对特定类型的键执行 eg: SET 、 GET 、 APPEND 、 STRLEN 等命令只能对字符串键执行; HDEL 、 HSET 、 HGET 、 HLEN 等命令只能对哈希键执行; RPUSH 、 LPOP ...原创 2018-09-29 21:57:02 · 188 阅读 · 0 评论 -
17.redis设计与实现学习笔记-二进制位数组-- -非自写
21. 二进制位数组原创 2019-01-02 15:27:42 · 164 阅读 · 0 评论 -
16. redis设计与实现学习笔记-排序(sort) - 非自写
20. 排序 (sort)原创 2019-01-02 15:28:11 · 170 阅读 · 0 评论 -
7.redis设计与实现学习笔记-数据库&RDB持久化
8. 数据库 8.1. 介绍下这个数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库: struct redisServer{ // ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; ...原创 2018-09-29 12:32:00 · 349 阅读 · 0 评论 -
13. redis设计与实现学习笔记-发布与订阅
文章目录17. 发布与订阅17.1. 频道的订阅和退订17.1.1. 订阅频道17.1.2. 退订频道17.2. 模式的订阅与退订17.2.1. 订阅模式17.2.2. 退订模式17.3. 发送消息17.3.1. 将消息发送给频道订阅者17.3.2. 将消息发送给模式订阅者17.4. 查看订阅信息 17. 发布与订阅 17.1. 频道的订阅和退订 客户端可以通过 SUBSCRIBE 命令订阅某个或...原创 2019-01-02 15:27:19 · 195 阅读 · 0 评论 -
10.redis设计与实现学习笔记-复制
文章目录14. 复制14.1. 旧版复制功能的实现14.1.1. 同步14.1.2. 命令传播14.2. 旧版复制功能的缺陷14.3. 新版复制功能的实现14.4. 部分重同步的实现14.4.1. 复制偏移量14.4.2. 复制积压缓冲区14.4.3. 服务器运行ID14.5. `PSYNC` 命令的实现14.6. 复制的实现14.6.1. 步骤1:设置主服务器的地址和端口14.6.2. 步骤2:...原创 2018-10-06 17:20:08 · 321 阅读 · 0 评论 -
12.redis设计与实现学习笔记-集群
文章目录16. 集群16.1. 节点16.1.1. 启动节点16.1.2. 集群数据结构16.2. 槽指派16.2.1. 记录节点的槽指派信息16.2.2. 传播节点的槽指派信息16.2.3. 记录集群所有槽的指派信息16.2.4. `CLUSTER ADDSLOTS` 命令的实现16.3. 在集群中执行命令16.3.1. 计算键属于哪个槽17.3.2. 判断槽是否由当前节点17.3.3. `MO...原创 2018-10-12 15:47:43 · 554 阅读 · 0 评论 -
9.redis设计与实现学习笔记-客户端&服务器
文章目录12. 客户端12.1. 客户端属性12.1.1. 套接字描述12.1.2. 名字12.1.3. 标志12.1.4. 输入缓冲区12.1.5. 命令和命令参数12.1.6. 命令的实现函数12.1.7. 输出缓冲区12.1.8. 身份验证12.1.9. 时间12.2. 客户端的创建和关闭12.2.1. 创建普通客户端12.2.2. 关闭普通客户端12.2.3. Lua脚本的伪客户端12.2...原创 2018-10-04 16:41:11 · 311 阅读 · 0 评论 -
8.redis设计与实现学习笔记-AOF持久化&事件
文章目录10. AOF持久化10.1. AOF持久化的实现10.1.1. 命令追加10.1.2. AOF文件的写入和同步文件的写入和同步10.2. AOF文件的载入和数据还原10.3. AOF重写10.3.1. 实现AOF文件重写10.3.2. AOF 后台重写11. 事件11.1. 文件事件11.1.1. 文件事件处理器的构成1. 套接字2. I/O多路复用程序3. 文件事件分派器4. 事件处理...原创 2018-10-01 11:43:48 · 333 阅读 · 0 评论 -
4. redis设计与实现学习笔记-跳跃表(skiplist)&整数集合
文章目录4. 跳跃表(skiplist)4. 1 . 如何实现跳跃表?4.1.1. 跳跃表节点(redis.h/zskiplistNode)4..1.2. 跳跃表(redis.h/zskiplist)4.2. 跳跃表API5. 整数集合5.1. 如何实现整数集合?5.2. 升级5.2.1. 如何升级?5.2.2. 升级的好处5.3. 整数集合API 4. 跳跃表(skiplist) 跳跃表是一种有...原创 2018-09-17 21:04:26 · 230 阅读 · 0 评论 -
5.redis设计与实现学习笔记-压缩列表&对象
6. 压缩列表 6.1. 什么时候会用到压缩列表? 当一个列表键包含少量的列表项,并且每个列表项要么是小整数值,要么是长度短的字符串,Redis就会采用压缩列表来做列表键的底层实现。 6.2. 为甚要用到压缩列表以及压缩列表是怎么构成的? 6.2.1. 压缩列表的作用 在一定程度上节约内存。 6.2.2. 压缩列表的构成 压缩列表是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以...原创 2018-09-17 21:01:58 · 376 阅读 · 0 评论 -
3.redis设计与实现学习笔记-字典
3. 字典 3.1. 字典的概念 字典,又名符号表、关联数组或映射,是用来保存键值对的抽象数据结构。字典中的键唯一,且可以根据键对其与之关联的值进行改查删操作等,也可以根据键来删除整个键值对。 3.2. 字典的应用 作为Redis数据库的底层,对数据库增删改查是在字典的基础上进行的。 是哈希键底层的实现之一 ….还有很多 3.3. 字典的实现 3.3.1. 哈希表 字...原创 2018-09-05 17:40:20 · 157 阅读 · 0 评论 -
2.redis设计与实现学习笔记-简单动态字符串&链表
1. 简单字符串 1.1. 简介 redis中没有C语言中的传统字符串,而是自己构建了一个简单动态字符串(SDS)。在redis中,C字符串只是字符串字面量用于无须修改的字符串。可修改的就要使用到SDS了。 1.2. SDS sds.h/sdshdr结构: struct sdshdr{ // 记录buf数组中已使用字节的数量 // 等于SDS所保存字符串的长度...原创 2018-09-04 18:36:43 · 247 阅读 · 0 评论 -
1.redis学习-安装redis
Linux下安装Redis完整步骤: 1. 获取Redis wget http://download.redis.io/releases/redis-4.0.11.tar.gz 最新版本自己去找一下,然后改下版本号应该就可以了。 2. 解压 tar -xzvf redis-4.0.11.tar.gz 3. 安装 cd redis-4.0.11 make cd src ...原创 2018-09-04 18:11:16 · 125 阅读 · 0 评论 -
14. redis设计与实现学习笔记-事务
文章目录18. 事务18.1. 事务的实现18.1.1. 事务开始18.1.2. 命令入队18.1.3. 事务队列18.1.4. 执行事务18.2. `WATCH` 命令的实现18.2.1. 使用 `WATCH` 命令监视数据库键18.2.2. 监视机制的触发18.2.3. 判断事务是否安全18.3. 事务的ACID性质 18. 事务 Redis 是通过 MULTI、EXEC、WATCH等命令来实...原创 2019-01-02 15:26:59 · 182 阅读 · 0 评论