redis集群配置
2015-12-15 15:48
766 查看
在两台服务器redis实现集群
在两台服务器redis实现集群:描述
服务器列表:— A服务器:192.168.4.254
— B服务器:192.168.4.125
预期:
—-redis进程之间的主从切换,可以实现实例化的主从
操作
1、cluseter服务需要rub支持。首先安装rub相关服务yum -y install ruby rubygems rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm yum install ruby ruby-devel rubygems rpm-build gem source -l gem install redis --version 3.0.5
如果上面gem install失败了就执行下面语句来切换gem源
gem source --remove http://rubygems.org/[/code]gem sources -a http://ruby.taobao.org/[/code]
—– A、B服务上都执行一次以上命令
2、 安装好rub、redis后,配置redis的配置文件。vim /etc/redis/6379.conf/*按照以下内容修改。*/ port 6379 pidfile /var/run/redis-6379.pid dbfilename dump-6379.rdb appendfilename "appendonly-6379.aof" cluster-config-file nodes-6379.conf cluster-enabled yes cluster-node-timeout 5000 appendonly yes
3、 复制文件配置文件。
–(1)A服务器:cp 6379.conf 6380.conf cp 6379.conf 6381.conf scp 6379.conf root@192.168.4.125:/etc/redis/6382.conf scp 6379.conf root@192.168.4.125:/etc/redis/6383.conf scp 6379.conf root@192.168.4.125:/etc/redis/6384.conf sed -i "s/6379/6380/g" /etc/redis/6380.conf sed -i "s/6379/6381/g" /etc/redis/6381.conf
B服务器:sed -i "s/6379/6382/g" /etc/redis/6382.conf sed -i "s/6379/6383/g" /etc/redis/6383.conf sed -i "s/6379/6384/g" /etc/redis/6384.conf
A服务器:cat 6380.conf |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}' |grep 6380
存放log目录mkdir /var/log/redis redis-server /etc/redis/6379.conf > /var/log/redis/redis-6379.log 2>&1 & redis-server /etc/redis/6380.conf > /var/log/redis/redis-6380.log 2>&1 & redis-server /etc/redis/6381.conf > /var/log/redis/redis-6381.log 2>&1 &
B服务器:pkill - 9 redis mkdir /var/log/redis redis-server /etc/redis/6382.conf > /var/log/redis/redis-6382.log 2>&1 & redis-server /etc/redis/6383.conf > /var/log/redis/redis-6383.log 2>&1 & redis-server /etc/redis/6384.conf > /var/log/redis/redis-6384.log 2>&1 &
A服务器:cd /usr/local/redis/ netstat -tpnl |grep redis cp /usr/local/src/redis-3.0.5/src/redis-trib.rb redis-trib.rb ./redis-trib.rb create --replicas 1 192.168.4.254:6379 192.168.4.254:6380 192.168.4.254:6381 192.168.4.125:6382 192.168.4.125:6383 192.168.4.125:6384 #检查集群状态
–(1)A服务器:redis-trib.rb check 192.168.10.219:6379
4、 测试
(1)A服务器redis-cli -c -p 6379 -h 192.168.4.254 set tank tank1
(2)B服务器redis-cli -c -p 6382 -h 192.168.4.125 get tank###缺点: 重启的时候或者冲突的时候很难保证同步性。重启比较麻烦为此我写了两个脚本。 (1)redis.sh #用于重启redis多个端口的服务 (A服务器和B服务器都需要)!/bin/bash
#判断进程是否存在
ps -fe|grep redis |grep -v grep
if [ $? -ne 0 ]
then
echo “start process…..”
else
redis-server /etc/redis/6379.conf > /var/log/redis/redis-6379.log 2>&1 &
redis-server /etc/redis/6380.conf > /var/log/redis/redis-6380.log 2>&1 &
redis-server /etc/redis/6381.conf > /var/log/redis/redis-6381.log 2>&1 &
fi
#判断进程结束(2)redisCluster.sh#启动集群服务。(仅A服务器即可)!/bin/bash
/usr/local/redis/bin/redis-trib.rb create –replicas 1 192.168.4.254:6379 192.168.4.254:6380 192.168.4.254:6381 192.168.4.125:6382 192.168.4.125:6383 192.168.4.125:6384
“`
参考:
http://blog.51yip.com/nosql/1725.html
相关文章推荐
- 一个关于if else容易迷惑的问题
- 小心服务器内存居高不下的元凶--WebAPI服务
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- 运维入门
- JSP/PHP基于Ajax的分页功能实现
- redis安装问题小结
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- Redis偶发连接失败案例实战记录
- 如何降低服务器采购成本 原理分析