摘要: RDB相关问题 RDB 做快照时会阻塞线程吗? rdb提供两种命令来生成rdb文件,一个是save,一个是bgsave,save会阻塞线程,bgsave不会阻塞,可以通过save 参数一 参数二 设置rdb生成的时机,例如 save 60 1 a56爆大奖在线娱乐在60秒内有修改一次数据,就会生成rdb RDB 在 阅读全文
posted @ 2023-09-12 17:13 xiuer211 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Redis 持久化和aof Redis 如何实现数据不丢失? 有三种方式实行持久化 aof,将执行成功的写命令保存到aof文件中,如果aof文件过大会发生aof重写 rdb,保存内存数据的快照 混合模式,同时使用aof和rdb,提高性能 为什么aof要先执行命令再保存命令 不用检查命令合法,不会阻塞 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Redis 过期删除与内存淘汰 Redis 使用的过期删除策略是什么? redis将有过期时间的key带上过期时间的时间戳保存到一个字典中。 主要分为两大类: 一个是惰性删除,不会主动检查key是否过期,cpu使用到的时候先检查是否过期,过期了删除,没有过期返回 一个是定期删除,会定期检查key是否 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Redis是单线程的吗 工作线程是单线程的,但是后台还有和IO有关、aof刷盘,释放内存,处理关闭文件的线程 为什么Redis采用单线程还是很快 Redis的数据存储在内存中 没有多线程切换导致的性能损耗 IO多路复用机制,可以一个线程处理多个IO Redis 6.0 之前为什么使用单线程? 因为性 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(7) 评论(0) 推荐(0) 编辑
摘要: Redis五种数据类型 String 数据结构:SDS 应用类型:缓存数据,计数,互斥锁 List 数据结构:压缩列表或者双向链表 应用类型:缓存链表或者作为队列 Hash 数据结构:压缩列表或者哈希表 应用类型:缓存对象 Set 数据结构:整型集合或者哈希表 应用类型:缓存集合,例如好友关系 Zs 阅读全文
posted @ 2023-09-12 17:12 xiuer211 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 混合持久化相关问题 为什么会有混合持久化? 为了解决aof和rdb的缺点,混合模式结合了aof和rdb的优点 aof的优点是生成性能高,缺点是恢复时间慢,rdb的优点是恢复时间快,缺点是快照生成的时机不好把握,频率高影响性能,频率低会丢失很多数据。 为了解决aof和rdb的缺点,就有了混合模式。 混 阅读全文
posted @ 2023-09-12 17:11 xiuer211 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 内存淘汰机制,LFU和LRU的比较和优缺点以及实现方式 Redis 内存满了,会发生什么? 如果redis的内存达到了阈值,会发生内存淘汰,阈值通过配置文件的maxmemory设置 Redis 内存淘汰策略有哪些? 大概分为三类 报错 根据有过期时间淘汰 volatile-random,随机淘汰有过 阅读全文
posted @ 2023-09-12 17:11 xiuer211 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 如何避免缓存雪崩、缓存击穿、缓存穿透? 缓存雪崩是指很多key同一时间过期,可以让缓存不过期或者将失效时间打散 缓存击穿是指热点key过期,可以让缓存不过期或者添加互斥锁,这样只有一个线程访问数据库 缓存穿透是指访问在数据库和缓存都不存在的值,可以通过校验参数来限制非法请求,使用布隆过滤器,缓存空值 阅读全文
posted @ 2023-09-12 17:11 xiuer211 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 如何设计一个缓存策略,可以动态缓存热点数据呢? 热点数据动态缓存的策略总体思路:通过数据最新访问时间来做排名,并过滤掉不常访问的数据,只留下经常访问的数据。 以电商平台场景中的例子,现在要求只缓存用户经常访问的 Top 1000 的商品。具体细节如下: 先通过缓存系统做一个排序队列(比如存放 100 阅读全文
posted @ 2023-09-12 17:10 xiuer211 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 说说常见的缓存更新策略? 有cache aside,read/write through ,write back三种 cache aside 对于写操作,先更新数据库,后删除缓存,对于读操作,先访问缓存,有返回,没有查询数据库再保存到缓存中。 适用于读多写少的场景,不适合写多的场景,因为写多会频繁删 阅读全文
posted @ 2023-09-12 17:10 xiuer211 阅读(52) 评论(0) 推荐(0) 编辑