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. jQuery 实现复选框全选、反选及获取选中的值

    实现复选框全选,反选及获取选中的值: 代码如下: <!doctype html> <html lang="en"> <head> <met ...

  2. Spring Boot多数据库配置

    #datasourcespring.datasource.url=jdbc:mysql://120.26.246.185:3306/gaea?&useSSL=falsespring.datas ...

  3. HBase1.0.0 实现数据增删查

    HBase1.0.0 即Hadoop 2.6 采用maven 的方式实现HBase数据简单操作 import java.io.IOException; import java.util.ArrayLi ...

  4. Spring Boot Dubbo 应用启停源码分析

    作者:张乎兴 来源:Dubbo官方博客 背景介绍 Dubbo Spring Boot 工程致力于简化 Dubbo | grep tid | grep -v "daemon" tid ...

  5. mount 挂载

    mount 挂载出现 这是咋回事.找了找度娘,说是磁盘没有格式化.好吧,mkfs ext4 /dev/sda4 ,提示 没有有效的快给格式化,好奇怪啊,昨天明明分号区了,我记错了. fdisk看一下, ...

  6. spark-sql中的分析函数的使用

    分析函数的应用场景: (1)用于分组后组内排序 (2)指定计算范围 (3)Top N (4)累加计算 (5)层次计算 分析函数的一般语法: 分析函数的语法结构一般是: 分析函数名(参数)  over  ...

  7. python代码{v: k for k, v in myArray.items()}是什么意思?

    最近在扒vnpy的源码总能看到{v: k for k, v in ORDERTYPE_VT2HUOBI.items()}这样的源码,就是不知道什么意思 然后万能的google找到了Quora的一个类似 ...

  8. leetcode-数组的相对排序

    Python解法: def relativeSortArray(arr1, arr2): arr = [0 for _ in range(110)] new = [] for a in range(l ...

  9. Batch - FINDSTR

    总结 Searches for strings in files. 在文件中寻找特定的字符串 官方文档 C:\Users\cuixunxu>FINDSTR /? Searches for str ...

  10. 【设计】schema

    Schema:表的模式:   设计数据的表,索引,以及表和表的关系 在数据建模的基础上将关系模型转为数据库表 满足业务模型需要基础上根据数据库和应用特点优化表结构   关系模型图:   Schema关 ...