Redis备份(持久化)

Redis备份存在两种方式:

  • 1.一种是"RDB"。是快照(snapshotting),它是备份当前瞬间Redis在内存中的数据记录;
  • 2.另一种是"AOF"。只追加文件(Append-Only File,AOF),其作用是当Redis执行写命令后,在一定的条件下将执行过的写命令依次保存在Redis的文件中,将来就可以依次执行那些保存的命令恢复Redis的数据。

对于快照备份而言,如果当前Redis数据量大,备份可能会造成卡顿,但是恢复重启比较快速。

对于AOF备份,则相反。

Redis内存回收策略

Redis也会因为内存不足而出错,也可能因为回收过久而导致系统长期的停顿,因此需要执行回收策略。

Redis允许配置6种回收策略,在内存达到最大时,将会淘汰键值,并进行回收。

# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
#
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key according to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys-random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations

内存回收策略如下:

volatile-lru :采用LRU算法(最近最少使用算法),但是只淘汰超时的键值对。
 allkeys-lru :采用LRU算法,淘汰键值对。
 volatile-random :采用随机淘汰策略,但是只淘汰超时的键值对。
 allkeys-random :采用随机淘汰策略,淘汰键值对。
 volatile-ttl  :采用TTL算法(生存周期),淘汰存活时间最短的键值对。
 noeviction :不淘汰任何键值对,内存已满时,进行写操作返回错误。

参考资料:

《SSM框架和Redis实现》

Redis备份及回收策略的更多相关文章

  1. Redis的内存回收策略和内存上限(阿里)

    还有一篇文章 讲解guava如何删除过期数据的,与redis不同,guava没有维护线程删除过期key,只是在设置 key 或者 读取key的时候,顺带删除参考:GuavaCache简介(一)是轻量级 ...

  2. Redis 笔记整理:回收策略与 LRU 算法

    Redis的回收策略 noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外) allkeys-lru: 尝试回收最少使用的键(L ...

  3. 面试题之redis的内存回收策略

    1.maxmemory-policy noeviction(默认):内存空间不足会报错 2.allkeys-lru:最少使用的数据去淘汰 3.allkeys-random:随机淘汰一些key 4.vo ...

  4. Redis数据类型,持久化,回收策略——(Redis缓存第一章)

    缓存:第一种是内存缓存 比如Map(简单的数据结构),以及EH Cache(Java第三方库),第二种是缓存组件比如Memached,Redis:Redis(remote dictionary ser ...

  5. Redis内存回收策略

    如果使用Redis的时候,不合理使用内存,把什么东西都放在内存里面,又不设置过期时间,就会导致内存的堆积越来越大.根据28法则,除了20%的热点数据之外,剩余的80%的非热点或不怎么重要的数据都在占用 ...

  6. Redis的内存回收原理,及内存过期淘汰策略详解

    Redis 内存回收机制Redis 的内存回收主要围绕以下两个方面: 1.Redis 过期策略:删除过期时间的 key 值 2.Redis 淘汰策略:内存使用到达 maxmemory 上限时触发内存淘 ...

  7. Redis的内存淘汰策略(八)

    一:Redis的AOF是什么? 以日志的形式来记录每个写操作(读操作不记录),将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构 ...

  8. Redis的内存回收机制

    Redis的内存回收机制 2018年01月16日 17:11:48 chs007chs 阅读数:1172   Redis的内存回收机制主要体现在一下两个方面: 删除过期时间的键对象 删除过期键对象 : ...

  9. jvm高级特性(4)(内存分配回收策略)

    JVM高级特性与实践(四):内存分配 与 回收策略 一. 内存分配 和 回收策略 1,对象内存分配的概念: 往大方向讲,它就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配), ...

随机推荐

  1. <基础> PHP 运算符 流程控制

    PHP运算符优先级: 递增/递减 (++ / --) > 算术运算符(+ .- .* ./) > 大小比较 > 逻辑与 (&)> 逻辑或(||) > 三目 > ...

  2. PHP中的 抽象类(abstract class)和 接口(interface)

    抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 .抽 ...

  3. Win7查看开关机记录

    通过系统日志可以查看,这里记得的日志很多,需要筛选一下,来个图片看的清楚: 事件ID的12,13就代表开关机,具体信息会在窗口下方显示.

  4. 基于Redis的Spring cache 缓存介绍

    目录 Cache API及默认提供的实现 demo 依赖包安装 定义实体类.服务类和相关配置文件 Cache注解 启用Cache注解 @CachePut @CacheEvict @Cacheable ...

  5. 浅谈如何避免内存泄漏(out of memory)

    1.在涉及使用Context时,对于生命周期比Activity长的对象应该使用Application的Context.凡是使用Context优先考虑Application的Context,当然它并不是 ...

  6. day3 python 阿狸的进阶之路

    函数概念: 1.为什要有函数 组织结构不清晰,可读性差,代码冗余,可扩展性差. 2.什么是函数   具备某一个功能的工具--->函数     事先准备工具->函数的定义     拿来就用. ...

  7. strcore.cpp(156) 内存泄漏

    vs搞了一个小工具涉及到线程 每次执行完退出的时候都会报 strcore.cpp(156) 的内存泄漏 原因是在线程内使用了CString 类型的传递参数 如果没有正常释放会报上面的错误.

  8. 希尔&计数&基数排序

    一.希尔排序 shell_sort def insert_sort_gap(li,gap): for i in range(gap,len(li)): tem = li[i] # 要插入的数 j = ...

  9. Rocket MQ 问题排查命令

    修改rocketmq官方代码测试: package com.alibaba.middleware.race.rocketmq; import java.util.Scanner; import com ...

  10. postman 的基础使用

    https://blog.csdn.net/fxbin123/article/details/80428216