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也有自动去完成主从切换的功能,等看书看到了更新下。

redis学习四 复制的更多相关文章

  1. Redis学习四:解析配置文件 redis.conf

    一.它在哪 地址: 思考:为什么要将它拷贝出来单独执行? 二.Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 三.INCLUDES包 ...

  2. php+redis 学习 四 队列

    <?php /** * redis实战 * * 利用列表list实现简单队列 * * @example php cache.php */ header('content-type:text/ht ...

  3. Redis学习四(运维指南).

    一.上线规划 一般 redis 的参数配置都在 redis.conf 中,在上线前根据实际环境配置好合适参数,能有效提高 redis 的可用性. redis 的运行机器 CPU 不求核数多,但求主频高 ...

  4. redis学习教程四《管理、备份、客户端连接》

    redis学习教程四<管理.备份.客户端连接>  一:Redis服务器命令 Redis服务器命令 下表列出了与Redis服务器相关的一些基本命令. 序号 命令 说明 1 BGREWRITE ...

  5. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  6. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  7. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  8. Redis基础学习(四)—Redis的持久化

    一.概述      Redis的强大性能很大程度上都是因为数据时存在内存中的,然而当Redis重启时,所有存储在内存中的数据将会丢失,所以我们要将内存中的数据持久化. Redis支持两种数据持久化的方 ...

  9. Redis学习-复制

    Redis支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品.以 ...

随机推荐

  1. Spark 属性配置

    1.Spark1.x 属性配置方式 Spark属性提供了大部分应用程序的控制项,并且可以单独为每个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: SparkConf方式 Spar ...

  2. 整体二分learning

    整体二分是一个离线的做法  目前可以解决求区间第k大问题 当然划分树主席树都可以的样子.. 为什么我老学一些解决同种问题的算法.. 主要思想大概是这样的: 如果要求[l,r]的区间第K大 而这个区间内 ...

  3. linux-RabbitMQ安装命令

    一.RabbitMQ 1.安装配置epel源    $ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.no ...

  4. [Gym-101512C] 凸包+最远点对

    找最大的四边形或者三角形面积,先求凸包,然后枚举两个点,再通过旋转,找最大的另两个点 #include<bits/stdc++.h> #define fi first #define se ...

  5. Java面试题下

    这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题, ...

  6. Mybatis 别名机制,自动扫描 数据的增删改

    mybatis别名机制: 在mybatis.xml文件中的<configuration></configuration>标签中间加入属性<typeAliases>& ...

  7. 三目运算符与if else的运行效率

    两者的效率比较: 当比较次数较少时,效率一样: 当比较次数较多时,发现ifelse的速度更快,应该是其汇编指令更少的原因.   if else的汇编代码如下:     三目运算符代码如下:

  8. Hibernate(1)

    一.什么是hibernate 1. hibernate是开源的轻量级框架,应用在javaee三层结构中 dao层框架,使用orm思想对数据库进行crud操作 2 .在dao层里面做对数据库crud操作 ...

  9. python编程实例-dmidecode系统信息搜集

    #!/usr/bin/env python from subprocess import PIPE,Popen def getDmi(): p = Popen(['dmidecode'],stdout ...

  10. New Concept English three (55)

    28w/m 45errors Recent developments in astronomy have made it possible to detect planets in our won M ...