什么是 Redis
Redis 是一款开源的缓存数据库,它具有以下特点:
-
读写性能优异(基于内存、IO 的多路复用+单进程)
-
数据类型丰富(k-v,list,set,zset,hash 等数据结构的存储)。
-
Redis 支持数据的备份。
-
数据自动过期。
-
发布订阅。
-
分布式。
基于这样的特点,在查询数据的时候,使用与不使用Redis的流程也是完全不一样的。
首先我们先来看在不使用 Redis 进行查询操作的时候,后端的查询流程是:
-
用户访问页面。
-
请求后端服务。
-
经过逻辑处理后,去数据库查询信息。
在添加 Redis 之后,后端的查询流程是:
-
用户访问页面。
-
请求后端服务。
-
经过逻辑处理后,先去缓存(Redis)中进行查询,如果查到,则直接返回。
-
如果没有查到信息,则直接向数据库进行查询,查询到之后,数据库会讲数据信息同步到缓存(Redis)中,以便下次查询。
Redis 的应用场景
从以上 Redis 的特点我们可以看出,它适宜的应用场景主要包含:
-
读多写少,并发强的场景,比如秒杀,明星热点。
-
有时间性的业务场景,比如短信验证码。
-
对有序集合数据类型排序,例如排行榜(有序集合数据类型)。
-
对于时效性要求不高,但是数据库请求较多的场景,比如计数器、社交网络。
-
Session 会话缓存。
-
消息系统(较少,更多使用专业的消息队列中间件)。
-
单线程的特点可以天然用作分布式锁。(开发关注)