Redis
目录
Redis使用手册
Reids使用场景
Redis使用问题及解决方案
Redis服务器宕机引起的缓存丢失
缓存穿透
缓存击穿
缓存雪崩
占用内存过多
同类产品对比选型
在大数据量及高并发场景下,关系型数据库会出现查询慢和请求过多导致的不可用问题,此时就可以引入Redis来解决性能、并发及可用的问题。
Redis使用手册
Redis主要有五种基本类型、三种特殊类型,使用方法可直接看官网使用手册
Introduction to Redis – Redis
Reids使用场景
- 热点数据缓存
- 分布式锁
- 排行榜
- 作计数器限流
Redis使用问题及解决方案
-
Redis服务器宕机引起的缓存丢失
-
Redis服务器宕机引起的缓存丢失
通过Redis的RDB或AOF对缓存进行持久化
-
缓存穿透
指不停请求缓存和数据库都不存在的数据,导致数据库压力。
- 可通过设置空value,在缓存层进行拦截
- 可在接口增加校验,在接口层进行拦截
-
缓存击穿
指大量请求缓存不存在的数据,导致大量请求同时到数据库,导致数据库压力。
- 可通过互斥锁限制并发
-
缓存雪崩
指大批数据同时过期,导致大量请求同时到数据库,导致数据库压力。
- 设置缓存过期时间随机,防止同时过期
- 设置热点数据永不过期
-
占用内存过多
服务器的内存是有限制的,当存有大量缓存,导致内存占用过多,此时需要对缓存进行过期。
缓存淘汰策略:
- volatile-lru:从已设置过期时间的数据中挑选最近最少使用的数据淘汰;
- volatile-ttl:从已设置过期时间的数据中挑选将要过期的数据淘汰;
- volatile-random:从已设置过期时间的数据中任意选择数据淘汰;
- allkeys-lru:从数据集中挑选最近最少使用的数据淘汰;
- allkeys-random:从数据集中任意选择数据淘汰;
- no-enviction(驱逐):禁止驱逐数据
同类产品对比选型
| Redis | Memcache | MongoDB | Hbase | Neo4J | |
| 应用场景 | 分布式缓存 | 文档数据库 | 分布式文件系统 | 构建关系图谱 | |
| 优点 | 查找速度快 | 数据结构要求不严格 | 查找速度快,易进行分布式扩展 | 简单利用图结构算法 | |
| 缺点 | 查询性能不高 |



