Redis的主从复制,读写分离,哨兵模式详细教程(1)

来源:互联网 发布:各种软件 编辑:程序博客网 时间:2024/05/24 05:24


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com



最近在学习redis的主从管理,将自己的学习记录下来,一步一步提升自己

废话不多说,直接开始


一、首先在本地模拟多个redis服务器,具体的做法就是复制多个不同的redis配置文件,启动redis服务时加载不同的配置文件即可,在这里配置三个服务器,端口分别为6379,6380,6381;

1、先复制三个redis.conf文件,我的文件在 /usr/local/etc/下面

在终端执行命令:

likepengdeMacBook-Air:etc cooper$ cp redis.conf redis6379.conflikepengdeMacBook-Air:etc cooper$ cp redis.conf redis6380.conflikepengdeMacBook-Air:etc cooper$ cp redis.conf redis6381.conf

这样就复制了三个配置文件,接下来就是修改配置文件

执行:

$vim redis6379.conf

打开配置文件修改其中的内容,需要修改的内容为:

daemonizeyes

pidfile/var/run/redis6379.pid(原来为redis.pid,为了与后面的区分)

port6379 (端口)

logfile"6379.log"(日志文件:原来默认为空)

dbfilenamedump6379.rdb(备份文件:原来是dump.rdb,为了便于查看,加上6379)

这样就将一个配置文件修改完成,然后依次修改80,81配置文件,依次类推即可


2、修改完成后保存退出即可,然后连接三个库。直接上命令

$redis-server/usr/local/etc/redis6379.conf// 回车$redis -p 6379//回车进入到redis服务,127.0.0.1->.......之类的,然后执行命令$ping//返回PONG证明配置成功

然后连接其他的库就行,注意端口号和配置文件加载对应就行

遇到的问题:

连接时候遇到了6379.log无法打开,无权操作,操作被拒之类的错误,chmod最大权限即可,注意不能对应目录设置,需要专门设置文件,比如

chmod a+x ./6379.log

二、经过以上步骤后就完成了三个库的连接,注意开三个窗口方便测试查看,接下来在每个窗口执行命令

$inforeplication

信息如下:

127.0.0.1:6379> info replication

127.0.0.1:6379> info replication# Replicationrole:masterconnected_slaves:2slave0:ip=127.0.0.1,port=6380,state=online,offset=823,lag=0slave1:ip=127.0.0.1,port=6381,state=online,offset=823,lag=1master_repl_offset:823repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:822

现在三个库应该都是这种状态,注意最重要的参数第一行role:master,表名三个库现在都是主库,

接下来在79库随便设置几个参数

$setk1 v1$set k2 v2$set k3 v3


然后再80   和  81窗口执行命令

$SLAVEOF  127.0.0.1  6379

这个命令标识他们继承79库为主库,这时候在三个窗口执行 $info replication

可以看到

79的role:master

80和81的都是 role : slave

这是操作截图一张:



这个时候79是主库,80,81是从库,此时从库全量复制主从的键值,在80,81中可以执行

$get k1得到v1

但是从库不能写数据,如果在80或者81执行

$set  k4 v4会报错

从库只能读取数据

今天暂时更新到这里,下次有时间更新。





0 0