技术文章收录之 Redis
1. 什么是 Redis?
Redis 是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存和存储需求。同时 Redis 的诸多高级功能使其可以胜任消息队列、任务队列等不同的角色。除此之外,Redis 还支持外部模块扩展,使其在某些场景下可以作为主数据库使用。
2. Redis 基础数据类型
键值类型:字符串、哈希、列表(list)、集合(set)、有序集合(sorted set)、流类型。以及底层数据结构
集合:哈希表
有序集合:哈希表和跳表
一个键最大存储
原子操作
字符串类型、二进制操作
2. Redis 事务机制
- Redis 事务及其相关命令:MULTI、EXEC、WATCH、UNWATCH、DISCARD
- WATCH 命令及其原理
- Redis 事务不支持回滚的原因
- Redis 事务执行失败的三种场景:语法错误、执行期间错误、WATCH 命令乐观锁
3. Redis 持久化
- Redis 两种持久化方式的原理:RDB 和 AOF
- RDB 的工作机制、触发方式。如何 fork 子线程进行内存 dump 操作?
- AOF 的工作机制、触发方式。
- AOF 的重写机制
- 两种持久化方式的优缺点,以及如何选择持久化方式?
- Redis 的持久化的数据恢复流程。
4. Redis 内存淘汰策略
-
什么是 Redis 内存淘汰策略?
-
Redis 的 8 种内存策略:noeviction、allkeys-lru、allkeys-lfu、allkeys-random、volatile-lru、volatile-random、volatile-lfu、volatile-ttl
-
LRU 在 Redis 中的实现
-
Redis 的内存失效策略:主动删除、定期删除、定期扫描删除
5. Redis 集群
哨兵机制
6. 高级问题
- 缓存一致性如何保障?三种缓存更新策略:旁路缓存、读写穿透、异步缓存写入
- 美团二面:Redis与MySQL双写一致性如何保证?
- 缓存穿透、缓存雪崩
- 限流
- 任务队列、消息队列、阻塞队列
- 布隆过滤器
- Redis 实现分布式锁
- Redisson 看门狗续锁实现分布式锁的原理,及如何避坑

浙公网安备 33010602011771号