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. HDU 2480 Steal the Treasure (并查集+贪心)

    题意:给你n个点,m条边,包括有向边与无向边,每条边都有一个权值.在每个点上都有一个人,他可以走与这个点直接相连的所有边中任意一条边一次,并且得到这个权值,就不能走了,注意这条路也只能被一个人走.问最 ...

  2. 批量测试邮箱登录python脚本

    ---恢复内容开始--- #!/usr/bin/env python #-*- coding:utf-8 -*- import smtplib import sys import time impor ...

  3. JBOSS invoker GETSHELL(PHP版)

    <?php $target = @$argv[1]; $procotol = @$argv[2]; if ($argc < 2) { print "[-]:php Jboss.p ...

  4. SpringBoot-新建项目

    在开发SpringBoot之前,先下载STS开发工具,当然也可以用myeclipse等工具. STS官方下载地址:https://spring.io/tools/sts 下载安装完成后:File--& ...

  5. 项目开发之git配置

    1.本地安装git配置 安装步骤,这里不详细介绍,软件下载然后安装即可. 查看git安装版本 #git --version 2.git密钥生成 ssh-keygen -t rsa -C "f ...

  6. js的constructor

    js创建一个构造函数,会默认在原型链上添加一个constructor的属性,它保存了构造函数内的代码. 一般情况下我们不需要去改动它,但是有些时候我们会不经意的改写它. 比如下面这个例子: var F ...

  7. 验证实现element-ui树形控件的自定义图标及右键菜单

    许久不用,element-ui已经更新至2.4.1版本.直接进入今天的正题,前提是node.js的环境还有vue及elment-ui都已经安装.由于element-ui的官方文档中介绍比较粗略,试了许 ...

  8. ASP.NET MVC中加入Web Forms

    目的 有时候在一个ASP.NET MVC项目发布之后,又需要添加动态页面,同时又不想重新在源代码中添加view,那么这时候就要用上Web Forms了. 步骤 1.在项目根目录添加一个文件夹,在文件夹 ...

  9. Mybatis_总结_05_用_Java API

    一.前言 使用 MyBatis 的主要 Java 接口就是 SqlSession.你可以通过这个接口来执行命令,获取映射器和管理事务. 二.主要类 (1)SqlSession 是由 SqlSessio ...

  10. python虚拟开发环境搭建(virtualenv和virtualenvwrapper)

    虚拟开发环境的搭建 (0) 搭建虚拟环境的意义 使不同的开发环境独立 环境升级不影响其他开发环境,也不影响全局 防止包管理的混乱 (1) 指定 虚拟环境的创建目录 环境变量设置 创建 WORKON_H ...