声明:本人随意组织的面试语言,仅供参考哈!
一、redis是什么?
答:redis是一款Key-Value缓存数据的组件,支持多种语言缓存数据,支持多种数据类型的存储!
二、redis的作用是什么?
答:用于缓存数据,为数据库或应用减轻压力。
三、为什么要用redis?
缓存的组件有很多,但redis是一款性能极高,单进程单线程支持高并发的组件,并且可以灵活缓存数据,例如设置有效期,持久化更新。
三、redis会出现哪些疑难杂症(面试题会有,但我实际中没用到过)?
答:唯一的缺点,也是大多数缓存数据组件的缺点,如果组件挂掉了,有对缓存数据做更新或插入操作,未持久化到数据库,缓存数据就会丢失。
解决方案:
- RDB持久化,也是默认的持久化方式,RDB就是把数据以快照的方式存储在磁盘上,然后再做save或bgsave的方式持久化,save持久化一般不建议使用,因为执行持久化时,不允许其他命令执行,这当然是不可取的。还有一种是bgsave,Redis进程会fork出一个子线程去执行,阻塞时间短,所以一般用bgsave。
- AOP持久化,就是redis每收到一个写的命令,都会通过write函数追加到文件中,通俗讲就是日志记录。
四、redis用在项目中的哪些地方?
常见:用在存储经常查询的数据,例如存Token,用户信息,系统字典数据,配置数据。
特殊:限流