linux配置系列之redis主从配置

一、浩言

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

<h5 align = "right">----------------《不畏将来不恋过去》</h5>**

二、背景

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


三、redis配置

3.1按照之前的<a href="http://www.jianshu.com/p/5b64a6be50a9">linux安装系列之redis</a>安装好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

Paste_Image.png

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


Paste_Image.png

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


Paste_Image.png

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

 ./src/redis-cli -p 16379
Paste_Image.png

进入从的客户端

./src/redis-cli -p 16380
Paste_Image.png

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


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

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



现在连接16379的客户端

Paste_Image.png

修改16380的配置环境如下

masterauth 123456

重新启动,done!!!

四、命令行形式加入主从

Paste_Image.png

显示连接成功


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  \/ __ \(  <_> )
                          \/\_/ |____/|___|  (____  /\____/ 
                                                \/     \/          
                              任何事情都是要靠努力和用心。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容