redis持久化和内存策略

redis持久化

  • redis持久化机制

说明:redis默认有持久化的机制.按照指定的配置,定期将内存中的数据持久化到硬盘中.当redis重启时首先根据配置文件中的设置,读取持久化的文件,最终实现了数据的恢复.

  • RDB模式

1.特点

  1. RDB模式是redis中默认的持久化策略.
  2. RDB模式能够定期实现数据的持久化.(可能会丢失数据)
  3. RDB模式中默认的持久化的文件名称dump.rdb
  4. RDB的持久化操作,只做内存数据的快照.持久化文件占用空间较小.
  5. RDB模式持久化的效率最高

2.持久化命令

  1. save   立即持久化 其他操作会陷入阻塞  同步操作   默认

  2. bgsave 后台启动持久化操作 在后台运行 不会阻塞  异步操作.

3.持久化配置策略

1.持久化策略

save 900 1     900秒内如果执行1此更新操作,则持久化一次

save 300 10    300秒内如果执行10此更新操作,则持久化一次

save 60 10000  60秒内执行10000此更新操作,持久化一次

save 1 1       效率太低.

  • AOF模式

1.特点

  1. AOF模式默认是关闭的,需要手动开启.
  2. AOF模式是异步操作.可以实现实时持久化.
  3. AOF模式记录用户的操作过程.所以持久化文件较大.
  4. AOF模式效率低.

2.AOF模式配置

3.AOF模式策略

appendfsync always  如果用户更新redis则持久化

appendfsync everysec 每秒持久化一次

# appendfsync no    将持久化的时间交给操作系统

redis内存策略

  • 策略说明

redis中的数据保存在内存中.如果一直存储数据,不及时清空数据,必然会导致内存溢出.redis服务停止.所以需要定期清空数据.

  • 内存优化策略

1.LRU算法

LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。

2.LFU算法

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

  • 策略选择
  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    根据剩余时间多少删除数据(先删除少的)
  8. noeviction(默认策略) 不会自动删除数据.内存溢出时报错返回.

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值