q986 发表于 2018-11-3 09:26:54

redis主从配置及手动切换遇到的问题

  解析我做redis主从遇到的问题:
  redis只要下载好压缩包后解压缩然后make就可以直接使用了,启动服务是:
/usr/local/src/redis/src/redis-server  然后进入交互界面是:
/usr/lcoal/src/redis/src/reids-cli  假如没有更改port那么默认监听6379端口,如果改了,登录时务必在后面-p端口号。才能登录。
  然后如果更改了redis.conf文件那么启动时:
/usr/local/src/redis/src/redis-server/usr/local/src/redis/redis.conf  这样才能出发配置。
  接下来开始配置主从:
  1、修改主redis的配置文件:
daemonize yes  
bind 127.0.0.1    ###要么把这句屏蔽掉,要么后面的ip改为自己的,但是登录时又要-h加上IP地址。
  
protected-mode no    ##要么改为no,要么就添加认证,那么在登录时就要先验证才能登陆。
  2、修改从redis的配置文件:
daemonize yes  
port 6380    ##改变下端口
  
logfile "/usr/local/src/redis.log"    ##redis默认是不记录日志的,这里写一个日志的路径,好排错。
  
slaveof 192.168.40.12 6379   ##设置为40.12的从redis。
  然后两台服务器都启动:
# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf  
# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf
  登录然后测试一下同步:
# /usr/local/src/redis-3.2.1/src/redis-cli  
127.0.0.1:6379> set test 123
  
OK
  
127.0.0.1:6379> get test
  
"123"
  
# /usr/local/src/redis-3.2.1/src/redis-cli -p 6380
  
127.0.0.1:6380> get test
  
"123"
  如果出现错误可以查看一下日志:/usr/lcoal/src/redis.log
  如果要设置验证,在配置文件中修改一下:
requirepass redhat   ##取消这一句的注释,然后后面改为自己的密码。  
重新启动。
  
但是下次登录时,什么也做不了,要么:
  
auth   redhat##登录后先输入一句,验证。
  或者是在登录时加上-aredhat   这样就可以了。
  持久化:
  rdb:
  配置文件默认开启:
save 900 1  
save 300 10
  
save 60 10000
  会在安装目录下生成一个dump.rdb文件,这就是保存着缓存数据的文件。
  rdb适合恢复大规模数据,但是恢复数据的完整性不高。
  aof(默认不开启):
修改配置文件:  
appendonly yes
  
appendfsync everysec    ##每秒写入一次。
  主从切换:
  停止主的服务。
  然后在从操作:
127.0.0.1:6380> slaveof no one  
127.0.0.1:6380> 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
127.0.0.1:6380> set name lsf  
OK
  
127.0.0.1:6380> set host redhat
  
OK
  
127.0.0.1:6380>
  
127.0.0.1:6380> save
  
OK
  然后把dump.rdb复制到原来的主redis:
# scp dump.rdb centosa:/usr/local/src/redis-3.2.1/  
dump.rdb
  启动原来的主服务器:
# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf  然后看一下keys;
# /usr/local/src/redis-3.2.1/src/redis-cli  
127.0.0.1:6379>
  
127.0.0.1:6379> keys *
  
1) "mylist"
  
2) "host"
  
3) "name"
  
127.0.0.1:6379> get name
  
"lsf"
  
127.0.0.1:6379> get host
  
"redhat"
  再把现在的主切换成从,原来的主恢复主的身份:
127.0.0.1:6380> slaveof 192.168.40.12 6379  
OK
  
127.0.0.1:6380> info replication
  
# Replication
  
role:slave
  
master_host:192.168.40.12
  
master_port:6379
  
master_link_status:up
  
master_last_io_seconds_ago:1
  
master_sync_in_progress:0
  
slave_repl_offset:15
  
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
  查看一下主的状态:
127.0.0.1:6379> info replication  
# Replication
  
role:master
  
connected_slaves:1
  
slave0:ip=192.168.40.19,port=6380,state=online,offset=365,lag=0
  
master_repl_offset:365
  
repl_backlog_active:1
  
repl_backlog_size:1048576
  
repl_backlog_first_byte_offset:2
  
repl_backlog_histlen:364


页: [1]
查看完整版本: redis主从配置及手动切换遇到的问题