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. Centos 7 技巧

    查看系统版本详细信息 lsb_release -a 更改邮件MTA alternatives --config mta

  2. VIM编辑器进阶配置

    vim自定义设置        可以选择需要的功能添加至 ~/.vimrc 打开注释使之生效. " 让 vim 关闭所有扩展的功能,尽量模拟 vi 的行为. set nocompatible ...

  3. Stack,ArrayDeque,LinkedList的区别

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     这段时间把疯狂JAVA再看了一遍,发现Stac ...

  4. 2019ICPC南京网络赛A The beautiful values of the palace

    题意:蛇形填数超大版本,需要求出一些给定坐标的值的数位和,然后q次询问,一个矩形区域内值的和是多少 解题思路:二维偏序前缀和的经典题 二维偏序:求(x,y)左下角点的个数,思路是对x,y升序排序,用树 ...

  5. dp思维

    题目传输门 题意:有n个房间,m个诅咒,每个房间有一个数值,刚开始有一个初始值,每次进入一个房间可以选择消除诅咒或者不消除,消除诅咒只能顺序消除,消除诅咒就是拿初始值和房间的数值做运算,求最后最大的数 ...

  6. hdu6350 /// tarjan+并查集+组合+最大流思想

    题目大意: 给定n个点 m条边没有重边的仙人掌图(没有一条边会同时存在与两个环 也就是环都是相互独立的) 求任意两点间 i^j^maxflow(i,j)的总和 maxflow为两点间最大流 题解:ht ...

  7. unix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL - 用于本地内部进程通讯的套接字。

    SYNOPSIS(总览) #include <sys/socket.h> #include <sys/un.h> unix_socket = socket(PF_UNIX, t ...

  8. 提升方法(boosting)详解

    提升方法(boosting)详解 提升方法(boosting)是一种常用的统计学习方法,应用广泛且有效.在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性 ...

  9. vue 外卖app(3) 引入阿里图标

    1.登陆阿里图标官网 2.点击搜索按钮,输入你想要搜索的图标,加入购物车,保存到项目中 3.在项目中使用

  10. springBoot项目mybatis中加入缓存

    1:maven: <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache-core --> <dependenc ...