文章目录
- 1. Redis应用场景有哪些?
- 2. Redis怎么实现消息队列?
- 3. Memcached和Redis的区别?
- 4. Redis 数据类型有哪些?
- 5. Redis持久化机制
- 6. 持久化机制的区别?
- 7. 过期键的删除策略
- 8. Redis的内存淘汰机制是什么样的?
- 9. 缓存雪崩
- 10. 缓存击穿
- 11. 缓存穿透
- 12. Redis的主从复制模式
- 13. Redis哨兵模式
- 14. 限流算法
- 15. Redis分布式锁?
- 16. Redis优点
- 17. Redis缺点
- 18. Redis为什么这么快?
- 19. Redis为何选择单线程
- 20. keys命令存在的问题?
- 21. SortedSet和List异同点?
1. Redis应用场景有哪些?
- 缓存热点数据,缓解数据库的压力。
- 利用 Redis 原子性的自增操作,可以实现计数器的功能,比如统计用户点赞数、用户访问数等。
- 简单的消息队列,可以使用Redis自身的发布/订阅模式或者List来实现简单的消息队列,实现异步操作。
- 限速器,可用于限制某个用户访问某个接口的频率,比如秒杀场景用于防止用户快速点击带来不必要的压力。
- 好友关系,利用集合的一些命令,比如交集、并集、差集等,实现共同好友、共同爱好之类的功能。
2. Redis怎么实现消息队列?
- 使用列表,让生产者将任务使用LPUSH命令放进列表,消费者不断用RPOP从列表中取出任务。
- 发布订阅模式。类似于MQ的主题模式,只能消费订阅之后发布的消息,一个消息可以被多个订阅者消费。
- 延时队列,使用SortedSet拿时间戳作为score,消息内容作为key,调用来生产消息,消费者用zrangebyscore指令获取N秒之前的数据进行轮询进行处理。
3. Memcached和Redis的区别?
- MemCached 数据结构单一,仅用来缓存数据,而 Redis 支持多种数据类型。
- MemCached 不支持数据持久化,重启后数据会消失。Redis 支持数据持久化。
- R