
Redis
文章平均质量分 81
redis相关学习
Holmes Zhu
互联网新人
展开
-
Redis 用作缓存
参考:极客时间 Redis核心技术与实战 笔记(实践篇 缓存)缓存数据库的不一致问题缓存雪崩、击穿、穿透替换策略缓存满了时候的数据淘汰机制Redis key 过期策略不采用定时删除而是惰性删除 + 定期删除定期删除:Redis默认每个100ms随机抽取进行检查。缺点:如果只采用定期删除策略,会导致很多 key 到时间没有删除。惰性删除:弥补定期删除的问题,也就是说在你获取某个key的时候,Redis会检查一下,这个key如果设置了过期时间那么是否过期了?如果过期了此时就会删除。这里原创 2021-04-10 14:59:04 · 404 阅读 · 0 评论 -
Redis 集群
集群三种模式:主从哨兵Redis Cluster(分片)想进大厂,面试却挂在了Redis集群上…面试官:Redis有哪几种集群方案?原理和优缺点是什么?极客时间 Redis核心技术与实战 笔记(基础篇 集群)...原创 2021-03-20 17:26:45 · 125 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(基础篇 集群)
数据同步Redis 具有高可靠性,又是什么意思呢?其实,这里有两层含义:一是数据尽量少丢失,二是服务尽量少中断。AOF 和 RDB 保证了前者,而对于后者,Redis 的做法就是增加副本冗余量,将一份数据同时保存在多个实例上。即使有一个实例出现了故障,需要过一段时间才能恢复,其他实例也可以对外提供服务,不会影响业务使用。Redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。读操作:主库、从库都可以接收;写操作:首先到主库执行,然后,主库将写操作同步给从库。主从原创 2021-02-27 16:17:36 · 3212 阅读 · 1 评论 -
Redis 学习总结
redis支持哪些数据结构。zset底层实现 跳表复杂度?Redis 的 ZSET 做排行榜时,如果要实现分数相同时按时间顺序排序怎么实现? 说了一个将 score 拆成高 32 位和低 32 位,高 32 位存分数,低 32 位存时间的方法。问还有没有其他方法;string底层实现redis的hash怎么实现的?rehash过程讲一下;扩容机制mq重复消费,丢消息的问题怎么解决?redis的list有哪几种操作?布隆过滤器特点?缓存穿透?redis使用过程中出现过变慢的情况吗?redis k原创 2021-02-27 16:14:37 · 221 阅读 · 0 评论 -
Redis 数据类型和底层数据结构
Redis 五种常见数据类型string底层实现:SDSredis如何存储一个String的。hash底层实现:ziplist和dictlist底层实现:3.2 以前是 ziplist 和 linkedlist,3.2以后是 quicklistset底层实现:intset和dictzset底层实现:ziplist 和 skiplist跳表复杂度? O(logn)Redis 的 ZSET 做排行榜时,如果要实现分数相同时按时间顺序排序怎么实现? 说了一个将 score 拆成高 32原创 2021-02-24 19:17:05 · 239 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(基础篇 AOF和RDB)
AOF日志AOF 日志是如何实现的?数据库的写前日志(Write Ahead Log, WAL):在实际写数据前,先把修改的数据记到日志文件中,以便故障时进行恢复。AOF 日志正好相反,是写后日志:“写后”的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志,如下图所示:传统数据库的日志,例如 redo log(重做日志),记录的是修改后的数据,而 AOF 里记录的是 Redis 收到的每一条命令,这些命令是以文本形式保存的。写后日志两大好处:可以避免出现记录错误命令的情况原创 2021-02-24 18:09:57 · 583 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(实践篇 集群)
Redis主从同步与故障切换,有哪些坑?原创 2021-02-18 17:59:40 · 3595 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(实践篇 锁)
无锁的原子操作:Redis如何应对并发访问?Redis 的两种原子操作方法把多个操作在 Redis 中实现成一个操作,也就是单命令操作;把多个操作写到一个 Lua 脚本中,以原子性方式执行单个 Lua 脚本。如何使用Redis实现分布式锁?基于单个 Redis 节点实现分布式锁Redis 可以用哪些单命令操作实现加锁操作:用 SETNX 和 DEL 命令组合来实现加锁和释放锁操作存在两个潜在的风险:第一个风险是:假如某个客户端在执行了 SETNX 命令、加锁之后,紧接着却在操作共享数据原创 2021-02-17 21:13:01 · 991 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(实践篇 缓存)
旁路缓存:Redis是如何工作的?我们需要解决四个关键问题:Redis 缓存具体是怎么工作的?Redis 缓存如果满了,该怎么办?为什么会有缓存一致性、缓存穿透、缓存雪崩、缓存击穿等异常,该如何应对?Redis 的内存毕竟有限,如果用快速的固态硬盘来保存数据,可以增加缓存的数据量,那么,Redis 缓存可以使用快速固态硬盘吗?缓存的特征从图上可以看到,CPU、内存和磁盘这三层的访问速度从几十 ns 到 100ns,再到几 ms,性能的差异很大。想象一下,如果每次 CPU 处理数据时,都原创 2021-02-17 18:48:00 · 1472 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(实践篇 性能和内存)
异步机制:如何避免单线程模型的阻塞?Redis 实例有哪些阻塞点?客户端:网络 IO,键值对增删改查操作,数据库操作;磁盘:生成 RDB 快照,记录 AOF 日志,AOF 日志重写;主从节点:主库生成、传输 RDB 文件,从库接收 RDB 文件、清空数据库、加载 RDB 文件;切片集群实例:向其他实例传输哈希槽信息,数据迁移。1. 和客户端交互时的阻塞点复杂度高的增删改查操作肯定会阻塞 Redis(1)集合全量查询和聚合操作不同数据类型删除耗时:(2)bigkey 删除操作(3原创 2021-02-17 14:19:57 · 1768 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(实践篇 数据结构)
实践篇“万金油”的String,为什么不好用了?为什么 String 类型内存开销大?当你保存 64 位有符号整数时,String 类型会把它保存为一个 8 字节的 Long 类型整数,这种保存方式通常也叫作 int 编码方式。但是,当你保存的数据中包含字符时,String 类型就会用简单动态字符串(Simple Dynamic String,SDS)结构体来保存,如下图所示:buf:字节数组,保存实际数据。为了表示字节数组的结束,Redis 会自动在数组最后加一个“\0”,这就会额外占用 1原创 2021-02-17 12:12:13 · 1343 阅读 · 0 评论 -
极客时间 Redis核心技术与实战 笔记(基础篇)
Redis 概览Redis 知识全景图Redis 问题画像图基础篇基本架构数据结构数据类型和底层数据结构映射关系全局哈希表链式哈希解决哈希冲突渐进式 rehash不同数据结构查找操作的时间复杂度不同操作的复杂度单元素操作是基础;范围操作非常耗时;统计操作通常高效;例外情况只有几个。第一,单元素操作,是指每一种集合类型对单个数据实现的增删改查操作。例如,Hash 类型的 HGET、HSET 和 HDEL,Set 类型的 SADD、SREM、SRANDMEMBE原创 2021-02-17 10:32:42 · 4053 阅读 · 1 评论 -
Redis持久化
【原创】你的Redis怎么持久化的Redis 中的数据持久化策略(RDB)原创 2020-01-16 21:47:42 · 209 阅读 · 0 评论