zoukankan      html  css  js  c++  java
  • Redis——进阶

    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 即可。
  • 相关阅读:
    Crazypony四轴飞行器代码框架
    Python中 sys.argv[]的用法简明解释
    详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!(转)
    jquery——所有版本下载
    jsop跨域请求方式--及中文乱码解决方案
    js ---任何浏览器关闭当前网页的代码
    jquery ajax跨域请求 IE9及以下不支持---调试
    poi---Excel导入数据-ClassNotFoundException
    ajax获取json数据为undefined--原因解析
    可变参数 / 枚举--详解
  • 原文地址:https://www.cnblogs.com/getbird/p/11400758.html
Copyright © 2011-2022 走看看