Redis主从配置及测试
2018-01-09 14:35
141 查看
下载相应版本安装包
我这里使用的是redis-3.2.9版本
官网下载地址:http://download.redis.io/releases/redis-3.2.9.tar.gz
安装
1.主机环境
2.上传安装包
使用上传工具上传
3.解压
[root@jia3 ~]# tar -xvf redis-3.2.9.tar.gz
[root@jia3 ~]# cd redis-3.2.9
4.编译安装
[root@jia3 redis-3.2.9]# cd src
[root@jia3 src]# make install PREFIX=/app/redis
5.创建目录,拷贝配置文件
[root@jia3 src]# mkdir /app/redis/{conf,data,log}
[root@jia3 src]# cd ..
[root@jia3 redis-3.2.9]# cp redis.conf /app/redis/conf/
[root@jia3 redis-3.2.9]# cp sentinel.conf /app/redis/conf/
6.另一台主机做相同安装操作
配置
需要修改103,104两台主机上的/app/redis/conf/redis.conf文件:
将 bind 127.0.0.1 改为 bind 0.0.0.0
将 daemonize no 改为 daemonize yes
将 logfile "" <
4000
/span>改为 logfile "/app/redis/log/redis.log"
将 dir ./ 改为 dir /app/redis/data/
修改104机器上的/app/redis/conf/redis.conf文件添加如下一行:
slaveof 192.168.10.103 6379
Redis的详解配置
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
启动测试
启动两台机器上的redis服务:
[root@jia3 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
[root@jia4 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
查看状态:
103机器, 主redis
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103
192.168.10.103:6379> info replication #查看主从复制段信息
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.10.104,port=6379,state=online,offset=169,lag=0
master_repl_offset:169
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:168
104机器, 从redis
[root@jia4 bin]# /app/redis/bin/redis-cli -h 192.168.10.104
192.168.10.104:6379> info replication #查看主从复制段信息
# Replication
role:slave
master_host:192.168.10.103
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:239
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
测试数据同步:
103机器, 主redis
192.168.10.103:6379> set key1 abc
OK
192.168.10.103:6379> get key1
"abc"
104机器, 从redis
192.168.10.104:6379> get key1 #已经同步了key1,可以获取到
"abc"
从库默认只读:
104机器, 从redis
192.168.10.104:6379> set key2 def
(error) READONLY You can't write against a read only slave.
主从切换
1.停掉主库103机器的redis服务
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103 shutdown
2.将从库104机器的redis服务变成主库
192.168.10.104:6379> slaveof no one
OK
192.168.10.104:6379> info replication
# Replication
role:master
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
变成主库之后可以进行写入:
192.168.10.104:6379> set key3 aaa
OK
192.168.10.104:6379> get key3
"aaa"
192.168.10.104:6379> save
OK
3.原来的主redis恢复正常了,要重新切换回去
1)将现在的主redis(104机器)的数据进行保存
192.168.10.104:6379> save
OK
2)将现在的主redis(104机器)数据目录下dump.rdb文件拷贝覆盖到原来主redis的根目录
[root@jia4 data]# scp /app/redis/data/dump.rdb 192.168.10.103:/app/redis/data/
3)启动原来的主redis(103机器)
[root@jia3 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103
192.168.10.103:6379> get key3 #数据是一致的
"aaa"
4)在现在的主redis中切换(104机器)
192.168.10.104:6379> slaveof 192.168.10.103 6379 #将104变成103的从库,恢复初始状态
OK
192.168.10.104:6379> info replication
# Replication
role:slave
master_host:192.168.10.103
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:43
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
我这里使用的是redis-3.2.9版本
官网下载地址:http://download.redis.io/releases/redis-3.2.9.tar.gz
安装
1.主机环境
主机名 | IP地址 | 操作系统 |
---|---|---|
jia3.ty.com | 192.168.10.103 | CentOS release 6.6 (Final) |
jia4.ty.com | 192.168.10.104 | CentOS release 6.6 (Final) |
使用上传工具上传
3.解压
[root@jia3 ~]# tar -xvf redis-3.2.9.tar.gz
[root@jia3 ~]# cd redis-3.2.9
4.编译安装
[root@jia3 redis-3.2.9]# cd src
[root@jia3 src]# make install PREFIX=/app/redis
5.创建目录,拷贝配置文件
[root@jia3 src]# mkdir /app/redis/{conf,data,log}
[root@jia3 src]# cd ..
[root@jia3 redis-3.2.9]# cp redis.conf /app/redis/conf/
[root@jia3 redis-3.2.9]# cp sentinel.conf /app/redis/conf/
6.另一台主机做相同安装操作
配置
需要修改103,104两台主机上的/app/redis/conf/redis.conf文件:
将 bind 127.0.0.1 改为 bind 0.0.0.0
将 daemonize no 改为 daemonize yes
将 logfile "" <
4000
/span>改为 logfile "/app/redis/log/redis.log"
将 dir ./ 改为 dir /app/redis/data/
修改104机器上的/app/redis/conf/redis.conf文件添加如下一行:
slaveof 192.168.10.103 6379
Redis的详解配置
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
启动测试
启动两台机器上的redis服务:
[root@jia3 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
[root@jia4 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
查看状态:
103机器, 主redis
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103
192.168.10.103:6379> info replication #查看主从复制段信息
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.10.104,port=6379,state=online,offset=169,lag=0
master_repl_offset:169
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:168
104机器, 从redis
[root@jia4 bin]# /app/redis/bin/redis-cli -h 192.168.10.104
192.168.10.104:6379> info replication #查看主从复制段信息
# Replication
role:slave
master_host:192.168.10.103
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:239
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
测试数据同步:
103机器, 主redis
192.168.10.103:6379> set key1 abc
OK
192.168.10.103:6379> get key1
"abc"
104机器, 从redis
192.168.10.104:6379> get key1 #已经同步了key1,可以获取到
"abc"
从库默认只读:
104机器, 从redis
192.168.10.104:6379> set key2 def
(error) READONLY You can't write against a read only slave.
主从切换
1.停掉主库103机器的redis服务
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103 shutdown
2.将从库104机器的redis服务变成主库
192.168.10.104:6379> slaveof no one
OK
192.168.10.104:6379> info replication
# Replication
role:master
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
变成主库之后可以进行写入:
192.168.10.104:6379> set key3 aaa
OK
192.168.10.104:6379> get key3
"aaa"
192.168.10.104:6379> save
OK
3.原来的主redis恢复正常了,要重新切换回去
1)将现在的主redis(104机器)的数据进行保存
192.168.10.104:6379> save
OK
2)将现在的主redis(104机器)数据目录下dump.rdb文件拷贝覆盖到原来主redis的根目录
[root@jia4 data]# scp /app/redis/data/dump.rdb 192.168.10.103:/app/redis/data/
3)启动原来的主redis(103机器)
[root@jia3 bin]# /app/redis/bin/redis-server /app/redis/conf/redis.conf
[root@jia3 bin]# /app/redis/bin/redis-cli -h 192.168.10.103
192.168.10.103:6379> get key3 #数据是一致的
"aaa"
4)在现在的主redis中切换(104机器)
192.168.10.104:6379> slaveof 192.168.10.103 6379 #将104变成103的从库,恢复初始状态
OK
192.168.10.104:6379> info replication
# Replication
role:slave
master_host:192.168.10.103
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:43
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
相关文章推荐
- Redis主从复制配置及测试
- redis安装以及主从的简单配置测试
- Redis主从复制配置以及容灾测试
- Redis 学习笔记(三):主从复制、主从配置和性能测试
- Linux下Redis主从复制的配置方法(测试方法)
- redis安装配置,数据类型测试,连接方式测试和主从配置测试。
- linux下redis的安装配置测试
- redis 配置主从(master-slave)服务器
- Redis主从复制和集群配置系列之六(redis集群节点新增、删除、重新分配slot实战)
- Redis主从集群的Sentinel配置
- Redis原理主从配置解析
- Redis教程(九):主从复制配置实例
- Redis集群_主从配置
- redis的主从复制配置
- Linux下Redis主从复制(master-slave)配置
- redis配置主从备份以及主备切换方案配置
- redis主从配置及主从切换
- redis介绍、主从配置
- 【Redis】配置redis主从复制
- redis 主从集群说明及配置