config set appendonly  yes  临时生效

如果想永久生效的话,执行

config rewrite

并不是所有的都支持修改

config set bind ip  修改bind参数会报错

(error) ERR Unsupported CONFIG parameter:bind  只能通过配置文件修改

redis主从复制

特点

1.一台master 可以拥有多个slave (1对多的关系)

2.多个slave 可以连接同一个master 外,还可以连接到其他slave (这样做的原因是如果masterdown 掉之后,

其中的一台slave立马可以充当master的角色,这样整个服务器流程不受影响)

3.主从复制不会阻塞master,在同步数据的同时,master 可以继续处理client 请求

4.提高系统的伸缩性

redis主从复制的过程:

1.slave 与master 建立连接,发送sync同步命令

2.master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新得写命令

并缓存

3.后台完成保存后,将文件发送给slave

4.slave 将文件保存到硬盘上

redis 主从复制配置和使用都非常简单,通过主从复制可以允许多个slave server拥有和mater server相同的数据库副本.下面是redis主从复制的一些特点

a.master可以有多个slave

b.除了多个slave连接到相同的master外,slave也可以连接其他slave形成图状结构

c .主从复制不会阻塞master,也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求

相反slave在初次同步数据时则会阻塞不能处理client的请求

d.主从复制可以用来提高系统的可以伸缩性,我们可以用多个slave 专门用于client的读请求 比如sort操作可以使用slave来处理,也可以用来做简单的数据冗余

e 可以在master 禁用数据持久化,只需注释掉master配置文件中的所有save配置,然后只在slave上配置数据持久化

首先修改主的配置文件

vim   /etc/redis/7000.conf    将bind注释掉

然后启动7000端口的redis服务  redis-server  /etc/redis/7000.conf

vim /etc/redis/7001.conf

将 slaveof改成       slaveof 127.0.0.1 7000  指向主服务器的端口

然后启动 7001 端口的redis服务   redis-server /etc/redis/7001.conf

通过客户端工具

redis-cli -p 7000 info  查看主的状态

# Replication
role:master     master
connected_slaves:1    从机的个数为 1个
slave0:ip=127.0.0.1,port=7001,state=online,offset=155,lag=0     状态为 online
master_repl_offset:155
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:154

redis-cli -p 7001 info  查看从的状态

# Replication
role:slave
master_host:127.0.0.1
master_port:7000
master_link_status:up        状态为 up 
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:225
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

检查是否同步

先连接主服务 ,并设定两个值

[root@zhu4 redis]# redis-cli -p 7000

127.0.0.1:7000> set s1 zhuchenghan
OK
127.0.0.1:7000> set s2 zhangqidong
OK
127.0.0.1:7000>
127.0.0.1:7000> get s1
"zhuchenghan"
127.0.0.1:7000>
127.0.0.1:7000> get s2
"zhangqidong"
127.0.0.1:7000>
127.0.0.1:7000>
127.0.0.1:7000> mget s1 s2
1) "zhuchenghan"
2) "zhangqidong"

在从服务器上进行验证 并且从服务器只能读

[root@zhu4 ~]# redis-cli -p 7001
127.0.0.1:7001>
127.0.0.1:7001>
127.0.0.1:7001>
127.0.0.1:7001> get s1
"zhuchenghan"
127.0.0.1:7001>
127.0.0.1:7001> get s2
"zhangqidong"
127.0.0.1:7001>
127.0.0.1:7001> mget s1 s2
1) "zhuchenghan"
2) "zhangqidong"
127.0.0.1:7001>
127.0.0.1:7001> set s1 a
(error) READONLY You can't write against a read only slave.  (只读)

在主上修改 key 值  s1

127.0.0.1:7000> set s1 www.baidu.com
OK
127.0.0.1:7000>
127.0.0.1:7000> get s1

在从上验证 s1

127.0.0.1:7001> get s1
"www.baidu.com"

说明主从同步 没问题

可以再添加一条 把 其变更 主-从--从

此时我们如果将主 7000端口的服务给停掉,这时候  从 7001 就down掉了

我们如果修改7001 的/etc/redis/7001.conf 的配置文件 将slaveof 给删除或注释掉以后

再重新启动 7001 此时 7001 的状态就为 master 了

redis通过命令传参以及主从复制的更多相关文章

  1. php命令传参

    1.url方式 $param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $ ...

  2. Jinkins流水线脚本使用curl命令调用服务接口,并且使用url传参。

    curl http://xxx.xx.xx.xx:xxxx/jenkins/publish?fileName=${fileName}&tag_name=${tag_name} 如图调用不符合c ...

  3. Redis 笔记与总结5 Redis 常用命令之 键值命令 和 服务器命令 && 高级应用之 安全性 和 主从复制

    Redis 提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在 Linux 终端使用. 1. 键值相关命令: 2. 服务器相关命令 键值相关命令 ① keys 命令 返回满足给定 pat ...

  4. 在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法

    原文:在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法 前端页面: <Style x:Key="ThumbItemStyle" TargetT ...

  5. Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参

    Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入 ...

  6. Android使用Gradle命令动态传参完成打包,不需要修改代码

    不得不说,Gradle很强大,有人会问Gradle是什么?这里也不细讲,在我认为他就是一个构建神器.Gradle 提供了: 一个像 Ant 一样的非常灵活的通用构建工具 一种可切换的, 像 Maven ...

  7. python paramiko外部传参和内部调用命令的方法

    学习了很久的python,但在工作中使用的时候,却发现不知道怎么传参进入到python中执行,所以这两天就研究 了python args怎么将外部参数传入到python中执行 1.首先使用python ...

  8. 关于pytest的命令行传参

    #conftest.py import pytest def pytest_addoption(parser): #parser:用户命令行参数与ini文件值的解析器 # group = parser ...

  9. expect脚本远程登录、远程执行命令和脚本传参简单用法

    expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...

随机推荐

  1. 2019牛客多校第三场H-Magic Line

    Magic Line 题目传送门 解题思路 因为坐标的范围只有正负1000,且所有点坐标都是整数,所以所有点相连构成的最大斜率只有2000,而我们能够输出的的坐标范围是正负10^9.所以我们先把这n个 ...

  2. FreeBSD_11-系统管理——{Part_a-bhyve}

    ;; 创建 vm: #!/usr/bin/env zsh bridgeIF=bridge0 laggIF=lagg0 tapIF=tap0 phyIF_0=re0 phyIF_1=em0 isoPat ...

  3. 剑指offer——58数组中数值和下标相等的元素

    题目三: 数组中数值和下标相等的元素. 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数 ...

  4. delphi文件后缀全解

    delphi文件后缀全解 1. 项目文件(.dpr):Delphi项目文件,用于保存窗体.单元等的信息,以及程序运行的初始化代码等,这种文件实际上包含了Pascal源代码. 2. 单元文件(.pas) ...

  5. sublimeText3的安装及插件的配置使用

    这里主要记录一些关于sublime text的配置,并且参照了别人的博客归纳的. 一.下载sublime text   http://www.sublimetext.com/3二.安装Package ...

  6. 从零开始学Jqueue

    http://www.cnblogs.com/zhangziqiu/archive/2009/04/30/jQuery-Learn-1.html

  7. C语言结构体嵌套

    #include <stdio.h> int main() { /*************************************************** *结构体嵌套:结构 ...

  8. 2019-4-26-VisualStudio-开发文件自定义工具单文件生成工具

    title author date CreateTime categories VisualStudio 开发文件自定义工具单文件生成工具 lindexi 2019-04-26 10:49:32 +0 ...

  9. Tools: CGAL 安装指南

    环境:Microsoft Win7 SP1 Visual Studio 2015 SP3 参考: https://blog.csdn.net/milkpku/article/details/50241 ...

  10. leetcood学习笔记-257-二叉树的所有路径

    题目描述: 第一次提交:参考113-路径总和② class Solution: def binaryTreePaths(self, root: TreeNode) -> List[str]: r ...