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 即可。
  • 相关阅读:
    Code Forces Gym 100886J Sockets(二分)
    CSU 1092 Barricade
    CodeChef Mahesh and his lost array
    CodeChef Gcd Queries
    CodeChef GCD2
    CodeChef Sereja and LCM(矩阵快速幂)
    CodeChef Sereja and GCD
    CodeChef Little Elephant and Balance
    CodeChef Count Substrings
    hdu 4001 To Miss Our Children Time( sort + DP )
  • 原文地址:https://www.cnblogs.com/getbird/p/11400758.html
Copyright © 2011-2022 走看看