内容简介: 本文先分享下如何搭建redis的主从模式配置,以及主从模式配置的注意事项1,yum install gcc-c++2,wget
本文先分享下如何搭建 redis 的主从模式配置,以及主从模式配置的注意事项
安装
1,yum install gcc-c++
- 安装环境
2,wget http://download.redis.io/releases/redis-4.0.2.tar.gz
- 获取压缩包
- 我的安装路径:/usr/local/redis
3,tar -zxvf redis-4.0.2.tar.gz
- 解压
4,cd redis-4.0.2
- 切换到对应目录
5,make
自此,redis已经安装成功
6,./src/redis-server redis.conf
- 启动redis,指定配置文件
服务启动成功如下:
7,Ctrl+c
- 退出当前服务
- 由于不是以守护线程的方式去启动,所以需要Ctrl+c停止服务
8,vi redis.conf
- 修改配置文件
- daemonize no 修改为 daemonize yes ,以守护线程启动
9,./src/redis-server redis.conf
- 再次启动redis
10,ps -ef |grep redis
- 查看redis服务
11,./src/redis-cli
- 启动客户端链接
- 键入info,查看当前redis信息
- 键入shutdown 停止redis服务
单机redis就安装和调试完了。
redis 主从模式配置
主从模式
redis的主从模式,使用异步复制,slave节点异步从master节点复制数据,master节点提供读写服务,slave节点只提供读服务(这个是默认配置,可以通过修改配置文件 slave-read-only 控制)。master节点可以有多个从节点。配置一个slave节点只需要在redis.conf文件中指定 slaveof master-ip master-port 即可。
本示例:一个master节点有两个slave节点
配置:
1,cd /usr/local/redis/redis-4.0.2
- 切换到当前redis安装路径
2, mkdir config
- 新建一个文件夹,存放redis的配置文件
3,在config下,新建三个配置文件,如下:
cd config
vi master-6739.conf
bind 0.0.0.0 port 6379 logfile "6379.log" dbfilename "dump-6379.rdb" daemonize yes rdbcompression yes
vi slave-6380.conf
bind 0.0.0.0 port 6380 logfile "6380.log" dbfilename "dump-6380.rdb" daemonize yes rdbcompression yes slaveof 192.168.81.135 6379
vi slave-6381.conf
bind 0.0.0.0 port 6381 logfile "6381.log" dbfilename "dump-6381.rdb" daemonize yes rdbcompression yes slaveof 192.168.81.135 6379
master-6739.conf,为主节点配置文件,slave-6380.conf,slave-6381.conf为从节点配置文件
在从节点的配置文件中使用:slaveof 指定master节点
4,启动三台reids服务
[root@localhost redis-4.0.2]# ./src/redis-server config/master-6379.conf [root@localhost redis-4.0.2]# ./src/redis-server config/slave-6380.conf [root@localhost redis-4.0.2]# ./src/redis-server config/slave-6381.conf
查看一下redis服务
测试主从模式:
a,先分别连上三台Redis服务,获取key为name的值,通过-p 指定连接那个端口的redis服务
[root@localhost redis-4.0.2]# ./src/redis-cli -p 6379 127.0.0.1:6379> get name (nil) [root@localhost redis-4.0.2]# ./src/redis-cli -p 6380 127.0.0.1:6380> get name (nil) [root@localhost redis-4.0.2]# ./src/redis-cli -p 6381 127.0.0.1:6381> get name (nil) #获取的值都为空
b,给master节点set一个key
[root@localhost redis-4.0.2]# ./src/redis-cli -p 6379 127.0.0.1:6379> set name cmy OK 127.0.0.1:6379> get name "cmy"
c,slave节点直接读取key为name的值
[root@localhost redis-4.0.2]# ./src/redis-cli -p 6380 127.0.0.1:6380> get name "cmy" [root@localhost redis-4.0.2]# ./src/redis-cli -p 6381 127.0.0.1:6381> get name "cmy"
d,slave节点只提供读服务,不能进行写入操作
127.0.0.1:6381> set age 23 (error) READONLY You can't write against a read only slave.
注意
使用主从模式时应注意matser节点的持久化操作,matser节点在未使用持久化的情况详情下如果宕机,并自动重新拉起服务,从服务器会出现丢失数据的情况。
首先,禁止matser服务持久化
127.0.0.1:6379> CONFIG SET save "" OK
在master节点set一个值
127.0.0.1:6379> set age 23 OK
slave节点可以get到age的值
127.0.0.1:6380> get age "23"
关掉master节点服务
127.0.0.1:6379> shutdown not connected>
slave节点此时仍可以get到age的值
127.0.0.1:6380> get age "23"
重启master服务,此时获取不到age的值
[root@localhost redis-4.0.2]# ./src/redis-server config/master-6379.conf [root@localhost redis-4.0.2]# ./src/redis-cli -p 6379 127.0.0.1:6379> get age (nil)
slave节点此时在获取age的值为空,数据丢失
[root@localhost redis-4.0.2]# ./src/redis-cli -p 6380 127.0.0.1:6380> get age (nil)
数据丢失的原因:
因为master服务挂了之后,重启服务后,slave节点会与master节点进行一次完整的重同步操作,所以由于master节点没有持久化,就导致slave节点上的数据也会丢失掉。所以在配置了Redis的主从模式的时候,应该打开主服务器的持久化功能
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 搭建Redis主从+哨兵模式
- Docker搭建MySQL主从复制
- MySQL主从复制搭建及详解
- redis的主从集群环境搭建
- MySQL -- 基于Docker搭建主从集群
- MySQL 主从复制搭建,基于日志(binlog)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Coming of Age in Second Life
Tom Boellstorff / Princeton University Press / 2008-04-21 / USD 29.95
The gap between the virtual and the physical, and its effect on the ideas of personhood and relationships, is the most interesting aspect of Boellstorff's analysis... Boellstorff's portrayal of a virt......一起来看看 《Coming of Age in Second Life》 这本书的介绍吧!