linux下redis4.0.2集群部署(利用Ruby脚本命令)
一、原生命令方式和Ruby脚本方式区别
利用Ruby脚本部署和用原生命令部署,节点准备的步骤都是一样的,节点启动后的握手,以及主从、槽分配,利用Ruby脚本一步就能完成,利用原生命令需要一步一步地执行命令完成。
二、部署架构:3台服务器,互为主从,3主3从

三、准备6个节点配置文件
在172.28.18.75上操作
cd /etc/redis
vim redis-25701.conf
bind 172.28.18.75
port 25701
masterauth "Zaq1xsw@"
requirepass "Zaq1xsw@"
protected-mode yes
daemonize yes
dir "/etc/redis"
pidfile "/var/run/redis_25701.pid"
loglevel notice
logfile "redis-25701.log"
dbfilename "dump-25701.rdb" cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file node-25701.conf
cluster-require-full-coverage no
替换端口号,并生成一个从节点配置文件
sed 's/25701/25702/g' redis-25701.conf > redis-25702.conf
复制这两个配置文件到172.28.18.103和172.28.18.104对应的目录下
scp -P25601 redis-25701.conf root@172.28.18.103:/etc/redis/
scp -P25601 redis-25702.conf root@172.28.18.103:/etc/redis/
scp -P25601 redis-25701.conf root@172.28.18.104:/etc/redis/
scp -P25601 redis-25702.conf root@172.28.18.104:/etc/redis/
四、启动6个节点
redis-server redis-25701.conf
查看redis-25701.log

集群模式运行成功,再启动其他5个节点,至此节点准备完毕。
五、安装Ruby环境
1、下载
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
2、解压
tar -zxvf ruby-2.3.1.tar.gz
3、编译
cd ruby-2.3.1
./configure -prefix=/usr/local/ruby
make && make install
4、建立软连接
ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby
ln -s /usr/local/ruby/bin/gem /usr/local/bin/gem
5、执行
ruby -v

六、安装Ruby的redis客户端 redis-3.3.0.gem
1、下载
cd /usr/local/src
wget http://rubygems.org/downloads/redis-3.3.0.gem
2、安装
gem install -l redis-3.3.0.gem

3、验证
gem list -- check redis gem

七、安装redis-trib.rb脚本
cp /usr/local/src/redis-4.0.2/src/redis-trib.rb /usr/local/bin/
八、利用redis-trib.rb脚本部署集群
1、首选确保各个节点的redis配置文件里,不能有
requirepass "xxxxxxxx"
protected-mode yes
两个设置项,
必须要有绑定IP设置 bind 172.28.18.XXX ,否则集群配置会连接不了节点而失败。
2、执行如下命令
redis-trib.rb create --replicas 1 172.28.18.75:25701 172.28.18.103:25701 172.28.18.104:25701 172.28.18.103:25702 172.28.18.104:25702 172.28.18.75:25702
redis-trib.rb create --replicas 1 主节点1 主节点2 主节点3 从节点1 从节点2 从节点3

继续yes

槽数据分配完毕,主从设置完毕,集群启动完毕
九、查看节点信息
在172.28.18.75上执行
redis-cli -h 172.28.18.75 -p 25701 cluster nodes

显示3主3从
十、查看集群信息
在172.28.18.75上执行
redis-cli -h 172.28.18.75 -p 25701 cluster info

分配了16384个槽,已知6个节点。
十一、客户端连接验证
redis-cli -c -h 172.28.18.75 -p 25701
-c 参数表示连接到集群

插入一个key,被分配到104节点上了,集群正常工作。
十二、java jedis连接集群
public class RedisClusterTest {
private static Logger logger=LoggerFactory.getLogger(RedisClusterTest.class);
public static void main(String[] args) throws InterruptedException{
JedisCluster jedis;
//添加集群的服务节点Set集合
Set<HostAndPort> hostAndPortsSet =new HashSet<HostAndPort>();
//添加集群节点信息
hostAndPortsSet.add(new HostAndPort("172.28.18.75",25701));
hostAndPortsSet.add(new HostAndPort("172.28.18.103",25701));
hostAndPortsSet.add(new HostAndPort("172.28.18.104",25701));
//连接池配置
JedisPoolConfig config = new JedisPoolConfig();
//最大连接数, 默认8个
config.setMaxTotal(500);
//最大空闲连接数, 默认8个
config.setMaxIdle(100);
//最小空闲连接数, 默认0
config.setMinIdle(0);
//获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
config.setMaxWaitMillis(2000); // 设置2秒
//对拿到的connection进行validateObject校验
config.setTestOnBorrow(true);
jedis=new JedisCluster(hostAndPortsSet,config);
System.out.println("===========增加数据===========");
System.out.println(jedis.set("key1","value1"));
System.out.println(jedis.set("key2","value2"));
System.out.println(jedis.set("key3", "value3"));
System.out.println("获取键key2:"+jedis.get("key2"));
System.out.println("获取key1的值:"+jedis.get("key1"));
System.out.println("key3的值:"+jedis.get("key3"));
}
}
linux下redis4.0.2集群部署(利用Ruby脚本命令)的更多相关文章
- linux下redis4.0.2集群部署(利用原生命令)
一.部署架构如下 每台服务器准备2个节点,一主一从,主节点为另外两台其中一台的主,从节点为另外两台其中一台的从. 二.准备6个节点配置文件 在172.28.18.75上操作 cd /etc/redis ...
- linux下redis4.0.2安装与部署
一.redis的介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更 ...
- Linux下搭建Lotus Domino集群
Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
- Linux下Hadoop2.7.3集群环境的搭建
Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...
- hbase-2.0.4集群部署
hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...
- redis4.0.1集群安装部署
安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...
- Redis-4.0.11集群配置
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...
- redis-5.0.5 集群部署
之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...
随机推荐
- spring-task解决定时问题
* spring3以上版本,spring-content自带 spring-task ,来解决工程中的定时问题 基于注解配置spring定时任务 spring配置文件如下: <?xml ve ...
- 洛谷1101:单词方阵(DFS)
题目描述 给一n×nn \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着888个方向的任一方向,同一单词摆放 ...
- LiquiBase 学习
preconditions mysql database is installed maven has been setted up properly add depedenceies apply p ...
- BZOJ 2277 Poi2011 Strongbox
题目大意:一个集合A,包含了0~n-1这n个数.另有一个集合B,满足: 1.B是A的子集. 2.如果a.b均在B中,则(a+b)%n也在B中(a=b亦可) 给出k个数ai,前k-1个不在B中,第k个在 ...
- java web(七): mybatis的动态sql和mybatis generator自动生成pojo类和映射文件
前言: MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据 不同条件拼接 SQL 语句的痛苦.例如拼接时要确保不能忘记添加必要的空格,还 ...
- linux kernel driver debug
1. print printk(): never pr_debug(): always good dev_dbg(): prefered when you have a struct device o ...
- java_oop_关键字
空白符注释 标识符分隔符操作符字面量关键字 instanceof java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出, ...
- 服务容错和Hystrix
一.雪崩效应 在微服务架构中,通常有多个服务层调用,如果某个服务不可用,造成调用的服务也不可用,造成整个系统不可用的情况,叫做雪崩效应 二.Hystrix 放雪崩利器Hystrix,基于Netflix ...
- c# 数据存储过程
什么是存储过程? 用某百科的话来说就是一堆为了完成某一功能或者某些功能的SQL语句的集合,而数据库则会将这些存储过程的方法存储到数据库中去. 优点: 1.可重用并且效率高:存储过程经过一次编译后不需要 ...
- PostgreSQL Oracle 兼容性之 - sys_guid()
Oracle 使用sys_guid()用来产生UUID值. 在PostgreSQL中有类似的函数,需要安装uuid-ossp插件. 如果用户不想修改代码,还是需要使用sys_guid()函数的话, ...