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也有自动去完成主从切换的功能,等看书看到了更新下。
  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/liouwei4083/p/6052186.html
Copyright © 2011-2022 走看看