共计 3775 个字符,预计需要花费 10 分钟才能阅读完成。
解析我做 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
下面关于 Redis 的文章您也可能喜欢,不妨参考下:
Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm
Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm
Redis 集群搭建与简单使用 http://www.linuxidc.com/Linux/2017-03/142210.htm
CentOS 7 下 Redis 的安装与配置 http://www.linuxidc.com/Linux/2017-02/140363.htm
Ubuntu 14.04 安装 Redis 与简单配置 http://www.linuxidc.com/Linux/2017-01/139075.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
Redis 单机 & 集群离线安装部署 http://www.linuxidc.com/Linux/2017-03/141403.htm
CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm
Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm
Redis 热迁移实战总结 http://www.linuxidc.com/Linux/2017-02/141083.htm
Redis3.0 配置文件详解 http://www.linuxidc.com/Linux/2017-03/141369.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148660.htm