redis主从搭建

                                                                                                  redis主从搭建

     达到目的:用sentinel嗅探主服务器状态,如果down了,十秒钟内完成切换,将slave升为master,当master再次启动时,变成slave状态

主服务器:192.168.2.20

从服务器:192.168.2.21

主服务器操作:

    1、关闭防火墙和Selinux

    2、yum -y install gcc   //编译时需要用到gcc

 3、下载安装包

wget  http://download.redis.io/releases/redis-3.2.8.tar.gz  

4、解压文件

tar -zxf  redis-3.2.8.tar.gz  -C  /usr/src/ 

5、编译安装

/usr/src/redis-3.2.8/
make 
make install

6、创建数据文件及日志存放的目录

mkdir -p /home/data/redis6379/pid
mkdir -p /home/data/redis6379/logs
mkdir -p /home/data/redis6379/data
mkdir -p /home/data/redis6379/conf

7、主库的配置文件

[root@localhost conf]# cat redis-6379.cnf 
daemonize yes
pidfile /home/data/redis6379/pid/redis-6379.pid
port 6379
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile /home/data/redis6379/logs/redis-6379.log
databases 16
lua-time-limit 5000
maxclients 10000
protected-mode yes
dir /home/data/redis6379/data
 
###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128
 
###内存参数###
maxmemory 8G
maxmemory-policy volatile-lru
 
###RDB持久化参数###
save 3600 1
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6379.rdb"
###客户端Buffer参数### 
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
 
###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0
hz 10
 
###安全参数###
requirepass  123456789
masterauth 123456789
rename-command KEYS REDIS_KEYS
rename-command FLUSHDB REDIS_FLUSHDB
rename-command FLUSHALL REDIS_FLUSHALL

从库的配置文件:

[root@db3 conf]# cat redis_6379.conf 
daemonize yes
pidfile /home/data/redis6379/pid/redis-6379.pid
port 6379
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile /home/data/redis6379/logs/redis-6379.log
databases 16
lua-time-limit 5000
maxclients 10000
protected-mode yes
dir /home/data/redis6379/data
 
###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128
 
###内存参数###
maxmemory 8G
maxmemory-policy volatile-lru
 
###RDB持久化参数###
save 3600 1
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6379.rdb"
###客户端Buffer参数### 
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
 
###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0
hz 10
 
###安全参数###
requirepass  123456789
masterauth 123456789
rename-command KEYS REDIS_KEYS
rename-command FLUSHDB REDIS_FLUSHDB
rename-command FLUSHALL REDIS_FLUSHALL
#replication
slaveof 192.168.2.21 6379
masterauth beijing
slave-serve-stale-data yes
slave-read-only yes
repl-ping-slave-period 10
repl-timeout 60
repl-disable-tcp-nodelay no
slave-priority 100

 

 

 

8、启动redis服务 

   可以为redis服务启动指定配置文件:

[root@localhost redis-3.2.8]# cd src/
[root@localhost src]# ./redis-server /home/data/redis6379/conf/redis-6379.cnf 
[root@localhost src]# ps -ef | grep redis
root      8655     1  0 16:01 ?        00:00:00 ./redis-server 0.0.0.0:6379
root      8659 29208  0 16:01 pts/0    00:00:00 grep --color=auto redis
[root@localhost src]# lsof -i:6379
COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
redis-ser 8655 root    4u  IPv4 12444757      0t0  TCP *:6379 (LISTEN)
[root@localhost src]# pwd
/usr/src/redis-3.2.8/src

9.redis客户端连接

redis客户端连接成功,但是操作报异常——(error) NOAUTH Authentication required 
错误的含义是说你没有认证,说明没有使用密码连接

查看密码:

cat redis-6379.cnf

再次连接客户端:

[root@localhost src]# ./redis-cli -h 192.168.2.20 -a 123456789
192.168.2.20:6379> 

主库查看:

[root@localhost src]# ./redis-cli -h 192.168.2.20 -a 123456789
192.168.2.20:6379> get  name
(nil)
192.168.2.20: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.2.21:6379> info replication
# Replication
role:slave
master_host:192.168.2.21
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:1
master_link_down_since_seconds:1527755943
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

 

posted @ 2018-05-31 16:46  bianxiaobian  阅读(142)  评论(0)    收藏  举报