linux redis ruby,linux下redis4.0.2集群部署(利用Ruby脚本命令)

一、原生命令方式和Ruby脚本方式区别

利用Ruby脚本部署和用原生命令部署,节点准备的步骤都是一样的,节点启动后的握手,以及主从、槽分配,利用Ruby脚本一步就能完成,利用原生命令需要一步一步地执行命令完成。

二、部署架构:3台服务器,互为主从,3主3从

93e411bf50a0ab9a9d375b520975dae3.png

三、准备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

14370f6baba64c878d091bc0dc019e84.png

集群模式运行成功,再启动其他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

fc608ac6a79e8529e80b82a95172fac5.png

六、安装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

31ef961b7e56fa45bb203c2d92179ebe.png

3、验证

gem list -- check redis gem

cf59e1855fbe6cb32817fbe35ffcc664.png

七、安装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

2a7aaeee0aea6f162c1021c0af95fc76.png

继续yes

b03bd82b925f75dc37cabd303bb54b14.png

槽数据分配完毕,主从设置完毕,集群启动完毕

九、查看节点信息

在172.28.18.75上执行

redis-cli -h 172.28.18.75 -p 25701 cluster nodes

0ce12e57c14dda17ec89796dadd09291.png

显示3主3从

十、查看集群信息

在172.28.18.75上执行

redis-cli -h 172.28.18.75 -p 25701 cluster info

c78bd8df1cfde48b24facc726d4dc85d.png

分配了16384个槽,已知6个节点。

十一、客户端连接验证

redis-cli -c -h 172.28.18.75 -p 25701

-c 参数表示连接到集群

15e161cc81e94e543c20a5df0b846f5a.png

插入一个key,被分配到104节点上了,集群正常工作。

十二、java jedis连接集群

public classRedisClusterTest {private static Logger logger=LoggerFactory.getLogger(RedisClusterTest.class);public static void main(String[] args) throwsInterruptedException{

JedisCluster jedis;//添加集群的服务节点Set集合

Set hostAndPortsSet =new HashSet();//添加集群节点信息

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 = newJedisPoolConfig();//最大连接数, 默认8个

config.setMaxTotal(500);//最大空闲连接数, 默认8个

config.setMaxIdle(100);//最小空闲连接数, 默认0

config.setMinIdle(0);//获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1

config.setMaxWaitMillis(2000); //设置2秒//对拿到的connection进行validateObject校验

config.setTestOnBorrow(true);

jedis=newJedisCluster(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"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值