[redis] linux下主从篇(2)
一.前言
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)的更多相关文章
- [redis] linux下哨兵篇(3)
一.前言1.为何部署sentinel哨兵前文redis主从架构中,当主服务故障时,需要手动将从服务切换为主服务,sentinel服务就是将这个过程自动化.主要功能有:1)不时监控主从服务正常运行2)可 ...
- [redis] linux下安装篇(1)
一.redis是什么redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...
- redis linux下的开机启动
redis linux下的环境搭建 http://www.cnblogs.com/zsg88/p/8321644.html 安装完redis-4.0.1后设置linux开机自启动. 1.在re ...
- Redis linux 下安装
Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...
- 信步漫谈之Redis—Linux下环境搭建
一.环境 Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)Redis 安装包:redis-4.0.11.tar.gz 下载地址:http://d ...
- linux下主从同步和redis的用法
前言 mariadb其实就是mysql mysql已经被oracle收购,它即将闭源,马上要开始收费了因此还想免费试用开源的数据库mysql,就在centos7上,将mysql分支为mariadb 操 ...
- php使用redis扩展以及安装redis(linux下)
一,安装redis 1,下载redis包:wget http://download.redis.io/releases/redis-2.8.9.tar.gz 2,解压redis包后,进入redis-2 ...
- Redis linux 下安装 及扩展配置
1.首先在/usr/local/ 创建文件夹 reids Cd /usr/local/ mkdir redis 2.把redis安装包放在redis目录下面进行解压phpredis-2.2.4.tar ...
- redis linux下的环境搭建
系统 CentOS7 Redis 官网下载 https://redis.io/download 1.下载解压 [root@TestServer-DFJR programs]# /usr/loca ...
随机推荐
- Java并发编程(七)终结线程
线程的状态 一个线程会有如下五个状态 1.新建:线程在被创建时会暂时处于这种状态,此时系统为线程分配资源并对其进行初始化 2.就绪:此时线程已经可以运行,只是系统没有为其分配CPU时间. 3.运行:系 ...
- #leetcode刷题之路23-合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2- ...
- transfrom、transition、animation区别
transfrom transform是静态属性,非动画属性,和margin-left.margin-top类似. translate:平移,类似position:relative;translate ...
- angularjs与vue循环数组对象是区别
一直都觉得angularjs和vue是想类似的,今天在限制加载的数据条数时发现 其不同,话不多说,直接看代码: 1.angularjs <li ng-repeat="item in d ...
- python2.7入门---多线程
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹 ...
- 【leetcode 简单】 第五十二题 有效电话号码
给定一个文本文件 file.txt,请只打印这个文件中的第十行. 示例: 假设 file.txt 有如下内容: Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Li ...
- OAuth(开放授权)
HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使 ...
- 20155220java实验二 面向对象程序设计 实验报告
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 (1) 三种代码 伪代码 产 ...
- 20155330 实验三 敏捷开发与XP实践
20155330 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程. ...
- WPF 带刻度的滑动条实现
原文:WPF 带刻度的滑动条实现 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83507170 ...