Redis 持久化机制及内存优化策略

持久化机制

Redis中的运行环境在内存中, 但是内存特点 断电即擦除.
想法:能否保存redis中的内存数据不丢失呢?
持久化: 将内存数据定期保存到磁盘中.

RDB模式

1 关于RDB模式说明

1.Redis 定期 将内存数据保存到RDB文件中.
2.RDB模式 redis默认的规则.
3.RDB模式记录的是内存数据的快照 ,持久化效率更高(只保留最新数据)
4.RDB模式由于定期持久化,可能导致数据丢失.

2 RDB命令

1: 持久化操作 save 同步操作 可能其他线程陷入阻塞
2: 后端持久化 bgsave 异步操作 用户操作不会陷入阻塞 该操作什么时候完成不清楚.

3 RDB模式配置

在redis目录下输入vim redis.conf对redis.conf进行配置
在这里插入图片描述
RDB默认开启
save 900 1 900秒内用户更新1次 则持久化1次
save 300 10 300秒内用户更新10次 持久化 1次
save 60 10000 60秒内用户更新10000次 持久化1次
优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能
缺点:RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候

如果想让持久化性能更优,则需要通过监控的手段灵活运用.
用户操作越频繁,则持久化周期越短.

AOF模式

1 开启AOF模式
默认条件下AOF模式 默认关闭的.
在redis目录下输入vim redis.conf对redis.conf进行配置
在此页面输入":set nu"显示行数
输入":/appendonly"查找appendonly
将appendonly后面的no改为yes打开AOF模式
重启redis服务生效
在这里插入图片描述
2 AOF模式特点
说明: 当开启AOF策略之后,redis持久化以AOF为主.
特点:

  1. AOF文件默认关闭的,需要手动开启
  2. AOF文件记录的是用户的操作过程.则可以实现实时持久化操作.(几乎不丢数据)
  3. AOF文件做追加的操作,所有持久化文件较大.
  4. AOF持久化时,采用异步的方式进行.
  5. AOF文件需要定期清理.
    插入数据删除然后exit进入redis目录在这里插入图片描述
    输入vim appendonly.aof进入此文件
    .aof文件记录了用户的操作
    按i进入编辑模式删除FLUSHALL操作
    在这里插入图片描述
    重启redis服务,数据恢复
    在这里插入图片描述

4关于AOF与RDB如何选择
1.如果用户追求速度,允许少量的数据丢失 首选RDB模式. 快
2.如果用户追求数据的安全性. 首选AOF模式.

内存优化策略

1 关于内存优化的说明
Redis运行环境,在内存中. 但是内存资源有限的.不能一味的扩容.所以需要对内存数据优化.
Redis内存大小的设定:
在这里插入图片描述
最大内存设定
在这里插入图片描述
默认是10MB
1 LRU算法
LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面(数据)予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。
维度: 时间T

2 LFU算法
LFU(least frequently used (LFU) page-replacement algorithm)。即最不经常使用页置换算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。
维度: 引用次数

3随机算法
说明: 随机生成挑选数据删除.

4 TTL算法
说明: 根据设定了超时时间的数据,将马上要超时的数据提前删除.

算法优化
1.volatile-lru 设定超时时间的数据中,采用lru算法删除数据.
2.allkeys-lru 在所有的数据中 采用LRU算法删除数据.
3.volatile-lfu 在设定了超时时间的数据中 采用LFU算法删除数据.
4.allkeys-lfu 在所有数据中. 采用LFU算法删除数据.
5.volatile-random 设定了超时时间数据,采用随机的方式删除数据
6.allkeys-random 所有数据采用随机算法.
7.volatile-ttl 设定超时时间的数据,采用TTl算法删除.
noeviction 默认不删除数据. 如果内存满了,则报错返回. 默认策略
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值