linux配置系列之redis主从配置

一、浩言

一个人不能既想赢得漂亮,而又那么的害怕失败。

----------------《不畏将来不恋过去》
**

二、背景

由于要配合其他业务线上线,,周末加班,所以了在配合基础上,自己就在两台测试服务器上redis的集群配置,一台主一台从。应该说初步配置成功。代码配置还在进行中,先把redis中的配置记载下。


三、redis配置

3.1按照之前的linux安装系列之redis安装好redis之后,进行配置,进入到redis的目录,由于是公司测试服务器,博主只有在这个目录的权限,所以期间有要按照的问题都自己先找出问题,让运维安装了,所以我只有"/usr/local/redis"目录的权限,所以操作了都在这个目录下面了。

cp redis.conf  redis-16379.conf
vim redis-16379.conf

配置redis-16379.conf,修改如下

bing 10.10.39.104  127.0.0.1
port 16379
unixsocket /usr/local/redis/data/socket/redis-16379.sock
unixsocketperm 755
pidfile /usr/local/redis/data/pid/redis_16379.pid
dbfilename dump16379.rdb
dir /usr/local/redis/data/16379/
daemonize yes
slaveof  10.10.39.104   16379

这里指定了主服务的地址及端口
3.2 验证主从
先启动主redis

linux配置系列之redis主从配置_第1张图片
Paste_Image.png

启动从服务器,可以在住的界面看到从已经连上,并且在从的里面也可以看到连上住了


linux配置系列之redis主从配置_第2张图片
Paste_Image.png

如果没有连接上,从中将会尝试重连操作。


linux配置系列之redis主从配置_第3张图片
Paste_Image.png

现在来测试主从是否成功:
进入主的客户端

 ./src/redis-cli -p 16379
linux配置系列之redis主从配置_第4张图片
Paste_Image.png

进入从的客户端

./src/redis-cli -p 16380
linux配置系列之redis主从配置_第5张图片
Paste_Image.png

输入info命令可以看到如下信息


linux配置系列之redis主从配置_第6张图片
Paste_Image.png

另外上面可以看到一个错误如下:

(error) READONLY You can't write against a read only slave.

也就是说在从上只能读取,不能设置数据。文档中的说明如下

# Since Redis 2.6 by default slaves are read-only.
#
# Note: read only slaves are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance.
# Still a read only slave exports by default all the administrative commands
# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
# security of read only slaves using 'rename-command' to shadow all the
# administrative / dangerous commands.

3.3 设置密码
此时我设置了16379中的密码

requiredpass 123456

重启后从服务器就开始报错如下


linux配置系列之redis主从配置_第7张图片

现在连接16379的客户端

linux配置系列之redis主从配置_第8张图片
Paste_Image.png

修改16380的配置环境如下

masterauth 123456

重新启动,done!!!

四、命令行形式加入主从

linux配置系列之redis主从配置_第9张图片
Paste_Image.png

显示连接成功


linux配置系列之redis主从配置_第10张图片
Paste_Image.png

五、主从?集群?

原本以为自己安装的一主一从就是集群的方式,可是发现还是有很大区别。
自己在代码中以集群的方式连接,结果是报错如下:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionFactory' defined in class path resource [applicationContext-bean.xml]: Invocation of init method failed; nested exception is redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster support disabled

所以就在网上查找了下答案,我代码里面是以集群的方式来连接的,但是redis的配置却并不是所谓的集群,我修改redis的节点
cluster-enabled yes
在启动从的时候报错如下

FATAL CONFIG FILE ERROR
Reading the configuration file, at line 268
'slaveof 10.10.39.104 16379'
slaveof directive not allowed in cluster mode

这句话代表slaveof指定不能再集群模式中使用
最后看了下slaveof是代表主从复制而已,让一个redis的实例成为另外一个redis实例的副本。
但是这个可以配置一个哨兵进行高可用见下一篇文章

六、redis相关文章

http://redis.majunwei.com/ducumtenation.html
http://blog.csdn.net/gqtcgq/article/details/50273431

七、浩语

                                       __                                                        
                        __  _  ____ __|  |__ _____    ___
                        \ \/ \/ /  |  \  |  \\__  \  /  _ \   
                         \     /|  |  /   Y  \/ __ \(  <_> )
                          \/\_/ |____/|___|  (____  /\____/ 
                                                \/     \/          
                              任何事情都是要靠努力和用心。

你可能感兴趣的:(linux配置系列之redis主从配置)