redis-cluster集群安装(基于redis-3.2.10)

摘要:
上节主要演示了redis单节点的安装部署,对于数据量更大的服务可以安装redis-cluster进行处理1.安装rubyyuminstallrubyruby-develrubygemsrpm-build-yrpm-qa|greprubyruby-v2.安装redis-clustergeminstallredis--version3.2.1gemlist3.到redis源码目录找到集群创建工具/bi

上节主要演示了redis单节点的安装部署,对于数据量更大的服务可以安装redis-cluster进行处理

1. 安装ruby

yum install ruby ruby-devel rubygems rpm-build -y
rpm -qa|grepruby
ruby -v

2.安装redis-cluster

gem install redis --version 3.2.1
gem list

3.到redis源码目录找到集群创建工具

/bin/cp /server/tools/redis-3.2.10/src/redis-trib.rb /usr/local/redis/bin/

4.创建redis-cluster集群节点

(1)创建节点目录,修改配置文件

[root@redis-server tools]# mkdir -p /usr/local/redis/redis-cluster/{7001,7002,7003}
cluster-enabled yes cluster-config-file /usr/local/redis/redis-cluster/6379/nodes-6379.conf cluster-node-timeout 5000 appendonly yes
[root@redis-server tools]# sh -x add_redis-cluster-port_rc.sh 8001 8002 8003
+ echo '------ Start Create redis-cluster ------'
------ Start Create redis-cluster ------
+ redisport1=8001
+ redisport2=8002
+ redisport3=8003
+ redis_path=/usr/local/redis
+ redis_cluster_path=/usr/local/redis/redis-cluster
++ grep -v 127.0.0.1
++ grep -v inet6
++ grepinet
++ awk '{print $2}'
++ /sbin/ifconfig -a
++ tr -d addr:
+ localIP=192.168.1.71
+ '[' -z 8001 ']'
+ echo 'The redis-port is 8001'
The redis-port is 8001
+ '[' -z 8002 ']'
+ echo 'The redis-port is 8002'
The redis-port is 8002
+ '[' -z 8003 ']'
+ echo 'The redis-port is 8003'
The redis-port is 8003
+ echo /usr/local/redis/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
/usr/local/redis/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
+ sleep 1
+ mkdir -p /usr/local/redis/redis-cluster/8001 /usr/local/redis/redis-cluster/8002 /usr/local/redis/redis-cluster/8003
+ cd /server/tools/
+ /bin/cp democonf_redis-cluster_6379.conf /usr/local/redis/redis-cluster/8001/conf-8001.conf
+ sed -i s#6379#8001#g /usr/local/redis/redis-cluster/8001/conf-8001.conf
+ /bin/cp democonf_redis-cluster_6379.conf /usr/local/redis/redis-cluster/8002/conf-8002.conf
+ sed -i s#6379#8002#g /usr/local/redis/redis-cluster/8002/conf-8002.conf
+ /bin/cp democonf_redis-cluster_6379.conf /usr/local/redis/redis-cluster/8003/conf-8003.conf
+ sed -i s#6379#8003#g /usr/local/redis/redis-cluster/8003/conf-8003.conf
+ tree /usr/local/redis/redis-cluster
/usr/local/redis/redis-cluster
├── 8001
│ └── conf-8001.conf
├── 8002
│ └── conf-8002.conf
└── 8003
    └── conf-8003.conf
3 directories, 3files
+ echo '------ Start redis-cluster nodes ------'
------ Start redis-cluster nodes ------
+ sleep 1
+ /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8001/conf-8001.conf
+ /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8002/conf-8002.conf
+ /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8003/conf-8003.conf
++ date +%F
+ echo '# redis-cluster-port for 8001,8002,8003 in 2017-09-21'
+ echo '/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8001/conf-8001.conf'
+ echo '/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8002/conf-8002.conf'
+ echo '/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8003/conf-8003.conf'
+ tail -4 /etc/rc.local
tail: 无法使用 inotify 机制,回归为 polling 机制
# redis-cluster-port for 8001,8002,8003 in 2017-09-21
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8001/conf-8001.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8002/conf-8002.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/8003/conf-8003.conf
+ echo '------ Create redis-cluster ------'
------ Create redis-cluster ------
+ sleep 1
+ /usr/local/redis/bin/redis-trib.rb create --replicas 0 192.168.1.71:8001 192.168.1.71:8002 192.168.1.71:8003
>>>Creating cluster
Connecting to node 192.168.1.71:8001: OK
Connecting to node 192.168.1.71:8002: OK
Connecting to node 192.168.1.71:8003: OK
>>> Performing hash slots allocation on 3nodes...
Using 3masters:
192.168.1.71:8001
192.168.1.71:8002
192.168.1.71:8003
M: 97ca887459268c2effca0af3263dcd00e83cae37 192.168.1.71:8001
   slots:0-5460 (5461slots) master
M: e43cda13f069241a25786bb4916e21e7e8a5e1d5 192.168.1.71:8002
   slots:5461-10922 (5462slots) master
M: 53383a751348ed8bd2ec88fd487ada344c7a7bc8 192.168.1.71:8003
   slots:10923-16383 (5461slots) master
Can I set the above configuration? (type 'yes'to accept): yes
>>>Nodes configuration updated
>>>Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to jointhe cluster
Waiting for the cluster to join.
>>> Performing Cluster Check (using node 192.168.1.71:8001)
M: 97ca887459268c2effca0af3263dcd00e83cae37 192.168.1.71:8001
   slots:0-5460 (5461slots) master
M: e43cda13f069241a25786bb4916e21e7e8a5e1d5 192.168.1.71:8002
   slots:5461-10922 (5462slots) master
M: 53383a751348ed8bd2ec88fd487ada344c7a7bc8 192.168.1.71:8003
   slots:10923-16383 (5461slots) master
[OK] All nodes agree about slots configuration.
>>> Check foropen slots...
>>>Check slots coverage...
[OK] All 16384slots covered.
+ echo '------ Test redis-cluster ------'
------ Test redis-cluster ------
+ sleep 1
+ grep --color=auto redis-server
+ netstat -anptl
tcp        0      0 0.0.0.0:18001               0.0.0.0:*                   LISTEN      12377/redis-server  
tcp        0      0 0.0.0.0:18002               0.0.0.0:*                   LISTEN      12379/redis-server  
tcp        0      0 0.0.0.0:18003               0.0.0.0:*                   LISTEN      12383/redis-server  
tcp        0      0 0.0.0.0:8001                0.0.0.0:*                   LISTEN      12377/redis-server  
tcp        0      0 0.0.0.0:8002                0.0.0.0:*                   LISTEN      12379/redis-server  
tcp        0      0 0.0.0.0:8003                0.0.0.0:*                   LISTEN      12383/redis-server  
tcp        0      0 192.168.1.71:54496          192.168.1.71:18002          ESTABLISHED 12377/redis-server  
tcp        0      0 192.168.1.71:38063          192.168.1.71:18003          ESTABLISHED 12377/redis-server  
tcp        0      0 192.168.1.71:50397          192.168.1.71:18002          ESTABLISHED 12383/redis-server  
tcp        0      0 192.168.1.71:55957          192.168.1.71:18001          ESTABLISHED 12379/redis-server  
tcp        0      0 192.168.1.71:18003          192.168.1.71:38063          ESTABLISHED 12383/redis-server  
tcp        0      0 192.168.1.71:18001          192.168.1.71:55957          ESTABLISHED 12377/redis-server  
tcp        0      0 192.168.1.71:18001          192.168.1.71:34296          ESTABLISHED 12377/redis-server  
tcp        0      0 192.168.1.71:18002          192.168.1.71:54496          ESTABLISHED 12379/redis-server  
tcp        0      0 192.168.1.71:37840          192.168.1.71:18003          ESTABLISHED 12379/redis-server  
tcp        0      0 192.168.1.71:18003          192.168.1.71:37840          ESTABLISHED 12383/redis-server  
tcp        0      0 192.168.1.71:34296          192.168.1.71:18001          ESTABLISHED 12383/redis-server  
tcp        0      0 192.168.1.71:18002          192.168.1.71:50397          ESTABLISHED 12379/redis-server  
+ /usr/local/redis/bin/redis-cli -c -p 8001
127.0.0.1:8001>exit
+ echo '------ Create redis-cluster is OK! ------'
------ Create redis-cluster is OK! ------
[root@zstest1 tools]# 

免责声明:文章转载自《redis-cluster集群安装(基于redis-3.2.10)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇从InitialContext获取数据源rabbitmq++:rabbitmq 三种常用的交换机下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redis的搜索组件 redis-search4j

redis-search4j是一款基于redis的搜索组件。 特点 1.基于redis,性能高效 2.实时更新索引 3.支持Suggest前缀、拼音查找(AutoComplete功能) 4.支持单个或多个分词搜索 5.可根据字段进行结果排序 环境 1.jdk 1.6+ 2.redis 2.2+ 依赖包 1.Jedis-2.1.0 2.commons-...

Harbor redis容器启动失败

  由于异常断电,倒是harbor部分容器消亡了,因此根据harbor.yaml配置文件查看数据命令并进行必要的备份,然后通过./install.sh 重新将容器创建,之后发现有redis容器启动状态一直为“restarting状态”,查看日志 有如下报错 reids 报错 redis-server Short read or OOM loading D...

c# core api 配置redis

1、在appsetting中配置连接字符串 "ConnectionStrings": { "RedisConnectionString":"127.0.0.1:6379,password=xxxxx,defaultDatabase=2" } 2、新建Redis帮助类RedisClient.cs;注意:这个时候回报错   直接右键查找最新get包   引...

Socket详解(转)

      在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据. 这篇文章首先介绍Socket类的各个构造方法, 以及成员方法的用法, 接着介绍 Sock...

SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)

1.前言 本文主要介绍使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例。 使用技术:SpringBoot、mybatis、shiro、thymeleaf、pagehelper、Mapper插件、druid、dataTables、ztree、jQuery 开发工具:intellij idea 数据库:mysql、red...

直观明了的总结TCP滑动窗口机制原理及作用

阅读需要对TCP报文头部字段以及它们的字段有一定了解。 一. 原理   TCP是全双工通信,因此每一方的滑动窗口都包括了接收窗口+发送窗口,接收窗口负责处理自己接收到的数据,发送窗口负责处理自己要发送出去的数据。滑动窗口的本质其实就是维护几个变量,通过这些变量将TCP处理的数据分为几类,同时在发送出一个报文、接收一个报文对这些变量做一定的处理维护。  ...