1.创建公共配置文件

所有配置文件添加到以下目录:

/xxxx/redis-slave-master

创建公共的redis配置文件,直接使用redis的默认配置文件,修改以下配置项:

bind 127.0.0.1
daemonize yes 后台启动
requirepass 123456 登录密码

2.创建master服务的配置文件



/xxxx/redis-slave-master

目录中创建redis-master.conf文件,并添加以下配置内容:

## 公共配置配置相关
include /xxxx/redis-slave-master/redis-commom.conf ## 监听端口
port 7001
## 后台运行的时候生成的进程文件
pidfile /var/run/redis7001.pid ## 日志文件路径和名称
logfile "/xxxx/redis-slave-master/log/master" ## 持久化数据库文件
dbfilename dump7001.rdb
## 数据库文件目录
dir /xxxx/redis-slave-master/redis-dbfile

3.添加slave的配置文件

/xxxx/redis-slave-master

目录下添加redis-slave1.conf配置文件

配置内容为:

## 公共配置配置相关
include /xxxx/redis-slave-master/redis-commom.conf port 7002
pidfile /var/run/redis7002.pid logfile "/xxxx/redis-slave-master/log/slave1" dbfilename dump7002.rdb
dir /xxxx/redis-slave-master/redis-dbfile
## slave-master相关配置
slaveof 127.0.0.1 7001 masterauth 123456 slave-read-only yes

4.启动master和slave服务

切换到配置文件目录:

cd /xxxx/redis-slave-master

输入以下命令,启动master和slave服务

redis-server redis-master.conf
redis-server redis-slave1.conf

输入:

ps -aux|grep redis

如果输出以下内容:

root     10739  0.0  0.2 142912  5412 ?        Ssl  17:14   0:00 redis-server 127.0.0.1:7001
root 10748 0.0 0.2 142912 5384 ? Rsl 17:14 0:00 redis-server 127.0.0.1:7002

启动成功。

5.验证Master/Slave模式配置成功

使用redis-cli分别连接slave和master数据库:

redis-cli -p 7001 -a 123456
redis-cli -p 7002 -a 123456

在连接master的客户端中添加数据:

set master-key test

在连接slave的客户端中输入:

get master-key

如果能查询到:

"test"

则redis的slave-master配置成功。

6.slave中写入数据测试

在连接slave的客户端中输入:

set write-test test

会返回以下错误:

(error) READONLY You can't write against a read only slave.

这个因为在slave的服务中配置了只读模式。

7.redis日志文件分析:

10739:M 21 Mar 17:14:31.568 * DB loaded from disk: 0.000 seconds
10739:M 21 Mar 17:14:31.568 * The server is now ready to accept connections on port 7001
10739:M 21 Mar 17:14:38.962 * Slave 127.0.0.1:7002 asks for synchronization
10739:M 21 Mar 17:14:38.962 * Full resync requested by slave 127.0.0.1:7002
10739:M 21 Mar 17:14:38.963 * Starting BGSAVE for SYNC with target: disk
10739:M 21 Mar 17:14:38.963 * Background saving started by pid 10751
10751:C 21 Mar 17:14:38.993 * DB saved on disk
10751:C 21 Mar 17:14:38.994 * RDB: 2 MB of memory used by copy-on-write
10739:M 21 Mar 17:14:39.082 * Background saving terminated with success
10739:M 21 Mar 17:14:39.083 * Synchronization with slave 127.0.0.1:7002 succeeded

8.使用场景

一般用于读写分离

Redis学习笔记01--主从数据库配置的更多相关文章

  1. redis学习笔记-01:redis简介

    1.redis是一个高性能的Nosql数据库,遵守BSD协议,使用c语言编写.支持网络.可基于内存亦可持久化,是一种日志型.Key-Value数据库,也可看做是一个分布式的.基于内存的缓存工具. 2. ...

  2. redis学习笔记01 — 基本介绍、安装配置及常用命令

    redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...

  3. Machine Learning 学习笔记 01 Typora、配置OSS、导论

    Typora 安装与使用. Typora插件. OSS图床配置. 机器学习导论. 机器学习的基本思路. 机器学习实操的7个步骤

  4. MIT JOS学习笔记01:环境配置、Boot Loader(2016.10.22)

    未经许可谢绝以任何形式对本文内容进行转载! 一.环境配置 关于MIT课程中使用的JOS的配置教程网上已经有很多了,在这里就不做介绍,个人使用的是Ubuntu 16.04 + qemu.另注,本文章中贴 ...

  5. redis学习笔记-01 string类型命令

    一.set key value set joker 123456 #设定key为joker,value为123456的数据 二.keys * keys * #用于查看该数据库中所有的key值 三.se ...

  6. Redis:学习笔记-01

    Redis:学习笔记-01 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 1. Redis入门 2.1 ...

  7. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  8. Redis学习笔记4-Redis配置具体解释

    在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...

  9. redis学习笔记(详细)——高级篇

    redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...

随机推荐

  1. Centos定时启动和清除任务

    因为需要定时并发执行任务,所以查到了crontab这个工具,介绍一下其用法: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=roo ...

  2. react-dom.js 源码

    /** *以下这是 react-dom.js 的源代码 * ReactDOM v15.3.1 * * Copyright 2013-present, Facebook, Inc. * All righ ...

  3. ajax常用实例代码总结新手向参考(一)

    http的交互方法有四种:get.post.put(增加数据).delete(删除数据) put和delete实现用的是get和post   get方式 页面不能被修改,只是获取查询信息.但是提交的数 ...

  4. Hi3531支持2GByte内存

    型号为K4B4G1646B-HCKO 1.修改DDRC_RNKCFG 为 0x142 2.修改arch/arm/mach-godnet/include/mach/vmalloc.h 扩大 vmallo ...

  5. WaitForSingleObject函数

    WaitForSingleObject函数 VC声明 DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); VB声明 D ...

  6. 初试 Windows XP Embedded 系统开发1

    目前 Windows PE(Preinstallation Environment)和 Windows XP Embedded 是可以脱离主机里的硬盘独立运行的 Windows 操作系统,Window ...

  7. JavaScript解决select下拉框中的内容太长显示不全的问题

    JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...

  8. 使用promise方式写settimeout

    //使用promise方式写settimeout, //好处就是用于写动画的时候只需知道后一个的动画在前一个动画结束后多久执行 console.time('settimeout:');//开始计算这段 ...

  9. freemark声明变量,boolean,date,date日期格式转换成String类型的(五)

    <br/>assign用来定义变量<#assign name="刘德华"><br/> 获取assign定义变量的值:${name} <br ...

  10. React+webpack-Module Parse failed, Unexpected Character ‘ ’

    webpack.config.js中配置: { test: /\.scss$/, loaders: [ 'style-loader', 'css-loader', 'sass-loader' ], / ...