redis
文章平均质量分 95
谁动了我的小老弟
这个作者很懒,什么都没留下…
展开
-
11.redis设计与实现学习笔记-Sentinel(哨兵)
15. SentinelSentinel(哨兵、哨岗)是Redis 的高可用性的解决方案:有一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。补充下:在替换了新的主服务器之后,如果...原创 2018-10-09 10:52:01 · 513 阅读 · 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 · 167 阅读 · 0 评论 -
17.redis设计与实现学习笔记-二进制位数组-- -非自写
21. 二进制位数组原创 2019-01-02 15:27:42 · 134 阅读 · 0 评论 -
16. redis设计与实现学习笔记-排序(sort) - 非自写
20. 排序 (sort)原创 2019-01-02 15:28:11 · 152 阅读 · 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 · 314 阅读 · 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 · 178 阅读 · 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 · 296 阅读 · 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 · 524 阅读 · 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 · 284 阅读 · 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 · 309 阅读 · 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. 整数集合API4. 跳跃表(skiplist)跳跃表是一种有...原创 2018-09-17 21:04:26 · 204 阅读 · 0 评论 -
5.redis设计与实现学习笔记-压缩列表&对象
6. 压缩列表6.1. 什么时候会用到压缩列表?当一个列表键包含少量的列表项,并且每个列表项要么是小整数值,要么是长度短的字符串,Redis就会采用压缩列表来做列表键的底层实现。6.2. 为甚要用到压缩列表以及压缩列表是怎么构成的?6.2.1. 压缩列表的作用在一定程度上节约内存。6.2.2. 压缩列表的构成压缩列表是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以...原创 2018-09-17 21:01:58 · 345 阅读 · 0 评论 -
3.redis设计与实现学习笔记-字典
3. 字典3.1. 字典的概念字典,又名符号表、关联数组或映射,是用来保存键值对的抽象数据结构。字典中的键唯一,且可以根据键对其与之关联的值进行改查删操作等,也可以根据键来删除整个键值对。3.2. 字典的应用作为Redis数据库的底层,对数据库增删改查是在字典的基础上进行的。是哈希键底层的实现之一….还有很多3.3. 字典的实现3.3.1. 哈希表字...原创 2018-09-05 17:40:20 · 140 阅读 · 0 评论 -
2.redis设计与实现学习笔记-简单动态字符串&链表
1. 简单字符串1.1. 简介redis中没有C语言中的传统字符串,而是自己构建了一个简单动态字符串(SDS)。在redis中,C字符串只是字符串字面量用于无须修改的字符串。可修改的就要使用到SDS了。1.2. SDSsds.h/sdshdr结构:struct sdshdr{ // 记录buf数组中已使用字节的数量 // 等于SDS所保存字符串的长度...原创 2018-09-04 18:36:43 · 220 阅读 · 0 评论 -
1.redis学习-安装redis
Linux下安装Redis完整步骤:1. 获取Rediswget http://download.redis.io/releases/redis-4.0.11.tar.gz最新版本自己去找一下,然后改下版本号应该就可以了。2. 解压tar -xzvf redis-4.0.11.tar.gz3. 安装cd redis-4.0.11makecd src...原创 2018-09-04 18:11:16 · 101 阅读 · 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 · 163 阅读 · 0 评论