Redis[快问快答系列]

💡 原文中文,约7200字,阅读约需18分钟。
📝

内容提要

Redis是一种基于内存的数据库,支持多种数据类型和操作。它采用惰性删除和定期删除策略来处理过期数据,并提供多种内存淘汰策略。Redis还可以用于延迟消息队列和分布式锁。在处理大key时,可以使用scan命令和分批次删除。Redis提供了分布式锁算法Redlock,跳表比平衡树更灵活且实现难度更低。但在集群情况下存在不可靠性。

🎯

关键要点

  • Redis是一种基于内存的数据库,读写速度快,常用于缓存、消息队列和分布式锁等场景。
  • Redis支持多种数据类型,包括字符串、哈希、列表、集合、有序集合等,操作是原子性的。
  • Redis支持事务、持久化、Lua脚本和多种集群方案。
  • Redis与Memcached的主要区别在于数据持久化、集群支持和功能扩展。
  • Redis作为MySQL缓存的优势在于高性能和高并发能力。
  • Redis支持多种数据结构的操作,如计数器、分布式锁和消息队列。
  • 在聚合计算场景中,可以使用从库来避免主库阻塞。
  • Set类型支持交集运算,可用于计算共同关注的好友和公众号。
  • Redis支持抽奖活动的实现,利用Set类型的去重功能。
  • 有序集合可用于排行榜和电话姓名排序等场景。
  • Redis采用单线程模型,避免了多线程竞争和死锁问题。
  • Redis提供多种持久化策略,包括AOF和RDB,支持混合持久化。
  • Redis的内存淘汰策略包括惰性删除和定期删除。
  • Redis支持多种内存淘汰策略,如随机淘汰、LRU和LFU。
  • Redis提供分布式锁的实现,使用Redlock算法来保证可靠性。
  • Redis的跳表比平衡树更灵活,且实现难度更低。
➡️

继续阅读