1.redis的使用场景--分布式锁
2. redis常见的面试题
2.1 Redis 的数据类型?
- 字符串类型
- hash类型
- list队列类型
- set集合类型
- sortSet有序集合
2.2使用 Redis 有哪些好处?
- 读写速度块
- 支持的数据类型种类多
- 基于内存计算,而且支持持久化
- 方便搭建集群
2.3 redis的持久化方式有哪些
- RDB: 快照,每隔一段时间进行内存快照存储。 恢复速度块。数据完整性差
- AOF: 日志追加。把每个写操作命令通过write函数记录日志文件中
2.4 redis集群模式有哪些
- 主从模式
- 哨兵模式
- 去中心化模式
2.5Redis 的回收策略(淘汰策略)?
- volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
- volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
- volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
- allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
- allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
- no-enviction(驱逐):禁止驱逐数据
2.6缓存穿透
缓存穿透: 数据库中不存在该数据,缓存中也不存在该数据,这时有人恶意访问该数据。每次请求访问到数据库。
解决方案:
- 存放一个空对象但是这个对象的存放时间不能超过5分钟。
- 使用布隆过滤器【bitmap数组里面只存放二进制数据】
2.7 缓存雪崩
- 1.缓存雪崩: 再某一时刻,出现大面积的数据过期。就在这时大量客户访问过期的数据。压倒数据库。
- 2.解决:
- 设置分散过期时间
- 设置永不过期
2.8redis的使用场景
- 热点数据缓存
- 分布式锁
- 会话的存储