Redis-简单实现星形主从配置
高级参考(https://www.zhihu.com/question/21419897)
简单应用场景
现在配置redis 星形 集群, 有三台服务器, 怎样实现?
复制redis.conf两份, 分别命名为redis6380.conf, redis6381.conf
master指向redis.conf, slave1指向6380.conf, slave2指向redis6381.conf
master关闭rdb, 开启aof
slave1开启rdb, 关闭aof
slave2关闭rdb和aof
配置redis6380.conf
#pidfile /var/run/redis.pid 改为
pidfile /var/run/redis6380.pid
...
#port 6379 改为
port 6380
...
#dbfilename dump.rdb 改为
dbfilename dump6380.rdb #让slave1执行rdb工作
...
# slaveof <masterip> <masterport> 改为
slaveof localhost 6379 #表示作为6379的slave
...
appendonly no #aof也不用产生, 因此关闭
...
slave-read-only yes #只读
配置redis6381.conf
pidfile /var/run/redis6381.pid
...
port 6381
...
#save 900 1 #两台从服务器其中一台产生rdb就可以了, 另一台没必要再次产生rdb, 因此注释掉
#save 300 10
#save 60 10000
...
appendonly no #aof也不用产生, 因此关闭
...
slaveof localhost 6379
...
slave-read-only yes #只读
配置redis.conf
#save 900 1 #因为slave1已经存在rdb了, 所以master不在需要rdb
#save 300 10
#save 60 10000
...
appendonly yes #master的aof可以打开, 因为主服务器的aof最全最快
启动, 分别在终端打开:
ql@ql:~$ redis-server /usr/local/etc/redis/redis.conf
ql@ql:~$ redis-server /usr/local/etc/redis/redis6380.conf
ql@ql:~$ redis-server /usr/local/etc/redis/redis6381.conf
启动master的客户端
ql@ql:~$ redis-cli
127.0.0.1:6379> set title sunshine
OK
127.0.0.1:6379>
启动slave1的客户端
ql@ql:~$ redis-cli -p 6380
127.0.0.1:6380> keys * #可以看到master中的内容
1) "title"
127.0.0.1:6380> get title
"sunshine"
127.0.0.1:6380>
启动slave2的客户端
ql@ql:~$ redis-cli -p 6381
127.0.0.1:6381> keys * #也能看到master中的内容
1) "title"
127.0.0.1:6381> get title
"sunshine"
127.0.0.1:6381>
现在要为master设置密码, 即redis.conf
# If the master is password protected (using the "requirepass" configuration
# directive below) it is possible to tell the slave to authenticate before
# starting the replication synchronization process, otherwise the master will
# refuse the slave request.
#
# masterauth <master-password>
requirepass admin123 #新加的一行
再次打开终端
打开reids-server
打开reids-cli
ql@ql:~$ redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required. #没有输入密码进行认证
127.0.0.1:6379>
127.0.0.1:6379> auth admin123 #auth+密码进行认证
OK
127.0.0.1:6379> keys *
1) "title"
127.0.0.1:6379> get title
"sunshine"
127.0.0.1:6379>
此时从服务器连不上主服务器, 因为有密码
修改redis6380.conf
# masterauth <master-password> 改为
masterauth admin123
redis6381.conf的修改如上
redis主从复制的缺陷
每次slave断开后(无论是主动断开还是网络故障), 再连接master,
都要 master 全部 dump 出来 rdb 再 aof,
即同步的过程都要执行一遍
所以: 多台slave不要一下同时启动起来, 否则master可能IO剧增, 拖垮master
Redis-简单实现星形主从配置的更多相关文章
- redis集群(主从配置)
市面上太多kv的缓存,最常用的就属memcache了,但是memcache存在单点问题,不过小日本有复制版本,但是使用的人比较少,redis的出现让kv内存存储的想法成为现实.今天主要内容便是redi ...
- Redis集群_主从配置
链接地址http://www.2cto.com/database/201502/377069.html 收藏备用. Redis主从配置(Master-Slave) 一. Redis Replicati ...
- Redis四大模式之主从配置
Redis工作模式主要有单机模式.主从模式(slave).哨兵模式(sentinel).集群模式(cluster)这四种,本文主要讲解一下主从模式的部署方式. 我是windows单机进行的这套搭建操作 ...
- Linux之redis的安装,主从配置
一,redis安装 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...
- Redis数据库之服务器主从配置
目的 主要培养对分布式REDIS主从复制架构运用的能力.理解并掌握REPLICATION工作原理的同时,能独立配置Replication ,使数据库运行在主从架格上.针对主从复制架构的运用,着力掌握S ...
- Redis 集群_主从配置_哨兵模式
首先:slaveof 可以在[从]服务器启动一个service服务,直接将[从]服务器定义为[从Redis] redis-server --slaveof <master-ip> < ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis 主从配置和参数详解
安装redis 下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz 解压redis tar -xvf redis-.ta ...
- Redis安装及主从配置(转)
一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...
随机推荐
- Paxos Made Simple(译)
The Paxos algorithm, when presented in plain English, is very simple. 我叫Leslie Lamport,我最屌. 1. 简介 用于 ...
- oracle删除数据后表空间仍过大问题解决方法
-----亲测有效------- --一.备份原始数据库库--1.备份空表--在plsql里面执行一下这句话 然后把结果集 再执行一把 再导数据select 'alter table '||table ...
- Mybatis在oracle批量更新
最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try catche 处 ...
- 深入理解YYCache
前言 本篇文章将带来YYCache的解读,YYCache支持内存和本地两种方式的数据存储.我们先抛出两个问题: YYCache是如何把数据写入内存之中的?又是如何实现的高效读取? YYCache采用了 ...
- AI相关 TensorFlow -卷积神经网络 踩坑日记之一
上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...
- php通过curl扩展进行模拟登录(含验证码)
以下为本人工作中遇到的需要做的事情,之前也没怎么用过curl,查了好多资料,才稍微弄明白一点:本文所有内容只是自己平日工作的记录,仅供大家参考:<?php/*** 模拟登录*/header(&q ...
- 【Android Developers Training】 17. 停止和重启一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 10.application对象
1.application对象实现了用户数据的共享,可存放全局变量 2.application开始于服务器的启动,终止于服务器的关闭. 3.在用户的前后连接或不同用户之间的连接中,可以对applica ...
- java项目(非ssm等框架)下的quartz定时器任务
第一步:引包 要使用Quartz,必须要引入以下这几个包: 1.log4j-1.2.16 2.quartz-2.1.7 3.slf4j-api-1.6.1.jar 4.slf4j-log4j12-1. ...
- NEWS-包名-baseTest-类名-ConfigManager
package baseTest; import java.io.IOException;import java.io.InputStream;import java.util.Properties; ...