一. RDB 快照持久化 (默认)

  1. rdb机制,在满足redis.conf中配置的持久化策略后, 自动持久化数据, 默认存储在dump.rdb文件中
  2. 策略 :

    save 900 1 : 900秒内,一个key更改就持久化

    save 300 10 : 300 秒内, 10 个key更改就持久化

    save 60 10000:
  3. rdb过程:

    redis调用fork函数, 拷贝当前redis进程的作为子进程, 改子进程把内存中的数据写成文件, 然后替换旧的dump.rdb
  4. 手动触发rdb快照 :

    (1) save : 让当前redis进程进行快照操作, 会阻塞其他请求

    (2) bgsave ; 用fork后的子进程进行快照操作
  5. redis-check-dump : 修复dump.rdb文件
  6. rdb方式的缺点 :

    如果一次rdb后发生数据修改,但还未触发下一次rdb持久化时就宕机, 则会丢失这期间发生改变的数据

二. AOF日志文件持久化

  1. redis默认不开启AOF持久化, 需要修改appendonly yes开启备份
  2. 如果同时开启了rdb与aof持久化, 则只会触发aof持久化
  3. AOF默认每秒执行一次日志记录, 保存到appendonly.aof文件中, 该文件可以直接查看
  4. AOF的执行策略 :

    (1)appendfsync always 每次都会执行

    (2)appendfsync everysec 默认 每秒执行一次同步操作(推荐,默认)

    (3)appendfsync no不主动进行同步,由操作系统来做,30秒一次
  5. aof日志文件重写

    aof文件有自己的重写策略, 因为aof只是记录了每次的操作命令, 如果不进行重写, 这个文件的大小会随着操作次数的增加而变得非常庞大, 也不利于恢复数据,所以要定期重写该文件

    (1)重写流程 : aof自动生成set命令等插入命令, 来描述当前内存中的数据内容, 这些命令覆盖原来的aof文件

    (2)重写策略 :

    (a) auto-aof-rewrite-percentage 100 : 当目前aof文件大小超过上一次重写时的aof文件大小的百分之多少时会再次进行重写,如果之前没有重写,则以启动时的aof文件大小为依据

    (b)auto-aof-rewrite-min-size 64mb : 文件增加到64m后重写

    (c)手动执行bgrewriteaof进行重写
[注]:所谓的“重写”其实是一个有歧义的词语, 实际上, AOF 重写并不需要对原有的 AOF 文件进行任何写入和读取, 它针对的是数据库中键的当前值。

三. 动态切换redis持久方式

  1. CONFIG SET appendonly yes : 从RDB切换到AOF
  2. CONFIG SET save ""(可选)
 [注]:如果想把正在运行的redis数据库,从RDB切换到AOF,建议先使用动态切换方式,再修改配置文件,重启数据库。(不能自己修改配置文件,重启数据库,否则数据库中数据就为空了。)

四. config命令

  1. 使用config set可以动态设置参数信息,但在服务器重启之后就失效了。

    config set appendonly yes

    config set save "90 1 30 10 60 100"
  2. 使用config get可以查看所有可以使用config set命令设置的参数

    config get * : 获取所有设置的参数值
  3. config rewrite命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写(Redis 2.8 及以上版本才可以使用),主要是把使用config set动态指定的命令保存到配置文件中。
[注]:config rewrite命令对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。

五.安全认证

  1. 设置数据库密码 (密码认证)

    (1)修改配置requirepass password

    (2)验证密码auth password

    (3)jedis.auth(String passed) 在链接时进行验证
  2. bind参数(可以让数据库只能在指定IP下访问)(主机认证)

    bind 127.0.0.1
  3. 重命名命令,防止意外的flushall输入

    (1)修改命令的名称 : rename-command flushall cleanall

    (2)禁用命令 : rename-command flushall ""

6. redis持久化,认证的更多相关文章

  1. Redis持久化存储与复制功能简述

    一.分布式系统基础理论 分布式系统的两个基础理论: 1.CAP理论 如图: Consistency(强一致性):数据一致更新,所有数据变动都是同步的.Availability(可用性):好的响应性能. ...

  2. SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理|前后端分离(下)----筑基后期

    写在前面 在上一篇文章<SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理(上)----筑基中期>当中,我们初步实现了SpringBoot整合Shiro ...

  3. [翻译自官方]什么是RDB和AOF? 一文了解Redis持久化!

    ​概述 本文提供Redis持久化技术说明,  建议所有Redis用户阅读. 如果您想更深入了解Redis持久性原理机制和底层持久性保证, 请参考文章 揭秘Redis持久化: http://antire ...

  4. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  5. Redis持久化

    Redis持久化 快照(默认) 将内存中的数据以快照的方式写入到二进制文件中,默认文件名是dump.rdb. 配置自动化做快照持久化(如redis在n秒内如果超过m个key被修改就自动做快照) sav ...

  6. Redis设置认证密码 Redis使用认证密码登录 在Redis集群中使用认证密码

    Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用.这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安 ...

  7. redis——持久化篇

    众所周知,redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失. 为了解决这 ...

  8. redis持久化机制

    redis持久化 redis的数据存在内存中,所以存取性能好.但是存在内存中的数据存在一个问题,一旦机器重启,内存数据消失.为了解决这个问题,redis支持持久化.持久化就是为了解决内存数据丢失时恢复 ...

  9. Redis-cluster集群【第二篇】:redis持久化

    Redis持久化原理: Redis支持两种持久化:RDB和AOF模式 一.名词解释: RDB:持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot).AOF ...

  10. Redis持久化实践及灾难恢复模拟

    参考资料: Redis Persistence http://redis.io/topics/persistence Google Groups https://groups.google.com/f ...

随机推荐

  1. 第二篇T语言代码编写技巧

    控件事件 控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件 的一些简单而可见的功能. 概述 1.控件应用 使用现成的控件来开发应用程序时,控件工作在 ...

  2. Codeforces Round #155 (Div. 2)

    A. Cards with Numbers 模拟. B. Jury Size 相当于统计单天最大需要人数,会发生变化的点在区间两端,枚举计算即可. C. Anagram 从小到大枚举字母: 若当前字母 ...

  3. hdu3861 强连通+最小路径覆盖

    题意:有 n 个点,m 条边的有向图,需要将这些点分成多个块,要求:如果两点之间有路径能够互相到达,那么这两个点必须分在同一块:在同一块内的任意两点相互之间至少要有一条路径到达,即 u 到达 v 或 ...

  4. 三星Mega 6.3(i9200)删除kingroot

    关于kingroot实际效果怎么样,是不是流氓软件,我不做评论. 手机型号,三星galaxy mega 6.3(i9200)水货,更详细的机型不知道怎么看. 刷了官方的rom以后,下载了kingroo ...

  5. C/C++语言void及void指针深层探索(转)

    转自:http://www.lanou3g.com/blog/sort/SelfiOS/page/78 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一 ...

  6. linux下常用文件传输命令 (转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  7. Linux 的账号与群组[转自vbird]

    Linux 的账号与群组 管理员的工作中,相当重要的一环就是『管理账号』啦!因为整个系统都是你在管理的, 并且所有一般用户的账号申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务 ...

  8. Unix Linux 编程书籍

    UNIX环境高级编程(第3版) Advanced Programming in the UNIX Environment Linux/UNIX系统编程手册 Linux/UNIX系统编程手册 (豆瓣) ...

  9. C#学习之LinqtoSql类的简单例子

    LinqtoSql类把访问.操作数据库的细节封装了起来,把连接操作数据库变得相当简单.下面是简单的例子. 第一步:添加LinqtoSql类 1.创建一个控制台应用程序项目,下载一个NrothWind ...

  10. x2go

    单词解析    productivity    n. 生产力:生产率:生产能力seamlessly    adv. 无缝地roam constantly    经常漫游agility and flex ...