Redis-3. Redis高级命令



高级命令三:主从复制linux


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

·Master能够拥有多个slave数据库

·多个slave能够链接同一个Master外,还能够链接其余的slave缓存

·主从复制不会阻塞master,在同步数据时,master能够继续处理client请求服务器

·提升系统的延伸性app


二、主从复制过程:ide


1)slave与master创建链接,发送sync同步命令;性能

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

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

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


三、主从复制配置:


准备3台linux服务器,分别192.168.90.121(主)、192.168.90.12二、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  //从不一样步。高效可是数据不会被持久化

相关文章
相关标签/搜索