redis总结

一、简介

redis是一个开源的,内存中的数据结构存储系统,主要用于缓存、消息中间件以及数据库等。它支持多种类型的数据,如下:

  • set
  • zset
  • list
  • string
  • hash

二、持久化机制

redis是内存中的存储系统,而内存的特性就是断电数据丢失问题。那么为什么我们重启了操作系统后,再次打开redis,数据依然存在呢?这是因为redis使用了持久化机制,将内存中的数据存储到了磁盘中。持久化机制分别有两种,RDB和AOF

1、RDB(redis database)

是一种快照的方式,定期将内存的数据以快照的形式保存在磁盘中,文件名为dump.rdb

因为RDB保存的是数据的内容,因此在数据数据传输非常的容易,并且恢复的速度也非常的快,非常适合灾难恢复

2、AOF(append only file)

是一种保存更新操作命令的方式,对redis的数据进行更新操作时,redis会采用不同的策略更新AOF文件。

三、缓存带来的问题

1、缓存穿透

缓存穿透,指的是客户端不断访问某个数据库中不存在的数据,服务器向数据库发起连接。客户端如果是恶意的攻击,则可能导致服务器不断向数据库发送请求,导致服务器的数据库压力过大。

解决方案:

①使用布隆过滤器

②缓存null值,这样下一次访问服务器时,服务器可以在缓存中拿到null并返回。此时可以设置失效时间更短,如30秒

2、缓存击穿

缓存击穿,指的某个热点数据,如点赞数,在失效的瞬间,多个请求同时访问。由于缓存的失效,导致多个请求向服务器发起请求,导致的服务器压力过大。

解决方案:

解决方案可以选择使用加锁或者队列的方式。

3、缓存雪崩

缓存雪崩指的是某一个时刻,由于缓存各个数据的失效时间相同,导致缓存在此刻多个数据访问不到,因此发送大量请求向数据库发起连接。

解决方案:

缓存的失效时间加入一个随机数,使得多个数据的失效时间非一致。

你可能感兴趣的:(redis,缓存雪崩,redis,缓存,数据库)