Redis面试题

47 阅读2分钟

redis的基本类型有哪些

string、hash、list、set、sortedset

基本类型对应的使用场景是什么

  • string一般用于缓存商品、用户等相关信息、也可用做计数器使用。
  • hash一般用于存储对象。
  • list是一个双向链表结构,因此插入数据可以从两头插入,一般用做最新数据信息。
  • set存储的是不重复的数据,因此可以用作朋友圈共同好友。
  • sortedset也是存储不重复数据,但是多了一个score评分,一般用于排行榜信息。

redis持久化方式有哪些,以及各自的区别

  • 持久化方式有rdb和aof
  • rdb方式即以快照的方式将数据存储到磁盘中,下次启动时会直接加载磁盘中的数据,aof即记录用户每次用户写的操作命令,下次启动时,会执行这些命令。

缓存穿透、缓存雪崩、缓存击穿如何处理

  • 缓存穿透,即要查询的数据在缓存和数据库中都不存在,所有的请求压力依旧给到了数据库。处理方式是存储空值或布隆过滤器
  • 缓存雪崩,即大量key同一时间段失效,所有请求的压力也是给到了数据库。处理方式是给不同的key设置不同过期时间。
  • 缓存击穿,即热点key失效,导致所有的请求压力给到数据库。处理方式是利用互斥锁构建缓存。

如何保证缓存中的数据和数据库数据的一致性

延迟双删,首先是删除缓存,修改数据库,延迟一段时间后,再删除一次缓存。延迟的目的是删除在删除缓存和更新数据库这段时间内的缓存删除。