redis的持久化

redis提供两种备份方式,一种是RDB 一种是AOF
RDB默认开启。关闭注释掉所有的save,存储的是redis 具体的值,会压缩存储。
AOF配置文件中appendonly yes 表示开启。存储的是redis操作的命令。

RDB和AOF的对比:

RDB

AOF

开启与关闭

默认开启的备份方式,要想关闭将配置文件中的所有save注释掉即可。

在配置文件中appendonly:yes即为开启,no为关闭。

同步机制

可以指定某个时间段发生多少个命令进行同步,如一分钟发生6次操作进行一次同步。

每秒同步,或者每次发生命令操作的时候写入。

存储的内容

存储的是redis里具体的值。

存储执行操作的命令。

存储文件路径

根据dir以及dbfilename来指定路径和具体的文件名。

根据dir以及appendfilename来指定路径和具体的文件名。

优点

1、存储的数据文件会进行压缩,文件体积比aof的小。

2、因为存储的是redis的具体的值,因此在数据恢复的时候比aof快。

3、非常适合备份。

1、aof策略是每次发生写的操作都会备份,因此数据极为安全,down机最多丢失1s的数据。

2、aof存储的是redis的命令,而且是直接追加到后面,因此每次备份只需添加新的数据就可以了。

3、如果aof的文件过大,那么redis会进行重写,只保留最小的命令集合。

缺点

1、rdb在多少时间发生多少写的操作就会触发同步机制,采用压缩机制,rdb在同步的时候会重新保存整个redis的数据,因此一般设置5min才保存一次数据,如果down机,会丧失5分钟的数据。

2、数据rdb备份时,redis会fork一个子进程来同步,数据较大时,可能会非常耗时。

1、aof没有压缩,文件体积较大

2、Aof在每次写的操作时都备份,因此并发量较大时,可能有点慢。

3、Aof存储的是命令,在恢复数据的时候叫rdb慢。

redis主从架构

启动redis:redis-server  redis.conf

将redis的配置文件复制一份:cp  redis.conf  salve.conf

更改slave.conf这份配置文件:

bind 127.0.0.1   #你的对外提供链接的ip地址
slaveof 127.0.0.1 6379  #从属于哪个主数据库ip+prot
port 6280  #自身的port

启动两个redis:

redis-server redis.conf
redis-server slave.conf

客户端连接:

redis-cli -h 127.0.0.1 -p 6380
redis-cli -h 127.0.0.1 -p 6379
在6379进行操作:set username aaa
在6380可以进行同步,从节点只读,read only
主负责写,从负责读,读写分离。

redis多主多从集群

一般三主三从,主节点down掉了,从节点slave会负责顶上自动变为主节点。
redis cluster 5.0   #用于集群的搭建
redis 配置文件:7000.conf 7001.conf 。。。。
 port 7000
 bind 192.168.27.13
 deamonize yes
 pidfile 7000.pid
 cluster-enable yes
 cluster-config-file 7000_node.conf
 cluster-node-timeout 15000
 appendonly yes #开启aof备份方式
 
准备六个配置文件:更改所有7000后面的数字从0——5.
启动命令:redis-server 700#.conf           #将6个redis服务启动。
创建集群:redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003
127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
会有master和槽位的分配,决定slave  3:3
type yes 建立集群配置。
客户端连接:
 redis-cli -c -h 192.168.27.13 -p 7000   #这个时候连接需要指定端口
其中的值是通过算法分配存储。redirected,添加数据会自动重定向到其他的主节点当中去存储,如果查看该数据,可以直接get,会自动定向到存储该数据的节点中。
看master和slave的状态:进入redis的交互界面执行——cluster nodes 即可。

Redis——进阶的更多相关文章

  1. Redis进阶实践之十三 Redis的Redis-trib.rb文件详解

    一.简介     事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...

  2. Redis进阶实践之十六 Redis大批量增加数据

    一.介绍      有时,Redis实例需要在很短的时间内加载大量先前存在或用户生成的数据,以便尽可能快地创建数百万个键.这就是所谓的批量插入,本文档的目标是提供有关如何以尽可能快的速度向Redis提 ...

  3. Redis进阶实践之十八 使用管道模式加速Redis查询

    一.引言             学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中批量的增加数据,肯定是大批量的,为了这主题,我从新找起了解决方案.目前 ...

  4. Redis进阶实践之十三 Redis的Redis-trib.rb脚本文件使用详解

    转载来源:http://www.cnblogs.com/PatrickLiu/p/8484784.html 一.简介 事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的 ...

  5. Redis进阶实践之九 独立封装的RedisClient客户端工具类(转载9)

    Redis进阶实践之九 独立封装的RedisClient客户端工具类 一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己 ...

  6. Redis进阶实践之七Redis和Lua初步整合使用(转载 7)

    Redis进阶实践之七Redis和Lua初步整合使用 一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运 ...

  7. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)

    Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...

  8. Redis进阶实践之五Redis的高级特性(转载 5)

    Redis进阶实践之五Redis的高级特性 一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今 ...

  9. Redis进阶实践之四Redis的基本数据类型(转载4)

    Redis进阶实践之四Redis的基本数据类型 一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软 ...

  10. Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)

    Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...

随机推荐

  1. DVWA靶机实战-文件上传漏洞(二)

    继续打靶机:当前靶机的安全级别:medium 第一步 上传一句话木马,这次没有之前那么顺利了,文件显示上传失败,被过滤. 点开右下角view source查看源码: 只允许上传image/jpeg格式 ...

  2. 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)

    创建web项目,引入jar包 引入Spring配置文件

  3. ES5-严格模式

    在es5中可以开启一种严格模式的代码形式,开启方式是:将全局或者函数的第一条语句定义为:'use strict';. 如果浏览器不支持,会将其解析为一条普通语句,没有任何的副作用. 开启全局模式后会有 ...

  4. win10程序无法正常启动0xc0000142

    office用的好好的,今天一早打开电脑,突然就打不开了.显示如图: 我个人猜测可能还是昨天更新其他软件的时候导致的,有个软件更新后,让我重启,当时因为忙,就没有重启.今天一开机,就发现office用 ...

  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:使段落突出显示

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  6. Git远程分支代码强制回退&Tag添加

    Git指令大全:https://www.alexkras.com/getting-started-with-git/ Git提交错了,还是Master分支,哎呦喂咋整?请见下文.   [场景描述] 项 ...

  7. Day11 - J - Brave Game HDU - 1846

    十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻.今天,大家选择上 ...

  8. JavaScript数组用法

    本文介绍一些js数组的用法: 上图的要点为: 1.unshift增加数组头部的元素,shift删除数组头部的元素. 2.delete除可删除对象的属性外,还可以删除数组的元素,使其占位变为undefi ...

  9. Python 基础之返回值与函数使用与局部变量和全局变量locals() 和 globals()

    一.函数的返回值 return return: 自定义返回值,返回到哪里? 返回到函数的[调用处]1.return 后面可以跟上六个标准数据类型,除此之外,可以跟上 类对象,函数,如果不写return ...

  10. 题解 P3950 【部落冲突】

    树链剖分吼啊 一看就看出是LCT模板题啦 前记 见这么多人写LCT,却很少人写树链剖分,于是我就来一发树链剖分(其实是因为自己不会LCT) 本蒟蒻的写法和诸位写树链剖分的大神有点不同 思路 树链剖分, ...