zoukankan      html  css  js  c++  java
  • redis学习四 复制

    1,单机创建多实例

    一个redis服务器安装多个redis实例,每个实例对应一个端口。默认端口是6379.
    将redis.conf配置文件复制一份到另外一个文件夹下,然后修改其中的信息即可。
     
    pidfile : pidfile/var/run/redis/redis_6380.pid
    port 6380
    logfile : logfile/var/log/redis/redis_6380.log
    rdbfile : dbfilename dump_6380.rdb
     
    然后启动的时候,指定好对应的配置文件即可
    #redis-server/usr/local/redis/redis6380.conf
    #redis-server/usr/local/redis/redis6381.conf
    启动了之后用ps -ef|grep redis 即可看到多个实例启动了
    进入某一个实例,使用命令
    redis-cli -p 6380即可。
     

    2,复制

         复制可以让从服务器拥有和主服务器一样的数据副本,作用之一就是可以让读写分离,让从服务器去处理读请求,主服务器主要处理写请求。提到效率。redis把这样的事情做的非常简单。

         从服务器设置

         两种方法可以让一个redis实例变成一个从服务器,第一种就是在redis.conf文件中配置好 slaveof host port信息,使用这个配置文件启动的redis实例就是这个host的这个port对应的那个实例的从服务器了。第二种更简单,正常启动redis实例,启动后,在使用过程也好,已启动就执行也好,执行下slaveof host port命令,即可直接成为别人的从服务器,执行了之后,从redis的原先的数据就全部删除掉,然后将主redis的数据同步过来。下图展示了从redis链接主redis的时候发生的事情。
     
    由上图可以看出,主redis在复制期间也会处理客户端的请求,因为是使用的bgsave,这个时候,如果主从之间网络带宽不足或者主redis的内存太少,还是会比较影像主redis的使用效率的。因此,在实际只用中,最好让主redis只使用50-60%的内存,留下点内存去做其他的事情。
     
         一个主redis如果有太多的从redis的话,网络带宽不一定受得了,还好redis支持主从链的方式,即从redis也可以有从redis。主从,从从复制的时候有个区别,如果从x有从y,那么在从x解析从主redis拿过来的快照的时候,将断开于从y的连接,导致y需要重新连接并同步。
     

       主从切换

         手动更换主rdis,比如,redis A B C ,A是主,其他两个是从,由于redis支持直接使用命令来切断主从关系:slaveof no one。那么如果这个时候A 挂了,需要吧B换成主redis,就在B上执行slaveof no one 然后在C上执行slaveof no one ,slaveof B.host B.port 因为在A挂之前他们的数据都是同步的(基本同步),所以直接将一个从redis换成主的就可以直接使用了,然后更改下redis客户端的链接配置信息,即可使用。
         redis也有自动去完成主从切换的功能,等看书看到了更新下。
  • 相关阅读:
    【BZOJ 2844】: albus就是要第一个出场
    BZOJ 2631: tree
    BZOJ1798: [Ahoi2009]Seq 维护序列seq
    Link-Cut Tree指针模板
    bzoj 4916: 神犇和蒟蒻 (杜教筛+莫比乌斯反演)
    【BZOJ 3561】 DZY Loves Math VI
    linux 安装php7.2 以及配置laravel环境(public目录下)
    composer 配置 切换中国镜像
    phpstorm composer 提示php 版本过低的问题调整
    如何在阿里云的虚机 部署laravel项目
  • 原文地址:https://www.cnblogs.com/liouwei4083/p/6052186.html
Copyright © 2011-2022 走看看