随笔分类 -  Redis

摘要:主从数据不一致 原因 异步复制导致数据不一致,可能是 网络传输延迟 从库处理复杂命令阻塞 措施 保证良好的网络环境 监控从库复制进度 通过INFO replication可以查看主库从库各自写命令的偏移(master_repl_offset及slave_repl_offset),SDK或者中间件组件 阅读全文
posted @ 2023-11-20 16:51 kiper 阅读(89) 评论(0) 推荐(0) 编辑
摘要:Redis命令的原子操作 redis虽然是单线程,但是一个客户端发送的一组命令却不是原子操作。 redis自带的原子操作命令有incr {key}、decr {key}等,但是更为复杂的命令,比如先获取值,然后乘以2,最后置为新值这三步操作,有可能中间会有其他客户端的命令插入导致值已经变化,出现并发 阅读全文
posted @ 2023-11-20 15:57 kiper 阅读(469) 评论(0) 推荐(0) 编辑
摘要:缓存雪崩 大量缓存同时过期,就叫缓存雪崩。 缓存中有大量数据同时过期,导致大量请求缓存缺失 redis实例宕机 措施 设置过期时间时,随机小范围打散 服务降级 缓存命令率下降到警告值或者数据库负载突然增大时,很可能发生了缓存雪崩。 可以通过服务降级措施,来保证核心接口能正常查询数据库。也可以通过熔断 阅读全文
posted @ 2023-11-16 16:19 kiper 阅读(21) 评论(0) 推荐(0) 编辑
摘要:BitSet/HyperLogLog 聚合统计 建议使用Set类型,但是以下命令时间复杂度均为O(N),数据量大时可能会有阻塞问题。 以user:id存储的用户id数据为例。 交集 统计8月4日相对于8月3日留存的用户。 SINTERSTORE user:id:rem user:id:2020080 阅读全文
posted @ 2023-11-10 17:26 kiper 阅读(94) 评论(0) 推荐(0) 编辑
摘要:切片集群 多个 Redis 实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。 Redis Cluster 定义 Redis官方提供的实现切片集群的方案,采用了16384个哈希槽用于处理数据和实例的映射关系。 首先根据key计算哈希槽hash_slot = CRC 阅读全文
posted @ 2023-11-08 17:20 kiper 阅读(30) 评论(0) 推荐(0) 编辑
摘要:主从模式 读写分离,master处理读写命令,slave仅处理读命令。 为什么仅有一个masater能处理读? 这是避免引入加锁、实例间协商是否完成修改等操作。 主从同步方式 通过replicaof {master_ip} 6379去请求RDB文件,同步细节如下。 从库给主库发送 psync 命令, 阅读全文
posted @ 2023-11-04 12:23 kiper 阅读(31) 评论(0) 推荐(0) 编辑
摘要:回放AOF(Append Only File) 用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用。 AOF具体见Redis持久化:AOF日志。 读取RDB(Redis DataBase) 内存数据的全量快照,即把内存数 阅读全文
posted @ 2023-11-03 16:22 kiper 阅读(481) 评论(0) 推荐(1) 编辑
摘要:单线程澄清 Redis的单线程,指的是Redis的键值对读写由一个线程来完成。 Redis的多线程: 持久化 异步删除 集群数据同步 网络IO (Redis6.0引入,5.0及之前都是单线程) 单线程快的原因 内存数据库 Redis完全基于内存,大部分操作都是在内存中完成的。内存操作相比于磁盘操作, 阅读全文
posted @ 2023-10-24 16:56 kiper 阅读(15) 评论(0) 推荐(0) 编辑
摘要:AOF记录内容 传统数据库的日志,例如 redo log(重做日志),记录的是修改后的数据,而 AOF 里记录的是 Redis 收到的每一条命令,这些命令是以文本形式保存的(类似mysql binlog中的statement格式)。 MySQL redo log是物理日志,记录的是某个数据页上做了什 阅读全文
posted @ 2023-03-14 14:55 kiper 阅读(145) 评论(0) 推荐(0) 编辑
摘要:redis快的原因 内存操作 优秀的数据结构 redis数据类型和底层数据结构 底层数据结构 简单动态字符串 双向链表 压缩列表 哈希表 跳表 整数数组 数据类型和底层数据结构映射关系 键和值的组织结构 全局哈希表:保存了所有键值对的映射关系 一个哈希表,其实就是一个数组,数组每个元素称为一个哈希桶 阅读全文
posted @ 2023-03-11 16:23 kiper 阅读(210) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示