Redis基础知识(一)

redis为什么运行速度快:

redis五中数据类型

简述Redis的数据淘汰机制

redis中持久化方式

缓存穿透、缓存击穿、缓存雪崩区别和解决方案


redis为什么运行速度快:

1、redis是运行在内存当中

2、redis数据结构简单

3、采用了多路复用IO阻塞机制

4、单线程,不用处理上下文的切换。

redis五中数据类型

String 整数,浮点数或者字符串
Set 集合
Zset 有序集合
Hash 散列表
List 列表

简述Redis的数据淘汰机制

volatile-lru 从已设置过期时间的数据集中挑选最近最少使用的数据淘汰

volatile-ttl : 从已设置过期时间的数据集中挑选将要过期的数据淘汰

volatile-random :从已设置过期时间的数据集中任意选择数据淘汰

allkeys-lru:从所有数据集中挑选最近最少使用的数据淘汰

allkeys-random:从所有数据集中任意选择数据进行淘汰

noeviction:禁止驱逐数据

4.0后增加了

  1. volatile-lfu:从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰
  2. allkeys-lfu:当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的key

redis中持久化方式

RDB:是将Reids在内存中的数据库记录定时dump到磁盘上,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

AOF(默认的同步是每秒中同步一次。):以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

RDB的优势:

1、比较容易恢复

2、更容易迁移

3、由于是子进程操作,有利用性能最大化

4、在大数量时,RDB启动效率比AOF高。

缺点:在持久化时宕机,此时部分数据丢失。

AOF优势:

1、该机制可以带来更高的数据安全性,即数据持久性

2、写入采用的append模式,redis-check-aof保证数据的一致性。

3、

AOF的劣势:

1).对于相同数量的数据集而言,AOF文件通常要大于RDB文件,在恢复大数据时RDB更快。

2). 根据同步策略的不同,AOF在运行效率上往往会慢于RDB。总之,每秒同步策略的效率是比较高的,同步禁用策略的效率和RDB一样高效。

RDB的持久化配置:Redis会将数据集的快照dump到dump.rdb文件中

save 900 1              #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。

save 300 10            #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。

save 60 10000        #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

在Redis的配置文件中存在三种同步方式,它们分别是:

appendfsync always     #每次有数据修改发生时都会写入AOF文件。

appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。

appendfsync no          #从不同步。高效但是数据不会被持久化

缓存穿透、缓存击穿、缓存雪崩区别和解决方案

缓存穿透:  缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。

解决方案:

1、增加参数校验

2、从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击

缓存击穿:缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

解决方案:设置热点数据永远不过期。

缓存雪崩: 缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是,        缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

 解决方案

  1. 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。
  2. 如果缓存数据库是分布式部署,将热点数据均匀分布在不同的缓存数据库中。
  3. 设置热点数据永远不过期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值