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. 《GPU高性能编程CUDA实战》第五章 线程并行

    ▶ 本章介绍了线程并行,并给出四个例子.长向量加法.波纹效果.点积和显示位图. ● 长向量加法(线程块并行 + 线程并行) #include <stdio.h> #include &quo ...

  2. log-bin

    装mysql,运行一段时间后,在mysql目录下出现一堆类似mysql-bin.000***,从mysql-bin.000001开始一直排列下来,而且占用了大量硬盘空间,高达几十个G. 对于这些超大空 ...

  3. 关于IK 分词器

    准备: 1 创建索引: PUT my_index PUT my_index2 2 先做好映射: PUT /my_index/*/_mapping { "properties": { ...

  4. python3下全自动快速度在线安装所有插件

    把下面的内容复制存为pip.conf文件, [global]timeout = 60index-url = https://pypi.python.org/simple/no-cache-dir = ...

  5. 自制进度条在python3下PyCharm中运行或在控制台按照目录运行

    import timescale = 50print("执行开始".center(scale//2,"-"))start = time.perf_counter ...

  6. python大法好——

    1.字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. Python的字符串内建函数 Python 的字符串常用内建函数如下: 1.大小写转换: & ...

  7. C# IIS 服务器上传图片500解决办法

  8. Spring.net介绍及MVC中应用

    Spring.net两大核心内容: IOC(控制反转) 传统的面相对象思维模式是对象A依赖对象B,对象B的实例化和调用都在对象A中发生,一旦对象B中发生变化,对象A也要随之变化,这样使得程序间行程了紧 ...

  9. ASP.net 完整登录流程

    登录流程 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst ...

  10. oracle PL/SQL的介绍

    转自:http://blog.sina.com.cn/s/blog_4c302f060101i4o1.html 一 PL/SQL的介绍 1 PL/SQL是什么? PL/SQL(procedural l ...