# 什么时候使用Redis缓存

Redis缓存

# 1、Redis是什么?

Redis是什么

Redis (REmote DIctionary Server)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

# 2、为什么要用Redis

为什么

假如系统中有2千万用户信息,用户信息基本固定,一旦录入很少变动,那么你每次加载所有用户信息时,如果都要请求数据库,数据库编译并执行你的查询语句,这样效率就会低下很多,针对这种信息不经常变动并且数据量较大的情况,通常做法,就是把他加入缓存,每次取数前先去判断,如果缓存不为空,那么就从缓存取值,如果为空,再去请求数据库,并将数据加入缓存,这样大大提高系统访问效率

# 3、什么数据可以放缓存

什么数据可以放缓存

  • 不需要实时更新但是又极其消耗数据库的数据。 比如网站上商品销售排行榜,这种数据一天统计一次就可以了,用户不会关注其是否是实时的。
  • 需要实时更新,但是更新频率不高的数据。比如一个用户的订单列表,他肯定希望能够实时看到自己下的订单,但是大部分用户不会频繁下单。
  • 在某个时刻访问量极大而且更新也很频繁的数据。这种数据有一个很典型的例子就是秒杀,在秒杀那一刻,可能有N倍于平时的流量进来,系统压力会很大。但是这种数据使用的缓存不能和普通缓存一样,这种缓存必须保证不丢失,否则会有大问题

# 4、什么数据不能放缓存

什么数据不能放缓存

实际上在一个web站点中,大部分数据都是可以缓存的,反而不能使用缓存的是很小一部分。这类数据包括比如涉及到钱、密钥、业务关键性核心数据等。有一个经验之谈就是,如果在设计web系统的时候,发现大部分数据都不能使用缓存,则说明设计或者架构本身出了问题,此时需要考虑设计的合理性了

上次更新: 2020-10-27 13:57:46