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的跳表比平衡树更灵活,且实现难度更低。
🏷️