一.前言
1.为何要主从架构
避免单机故障,主服务器挂掉后,还可以手动切换从服务为主服务继续工作,保持缓存数据完整。

2.主从同步的原理步骤
从服务器连接主服务器,发送SYNC命令;
主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

二.配置主从

  1.环境说明

  系统基于CentOS-6.7-x86_64-minimal.iso,源码安装包redis-3.2.4版本,官方说明主从架构最好2.8版本以上

master  192.168.56.102:6379 host102
slave 192.168.56.103:6379 host103

  2.关闭防火墙、selinux

#主从两台都操作
[root@host102 ~]# /etc/init.d/iptables stop
[root@host102 ~]# setenforce 0
[root@host102 ~]# chkconfig iptables off
[root@host102 ~]# sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

  3.redis配置文件

#master端配置
#复制一份默认的配置文件再修改以下个地方
[root@host102 ~]# cp /usr/local/src/redis-3.2.4/redis.conf /etc/redis/6379.conf
[root@host102 ~]# vim /etc/redis/6379.conf
bind 0.0.0.0 #监控地址
daemonize yes #dameon形式运行
pidfile /var/run/redis_6379.pid #pid文件
logfile "/var/log/redis_6379.log" #启动日志
dbfilename dump.rdb #数据文件
dir /var/lib/redis #数据目录
requirepass mima #配置连接密码

  

#slave端配置
[root@host103 ~]# vim /etc/redis/6379.conf
bind 0.0.0.0 #监控地址
daemonize yes #dameon形式运行
pidfile /var/run/redis_6379.pid #pid文件
logfile "/var/log/redis_6379.log" #启动日志
dbfilename dump.rdb #数据文件
dir /var/lib/redis #数据目录
requirepass mima #配置连接密码
slaveof 192.168.56.102 6379 #指定master
masterauth mima #slave认证master密码
slave-read-only yes #设置slave为只读模式

  4.启动服务测试读写

#启动服务
#master端
[root@host102 redis]# /usr/local/redis/bin/redis-server /etc/redis/6379.conf
#slave端
[root@host103 redis]# /usr/local/redis/bin/redis-server /etc/redis/6379.conf

  5.测试读写

#master端
[root@host102 ~]# /usr/local/redis/bin/redis-cli -a mima
127.0.0.1:6379> set name john
OK
127.0.0.1:6379> get name
"john"
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.56.103,port=6379,state=online,offset=239,lag=0
master_repl_offset:239
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:238
#slave端
[root@host103 redis]# /usr/local/redis/bin/redis-cli -a mima
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"john"
127.0.0.1:6379> set age 28
(error) READONLY You can't write against a read only slave.
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.56.102
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:309
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

[redis] linux下主从篇(2)的更多相关文章

  1. [redis] linux下哨兵篇(3)

    一.前言1.为何部署sentinel哨兵前文redis主从架构中,当主服务故障时,需要手动将从服务切换为主服务,sentinel服务就是将这个过程自动化.主要功能有:1)不时监控主从服务正常运行2)可 ...

  2. [redis] linux下安装篇(1)

    一.redis是什么redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...

  3. redis linux下的开机启动

    redis linux下的环境搭建  http://www.cnblogs.com/zsg88/p/8321644.html 安装完redis-4.0.1后设置linux开机自启动.    1.在re ...

  4. Redis linux 下安装

    Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...

  5. 信步漫谈之Redis—Linux下环境搭建

    一.环境 Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)Redis 安装包:redis-4.0.11.tar.gz      下载地址:http://d ...

  6. linux下主从同步和redis的用法

    前言 mariadb其实就是mysql mysql已经被oracle收购,它即将闭源,马上要开始收费了因此还想免费试用开源的数据库mysql,就在centos7上,将mysql分支为mariadb 操 ...

  7. php使用redis扩展以及安装redis(linux下)

    一,安装redis 1,下载redis包:wget http://download.redis.io/releases/redis-2.8.9.tar.gz 2,解压redis包后,进入redis-2 ...

  8. Redis linux 下安装 及扩展配置

    1.首先在/usr/local/ 创建文件夹 reids Cd /usr/local/ mkdir redis 2.把redis安装包放在redis目录下面进行解压phpredis-2.2.4.tar ...

  9. redis linux下的环境搭建

    系统  CentOS7 Redis 官网下载   https://redis.io/download 1.下载解压 [root@TestServer-DFJR programs]# /usr/loca ...

随机推荐

  1. javacript window对象

    Window -- 代表浏览器中一个打开的窗口: 对象属性 window //窗口自身 window.self //引用本窗户window=window.self window.name //为窗口命 ...

  2. ORM一对多查询

    现有两张表,一张书籍表(Book),一张作者表(Author) 现在想查询出书本信息和书本的作者 book=Book.objects.get(name="python") book ...

  3. node.js 基于cheerio的爬虫工具,需要登录权限的爬虫工具

    公司有过一个需求,需要拿一个网页的的表格数据,数据量达到30w左右:为了提高工作效率. 结合自身经验和网上资料.写了一套符合自己需求的nodejs爬虫工具.也许也会适合你的. 先上代码.在做讲解 'u ...

  4. JS基础——事件操作总结

    通用事件绑定   function bindEvent(elem,type,fn) { elem.addEventListener(type,fn); } let a =document.getEle ...

  5. 11.1 js中级,数据类型、数据储存方式、作用域内存空间的区别以及例识别。

    一. 基本数据类型和引用数据类型的区别. 1.基本数据类型:基本数据类型就是简单的操作值. 2.引用数据类型:就是把引用的地址赋给变量. 堆内存: 就是存放代码块的,存放形式有两种 1)对象以键值对的 ...

  6. 用js实现导出功能将html中的table导出为excel

    /** * 描述:导出表格对应的excel文件 * 时间:2018-03-29 * 作者:任恩远 * 调用示例: * onclick = "tableToExcel(tableId,file ...

  7. Hive配置项的含义详解

    关于MetaStore:metastore是个独立的关系数据库,用来持久化schema和系统元数据. hive.metastore.local:控制hive是否连接一个远程metastore服务器还是 ...

  8. 版本控制工具——SVN

    一.需求 需求之一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流 需求之二:代码还原 这个项目中需要一个很复杂的功能,老王摸索 ...

  9. 20155210潘滢昊 Java第二次试验

    20155210潘滢昊 Java第二次试验 实验内容 学会JunitTest的使用 实验代码 MyUtilTest代码: import org.junit.*; import junit.framew ...

  10. 20155213 实验一《Java开发环境的熟悉》实验报告

    20155213 实验一<Java开发环境的熟悉>实验报告 一. 实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 输入cd Code进入Code文件夹里 ...