专栏首页python3Redis-3. Redis高级命令

Redis-3. Redis高级命令

高级命令三:主从复制

1、主从复制:目的是实现读写分离

·Master可以拥有多个slave

·多个slave可以连接同一个Master外,还可以连接其他的slave

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

·提高系统的延伸性

2、主从复制过程:

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

2)master开启后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存;

3)后台完成保存后,就将文件发送给slave;

4)slave将此文件保存到硬盘上;

3、主从复制配置:

准备3台linux服务器,分别192.168.90.121(主)、192.168.90.122、192.168.90.123;分别安装redis;

步骤:修改redis.conf配置文件

第一步:slaveof <masterIp> <masterport> 举例:slaveof 192.168.1.121 6379

第二部:masterauth<master-password>   举例:masterauth wlan

高级命令四:哨兵

  在主从复制以后,如果想对主从服务器进行监控,实现高可用。redis2.6以后提供了一个哨兵机制。哨兵的含义就是监控redis系统的运行状况,主要功能有两点:

1. 监控主数据库和从数据库是否运行正常。

2. 主服务器出现故障时,可以自动将从服务器转换为主服务器。

实现步骤:在其中一台从服务器中或者另外用别的服务器进行配置

(1)修改sentinel.conf配置文件

# sentinel monitor <master-name> <ip> <redis-port> <quorum>

sentinel monitor mymaster 192.168.1.121  6379 2  //名称 IP 端口号 投票选举次数

# sentinel down-after-milliseconds <master-name> <milliseconds>

sentinel down-after-milliseconds mymaster 5000 //默认多久检测一次主节点

# sentinel failover-timeout <master-name> <milliseconds>

sentinel failover-timeout mymaster 180000

# sentinel parallel-syncs <master-name> <numslaves>

sentinel parallel-syncs mymaster 2  //从节点数量

# sentinel auth-pass <master-name> <password>

sentinel auth-pass mymaster wlan

(2)启动sentinel哨兵

[root@wlan121 bin]# redis-server /usr/local/redis/etc/sentinel.conf --sentinel &

(3)查看哨兵相关信息

[root@wlan121 bin]# redis-cli -h 192.168.1.122 -p 26379 info Sentinel

高级命令六:持久化

   redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化

redis持久化的两种方式:

(1)snapshotting快照方式,默认。将内存以快照的方式写入到二进制文件中。默认为dump.rdb。可以配置redis在n秒内如果超过m个key则修改就自动做快照。快照方式是一定时间间隔做一次

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存

save 300 10 #300秒内如果超过10个key被修改,则发起快照保存

(2)append-only file(aof)的方式,由于快照方式是在一定时间间隔做一次,所以可能会发生redis意外down的情况就会丢失最后一次快照后所有修改的数据。而使用aof时,该机制以日志的形式记录服务器所处理的每一个写操作,在redis服务器启动之初读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。文件在bin目录下:appendonly.aof。aof不是立即写到硬盘上。可以通过配置文件修改强制写到硬盘中。

aof设置:

1)appendonly yes  //启动aof持久化方式有三种修改方式

2)追加的模式

appendfsync always //收到写命令就立即写入磁盘,效率慢但是保证了完全的持久化

appendfsync  everysec //每秒写入磁盘一次,在性能和持久化做了做好的折中

appendfsync no  //从不同步。高效但是数据不会被持久化

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python实战系列之ip地址排序问题(

       从openstack的nova list中获取了虚拟机的ip地址,但这些ip都没有排序和分组,为了进一步增强可读性,对ip地址执行排序操作,在shell下...

    py3study
  • 由 Python2 和 Python3

    这几天在做一个功能实现的时候,需要把别人用 Python2.6 写好的脚步转成 Python3.4 实现,大部分地方转化都没啥问题,但是在 socket.ine...

    py3study
  • Python的定时器

     在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:

    py3study
  • TLS 1.3 Handshake Protocol (下)

    正如我们在 section-2 中讨论的,TLS 使用一组通用的消息用于身份验证,密钥确认和握手的正确性:Certificate, CertificateVer...

    一缕殇流化隐半边冰霜
  • 如何通过网站获取航班信息及价格?

    在我们平时有时候需要从一些网站获取一定的价格做参考。我们以空运报价网飞啊网来说,很多公司会通过此网站进行一些市场价格的参考,虽然有时候上网站查询也比较方便,但是...

    逍遥之
  • 《Kotin 极简教程》第8章 函数式编程(FP)(2)

    好了亲,前文中我们在函数式编程的世界里遨游了一番,现在我们把思绪收回来,放到在Kotlin中的函数式编程中来。

    一个会写诗的程序员
  • Kotlin之基本语法

    在今年Google IO大会上Google已经明确kotlin作为为Android第一官方语言的地位。我相信Google的决意,就像当初毫不犹豫的抛弃eclip...

    xiangzhihong
  • Kotlin修炼指南(二):lambda表达式的精髓

    lambda表达式是Kotlin函数式编程的一个重要概念,要想掌握函数式编程,就必须熟练掌握lambda表达式,并掌握它的各种写法和实现,这些都是掌握函数式编程...

    用户1907613
  • Python基础【高阶函数】

    py3study
  • Kotlin之基本语法

    在今年Google IO大会上Google已经明确kotlin作为为Android第一官方语言的地位。我相信Google的决意,就像当初毫不犹豫的抛弃eclip...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券