Redis 切片集群的数据倾斜分析
摘要:Redis 中如何应对数据倾斜 什么是数据倾斜 数据量倾斜 bigkey导致倾斜 Slot分配不均衡导致倾斜 Hash Tag导致倾斜 数据访问倾斜 如何发现 Hot Key Hot Key 如何解决 总结 参考 Redis 中如何应对数据倾斜 什么是数据倾斜 如果 Redis 中的部署,采用的是切
阅读全文
posted @
2022-06-22 08:26
ZhanLi
阅读(1252)
推荐(1) 编辑
Redis 中的事务分析,Redis 中的事务可以满足ACID属性吗?
摘要:Redis 中的事务 什么是事务 1、原子性(Atomicity) 2、一致性(Consistency) 3、隔离性(Isolation) 4、持久性(Durability) 分析下 Redis 中的事务 Redis 中的事务如何使用 Redis 中的事务能够保证那些属性 原子性 1、命令入队就报错
阅读全文
posted @
2022-06-19 17:52
ZhanLi
阅读(455)
推荐(1) 编辑
Redis 中的原子操作(3)-使用Redis实现分布式锁
摘要:Redis 中的分布式锁如何使用 分布式锁的使用场景 使用 Redis 来实现分布式锁 使用 set key value px milliseconds nx 实现 SETNX+Lua 实现 使用 Redlock 实现分布式锁 锁的续租 看看 SETEX 的源码 为什么 Redis 可以用来做分布式
阅读全文
posted @
2022-06-15 09:58
ZhanLi
阅读(1774)
推荐(2) 编辑
Redis 中的原子操作(1)-Redis 中命令的原子性
摘要:Redis 如何应对并发访问 Redis 中处理并发的方案 原子性 Redis 的编程模型 Unix 中的 I/O 模型 thread-based architecture(基于线程的架构) event-driven architecture(事件驱动模型) Reactor 模式 Proactor
阅读全文
posted @
2022-05-27 22:59
ZhanLi
阅读(1209)
推荐(3) 编辑
Redis 中的过期删除策略和内存淘汰机制
摘要:Redis 中 key 的过期删除策略 前言 Redis 中 key 的过期删除策略 1、定时删除 2、惰性删除 3、定期删除 Redis 中过期删除策略 从库是否会脏读主库创建的过期键 内存淘汰机制 内存淘汰触发的最大内存 有哪些内存淘汰策略 内存淘汰算法 LRU LFU 为什么数据删除后内存占用
阅读全文
posted @
2022-04-02 17:07
ZhanLi
阅读(1382)
推荐(1) 编辑
Redis 中的 set 和 sorted set 如何使用,源码实现分析
摘要:set 和 sorted set 前言 set 常见命令 set 的使用场景 看下源码实现 insert dict sorted set 常见的命令 使用场景 分析下源码实现 ZADD ZRANGE 总结 参考 set 和 sorted set 前言 前面在几个文章聊到了 list,string,h
阅读全文
posted @
2022-03-22 10:02
ZhanLi
阅读(624)
推荐(1) 编辑
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列
摘要:使用 Redis 实现消息队列 基于List的消息队列 分析下源码实现 基于 Streams 的消息队列 分析下源码实现 stream 的结构 streamCG 消费者组 streamConsumer 消费者结构 发布订阅 普通的订阅 基于模式(pattern)的发布/订阅 看下源码实现 总结 参考
阅读全文
posted @
2022-03-14 11:13
ZhanLi
阅读(1267)
推荐(2) 编辑
Redis 中 String 类型的内存开销比较大
摘要:使用 String 类型内存开销大 1、简单动态字符串 2、RedisObject 3、全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保存,在选型数据类型我们就需要知道 String 的内存开销是很大的 这里我们来分析下使用一个 Str
阅读全文
posted @
2022-02-23 18:42
ZhanLi
阅读(579)
推荐(1) 编辑
Redis 中常见的集群部署方案
摘要:Redis 的高可用集群 前言 几种常用的集群方案 主从集群模式 全量同步 增量同步 哨兵机制 什么是哨兵机制 如何保证选主的准确性 如何选主 选举主节点的规则 哨兵进行主节点切换 切片集群 Redis Cluster方案 哈希槽重新分配 1、如果数据已经迁移完了 2、数据迁移了一半 Redis C
阅读全文
posted @
2022-02-20 17:56
ZhanLi
阅读(3297)
推荐(4) 编辑
Redis 中如何保证数据的不丢失,Redis 中的持久化是如何进行的
摘要:Redis 中数据的持久化 前言 AOF 持久化 什么是 AOF 持久化 为什么要后记录日志呢 AOF 的潜在风险 AOF 文件的写入和同步 AOF 文件重写机制 AOF 的数据还原 RDB 持久化 什么是 RDB 持久化 RDB 如何做内存快照 快照时发生数据修改 多久做一次快照 过期的键如何持久
阅读全文
posted @
2022-02-09 16:41
ZhanLi
阅读(1371)
推荐(5) 编辑
为什么 Redis 的查询很快, Redis 如何保证查询的高效
摘要:Redis 如何保证高效的查询效率 为什么 Redis 比较快 Redis 中的数据结构 1、简单动态字符串 SDS 对比 c 字符串的优势 SDS可以常数级别获取字符串的长度 杜绝缓冲区溢出 减少修改字符串时带来的内存分配次数 二进制安全 兼容部分C字符串函数 2、链表 3、字典 4、跳表 5、整
阅读全文
posted @
2022-01-24 15:52
ZhanLi
阅读(2332)
推荐(6) 编辑
redis中的分布式锁
摘要:分布式锁的实现场景 在平时的开发中,对于高并发的开发场景,我们不可避免要加锁进行处理,当然redis中也是不可避免的,下面是我总结出来的几种锁的场景 Redis分布式锁方案一 使用Redis实现分布式锁最简单的方案是在获取锁之前先查询一下以该锁为key对应的value存不存在,如果存在,则说明该锁被
阅读全文
posted @
2019-05-04 22:01
ZhanLi
阅读(762)
推荐(0) 编辑
redis中的缓存-缓存雪崩和缓存穿透
摘要:缓存雪崩 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间。所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 1. 碰到这种情况,一般并发量不是特别多的时候,使用最多的解决方案是加锁排队。 2. 加锁排队只是为了减轻数据
阅读全文
posted @
2019-05-01 17:53
ZhanLi
阅读(587)
推荐(0) 编辑
redis中key的过期键删除策略
摘要:Redis过期键删除策略 Redis key过期的方式有三种: 被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key 主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key 当前已用内存超过maxmemory限定时,触发主
阅读全文
posted @
2019-04-20 20:33
ZhanLi
阅读(429)
推荐(0) 编辑
redis的pub/sub命令
摘要:Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 clie
阅读全文
posted @
2019-03-31 18:55
ZhanLi
阅读(3435)
推荐(0) 编辑
go中redis使用小结
摘要:最近做了个关于redis的项目,那么就整理下遇到和未遇到的问题 1、redis的简介安装 2、redis的数据结构 3、Redis基本使用 4、Redis的并发 5、Redis的落地 一、redis的简介安装 一、Redis 是什么 Redis 是一款依据BSD开源协议发行的高性能Key-Value
阅读全文
posted @
2018-08-30 21:09
ZhanLi
阅读(13149)
推荐(0) 编辑