标签: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。
然后两台服务器都启动:
[root@centosa ~]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf [root@centosb redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf
登录然后测试一下同步:
[root@centosa ~]# /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" [root@centosb redis-3.2.1]# /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 ##登录后先输入一句,验证。
或者是在登录时加上-a redhat 这样就可以了。
持久化:
rdb:
配置文件默认开启:
save 900 1 save 300 10 save 60 10000
会在安装目录下生成一个dump.rdb文件,这就是保存着缓存数据的文件。
rdb适合恢复大规模数据,但是恢复数据的完整性不高。
oaf(默认不开启):
修改配置文件: 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:
[root@centosb redis-3.2.1]# scp dump.rdb centosa:/usr/local/src/redis-3.2.1/ dump.rdb
启动原来的主服务器:
[root@centosa redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf
然后看一下keys;
[root@centosa redis-3.2.1]# /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
本文出自 “运维小记” 博客,请务必保留此出处http://lsfandlinux.blog.51cto.com/13405754/1982366
标签:redis
原文地址:http://lsfandlinux.blog.51cto.com/13405754/1982366