随笔分类 - redis
redis缓存使用总结
摘要:前言 在互联网应用中,缓存成为高并发架构的关键组件。这篇博客主要介绍缓存使用的典型场景、实操案例分析、Redis使用规范及常规Redis监控。 常见缓存对比 常见的缓存方案,有本地缓存,包括HashMap/ConcurrentHashMap、Ehcache、Memcache、Guava Cache等
阅读全文
redis主从同步机制
摘要:和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。 为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。 下图为级联结构。 全量同步Redis全量复制
阅读全文
redis sentinel集群选举机制
摘要:概要 当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线 故障节点客观下线 Sentinel集群选举Leader Sentinel Leader决定新主节点 选举过程 1、主观下线 Sentinel集群的每一个Sentinel节点
阅读全文
redis集群
摘要:数据分区 槽的分配 Redis Cluster采用虚拟槽分区,将所有键使用哈希函数映射到编号为0~16383槽(slot)内,每个节点拥有一部分的槽 → 分布式存储 通过以下方式计算key属于哪一个slot: slot = CRC16(key) % 16384 每个节点只需要维护自己被分配的slot
阅读全文
redis持久化之aof
摘要:1、保存逻辑: 当 AOF 持久化功能处于打开状态时, 服务器在执行完一个写命令之后, 会以协议格式将被执行的写命令追加到服务器状态的 aof_buf 缓冲区的末尾。 服务器配置 appendfsync 选项的值直接决定 AOF 持久化功能的效率和安全性。 当 appendfsync 的值为 alw
阅读全文
redis 持久化之RDB
摘要:在 Redis 运行时, RDB 程序将当前内存中的数据库快照保存到磁盘文件中, 在 Redis 重启动时, RDB 程序可以通过载入 RDB 文件来还原数据库的状态。 RDB 功能最核心的是 rdbSave 和 rdbLoad 两个函数, 前者用于生成 RDB 文件到磁盘, 而后者则用于将 RDB
阅读全文
redis 过期键删除策略
摘要:定时删除 定时删除策略对内存是最友好的: 因为它保证过期键会在第一时间被删除, 过期键所消耗的内存会立即被释放。 这种策略的缺点是, 它对 CPU 时间是最不友好的: 因为删除操作可能会占用大量的 CPU 时间 —— 在内存不紧张、但是 CPU 时间非常紧张的时候 (比如说,进行交集计算或排序的时候
阅读全文
redis-数据库 键过期如何删除
摘要:参考:http://origin.redisbook.com/internal/db.html Redis 有四个命令可以设置键的生存时间(可以存活多久)和过期时间(什么时候到期): EXPIRE 以秒为单位设置键的生存时间; PEXPIRE 以毫秒为单位设置键的生存时间; EXPIREAT 以秒为
阅读全文
redis-aof持久化
摘要:AOF 持久化功能的实现可以分为命令追加(append)、文件写入、文件同步(sync)三个步骤。 命令追加 当 AOF 持久化功能处于打开状态时, 服务器在执行完一个写命令之后, 会以协议格式将被执行的写命令追加到服务器状态的 aof_buf 缓冲区的末尾: struct redisServer
阅读全文
redis-数据库
摘要:参考:http://origin.redisbook.com/ edis 服务器的所有数据库都保存在 redisServer.db 数组中, 而数据库的数量则由 redisServer.dbnum 属性保存。 客户端通过修改目标数据库指针, 让它指向 redisServer.db 数组中的不同元素来
阅读全文
redis数据结构-整数集合
摘要:整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素, 并且这个集合的元素数量不多时, Redis 就会使用整数集合作为集合键的底层实现。 举个例子, 如果我们创建一个只包含五个元素的集合键, 并且集合中的所有元素都是整数值, 那么这个集合键的底层实现就会是整数集合: red
阅读全文
redis数据结构-跳跃表
摘要:跳跃表(skiplist)是一种有序数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的。 跳跃表支持平均 O(\log N) 最坏 O(N) 复杂度的节点查找, 还可以通过顺序性操作来批量处理节点。 在大部分情况下, 跳跃表的效率可以和平衡树相媲美, 并且因为跳跃
阅读全文
redis数据结构-字典
摘要:字典, 又称符号表(symbol table)、关联数组(associative array)或者映射(map), 是一种用于保存键值对(key-value pair)的抽象数据结构。 字典在 Redis 中的应用相当广泛, 比如 Redis 的数据库就是使用字典来作为底层实现的, 对数据库的增、删
阅读全文
redis数据结构-链表
摘要:1、每个链表节点使用一个adlist.h/listNode结构来表示:typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value; } list
阅读全文
redis数据结构-SDS
摘要:参考:http://redisbook.com/preview/sds/different_between_sds_and_c_string.html Redis 只会使用 C 字符串作为字面量, 在大多数情况下, Redis 使用 SDS (Simple Dynamic String,简单动态字符
阅读全文
Redis性能指标监控
摘要:监控指标 性能指标: Performance 内存指标: Memory 基本活动指标:Basic activity 持久性指标: Persistence 错误指标: Error 性能指标:Performance NameDescription latency Redis响应一个请求的时间 insta
阅读全文
浙公网安备 33010602011771号