Redis常见面试题
原创2026/2/7面试题Redis常见面试题约 667 字大约 2 分钟...
1、简述下什么是redis?
答:Redis 是一个基于内存的高性能key-value数据库。
2、Redis五大数据类型是什么
答:String、list、set、zset、hash
3、Redis持久化有几种方式?他们的区别又是什么?
答:RDB持久化(类似于快照功能,定期将内存中的数据快照保存到磁盘)、AOF持久化(近似实时性,记录所有写操作命令)
- _RDB_持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
- _AOF_持久化是以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
4、Redis 为什么单线程还这么快?
答:redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!
5、Redis 的事务机制是什么?
答:Redis 通过 MULTI、EXEC、DISCARD 和 WATCH 命令实现事务:
- MULTI:开启事务。
- EXEC:执行事务中的所有命令。
- DISCARD:取消事务。
- WATCH:监视一个或多个键,如果在事务执行期间这些键被修改,则事务不会执行。
- 注意:Redis 的事务不支持回滚(Rollback)。
6、Redis 的缓存穿透、缓存击穿和缓存雪崩是什么?
答:
缓存穿透:大量请求查询不存在的数据,导致请求直接落到数据库。
解决方案:使用布隆过滤器(Bloom Filter)过滤无效请求。
缓存击穿:热点数据过期后,大量请求同时落到数据库。
解决方案:设置永不过期或使用互斥锁。
缓存雪崩:大量缓存同时过期,导致请求集中落到数据库。
解决方案:设置随机的过期时间。
7、Redis 的持久化文件如何备份?
答:
- 直接备份 RDB 文件(dump.rdb)或 AOF 文件(appendonly.aof)
- 使用 BGSAVE 命令创建 RDB 快照。
- 使用工具如 redis-cli --rdb 导出数据。
