Redis面试总结
一、Redis介绍 C语言开发的高性能k-v缓存中间件,支持string、set、sorted set、list、hash数据结构。 二、Redis优势 大部分操作都是纯内存操作,速度非常快 数据结构简单,操作方便 单线程,避免了频繁的上下文切换和竞争 多路IO复用模型,非阻塞IO 三、应用场景 计数器、常用缓存、回话缓存、消息队列(lpush、rpop)、分布式锁 四、Redis持久化 两种模式都开启的情况下,重启会优先选择AOF恢复。 RDB(默认):按照一定时间,将内存数据以快照形式保存到硬盘中 优点:只有一个文件,方便持久化;fork子线程来进行持久化,保证了高性能;大数据集时启动比AOF快。 缺点:安全性低、每隔一段时间进行持久化,若持久化过程中出现故障,会导致数据丢失,适合对数据严谨要求不高的场合。 AOF:Redis将每次写命令记录到单独的日志文件中,当重启Redis会从日志文件的命令执行一遍恢复数据 优点:安全性高,每一个写操作都会记录到aof文件中,即使备份过程中出现故障,也可通过redis-check-aof工具修复。aof文件过大时可以进行重写合并一些操作命令。 缺点:比RDB文件大,恢复效率低 五、key删除策略 定时删除+惰性删除 定时删除:定期扫描随机获取一些key,如果过期进行删除。 惰性删除:在访问的时候,发现key已经过期,再删除。 六