redis主从配置

一、主从搭建
在一台服务器上,搭建redis主从(一主一备)
下载地址:https://redis.io/download
1,[root@k8master02 ~]# cd /data/
[root@k8master02 data]# mkdir redis
[root@k8master02 data]# cd redis/
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make
make完后 redis-5.0.3目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录src目录下。
2,建立两个目录用来存放两个主从节点的数据
[root@k8master02 redis]# mkdir 6000
[root@k8master02 redis]# mkdir 6001
[root@k8master02 redis]# scp -R redis-5.0.3 6000/
[root@k8master02 redis]# scp -R redis-5.0.3 6001/
3,分别进入到两个目录下,修改redis.conf文件
6000目录下,修改端口号6000
port 6000
6001目录下,修改端口号6001
port 6001
slaveof 127.0.0.1 6000    #指定主库是127.0.0.1,端口是6000
4,修改环境变量
vim /etc/profile
添加一行
export PATH=/data/redis/redis-5.0.3/src:$PATH
5,分别启动6000和6001端口两个redis
[root@k8master02 ~]# redis-server /data/redis/6000/redis-5.0.3/redis.conf &
[root@k8master02 ~]# redis-server /data/redis/6001/redis-5.0.3/redis.conf &
[root@k8master02 ~]# ps -ef|grep redis
root       6672   5839  0 21:43 pts/4    00:00:00 redis-server 127.0.0.1:6000
root       6682   5839  0 21:43 pts/4    00:00:00 redis-server 127.0.0.1:6001
6,测试
在6000上新建一个key
[root@k8master02 ~]# redis-cli -c -p 6000
127.0.0.1:6000> set foo bar
OK
127.0.0.1:6000> get foo
"bar"
在6001上可以查到
[root@k8master02 ~]# redis-cli -c -p 6001
127.0.0.1:6001> get foo
"bar"
二、redis持久化配置
持久化: 即把数据存储于断电后不会丢失的设备中,通常是硬盘。
redis的持久性有2种方式
1,快照
2,日志
常见的持久化方式:
1,主从:通过从服务器保存和持久化,如mongoDB的replication sets配置
2,日志:操作生成相关日志,并通过日志来恢复数据,couchDB对于数据内容,不修改,只追加,则文件本身就是日志,不会丢失数据。
一、rdb快照
rdb的工作原理:    实际上就是内存快照的形式。
每隔N分钟或N次写操作后,从内存dump数据形成rdb文件,压缩放在备份目录
注:红色部分可通过参数来配置
配置选项
save 900 1  #900内,有1条写入,则产生快照
save 300 1000 #如果300秒内有1000次写入,则产生快照
save 60 10000  #如果60秒内有10000次写入,则产生快照
(这3个选项都屏蔽,则rdb禁用)
stop-writes-on-bgsave-error yes  #后台备份进程出错时,主进程停不停止写入?  主进程不停止 容易造成数据不一致
rdbcompression yes   #导出的rdb文件是否压缩    如果rdb的大小很大的话建议这么做
Rdbchecksum yes   #导入rbd恢复时数据时,要不要检验rdb的完整性 验证版本是不是一致   
dbfilename dump.rdb   #导出来的rdb文件名
dir ./  #rdb的放置路径
在2个保存点之间断电,将会丢失1-N分钟的数据,对于商业上面的应用,丢失的数据就是个disaste。但是这个方式下数据恢复的比较快。  
建议使用 rdb 跟 aof 配合使用。
出于对持久化的更精细要求,redis增添了aof方式 append only file
二、Aof
配置 aof 主要记录执行的命令     
aof文件的路径直接修改 跟 rdb不一样 rdb 修改有单独的配置选项:dir选项。
appendonly no       #是否打开aof日志功能     aof跟  rdb都打开的情况下
appendfsync always  #每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec  #折衷方案,每秒写1次
appendfsync no  #写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快,
no-appendfsync-on-rewrite yes  #正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100  #aof文件大小比起上次重写时的大小,增长率100%时,重写  缺点  刚开始的时候重复重写多次
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
三、注意的事项
注: 在dump rdb过程中,aof如果停止同步,会不会丢失?
答: 不会,所有的操作缓存在内存的队列里,dump完成后,统一操作。
注: aof重写是指什么?
答: aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里。为了解决aof日志过大的问题.
问: 如果rdb文件,和aof文件都存在,优先用谁来恢复数据?
答: aof
问: 2种是否可以同时用?
答: 可以,而且推荐这么做
问: 恢复时rdb和aof哪个恢复的快
答: rdb快,因为其是数据的内存映射,直接载入到内存。而aof是命令,需要逐条执行
单用rdb缺点是:会丢失1-N分钟的数据,优点是:恢复的时候快
单用Aof缺点是:写入量大,rewrite(重写)的时候,容易耗很多内存。并且恢复的时候还会很慢。优点是:最多只会丢失1s中的时间
所以推荐使用rdb+aof的方式



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31447263/viewspace-2641143/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31447263/viewspace-2641143/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值