Redis-Interview

59 阅读2分钟

如何保证Redis缓存和收数据库一致性

  1. 先更新Redis缓存,再更新数控
  2. 先更新数据库,再更新Redis缓存
  3. 先删除Redis缓存,再更新数据库
  4. 先更新数据库,再删除Redis缓存
  5. 先删除Redis缓存,再更新数据库,再删除Redis缓存(缓存双删)(据说是删得最干净的,但没有看到用过)

关系型数据库与非关系型数据库的区别

Redis客户端类型

客户端特点
jedis
redission

Redis数据类型

类型使用场景
string计数器,点赞
list延时队列
hash
set
sort set排行榜

Redis异常

异常定义解决方式
缓存穿透缓存没有的数据,数据库也没有(如:查询null值,缓存没有,数据库也没有,一直穿过缓存打到数据库1.过滤不合法的入参,2.缓存没有,数据库也没有的值也设置到缓存中,设置一个过期时间,3.使用布隆过滤器
缓存击穿缓存中存在热点数据,当缓存失效时,有大量的请求过来,打到数据库设置热点数据永远有效
缓存雪崩在同一个时间点,存在大量的缓存key失效设置不同的key过期时间

Redis的集群方式

集群方式描述
单机
master-slave
哨兵
cluster

Redis文件保存方式

方式优点
rdb(快照)默认方式,60,300,900秒保存一次,时间间隔比较长,如果在这个间隔中宕机,则数据丢失
aof(文件追加)先写的缓存,再写到磁盘,时间间隔比较短,数据丢失少,

选择那种方式进行持久化

Redis分布式锁

实现方式缺点
setnx
lua脚本
红锁