linux7.0下2台服务器安装redis4.0.2集群

分配端口和ip

172.16.1.23 redis01 172.16.1.24 redis02  
redis01:7000 redis02:7003    
redis01:7001   redis02:7004   
redis01:7002 redis02:7005  

1 安装gcc  Redis在linux上的安装首先必须先安装gcc,这个是用来编译redis的源文件的

# yum install gcc -y

2、下载解压redis的源文件  https://redis.io/download

# cd /root
#wget http://download.redis.io/releases/redis-4.0.2.tar.gz# tar zxvf redis-4.0.2.tar.gz

3 使用make命令编译

#cd redis-4.0.2/
#make  出现一大堆内容 Hint: It‘s a good idea to run ‘make test‘ ;)提示成功 如果提示错误输入 #make MALLOC=libc #cd src (src在redis-4.0.2目录下) #make test       提示You need tcl 8.5 or newer in order to run the Redis test make: *** [test] Error 1 在这里发现有错误 需要安装tcl

4安装TCL并再次测试  tcl(Tool Command Language)工具脚本语言,是Linux内的一种语言包

#yum install tcl -y
#make test 再次测试  这里反正检查的一大堆,最后出现 \o/ All tests passed without errors! 就ok

5安装 到/usr/local/redis

[[email protected] src]# make PREFIX=/usr/local/redis install
Hint: It‘s a good idea to run ‘make test‘ ;)
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
   安装成功
[[email protected] redis-4.0.7]# cd /usr/local/redis/bin
[[email protected] bin]# ll
redis-benchmark redis-check-aof  redis-check-rdb redis-cli redis-sentinel -> redis-server redis-server
这些都是一个个的命令

6:创建配制节点

服务器1:
mkdir -p /usr/local/redis/redis_cluster/7000
mkdir -p /usr/local/redis/redis_cluster/7001
mkdir -p /usr/local/redis/redis_cluster/7002
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7000
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7001
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7002
服务器2:
mkdir -p /usr/local/redis/redis_cluster/7003
mkdir -p /usr/local/redis/redis_cluster/7004
mkdir -p /usr/local/redis/redis_cluster/7005
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7003
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7004
cp /root/redis-4.0.2/redis.conf /usr/local/redis/redis_cluster/7005

7:修改redis.conf    切记:不能设置密码,否则集群启动时会连接不上

port  7000  7001 7002 7003 7004 7005       //端口根据对应的文件夹去配制端口
bind 本机ip                                //根据本机所在的IP或hostname去配制 node1 node2 node3
daemonize    yes                          //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002,7003,7004,7005
cluster-enabled  yes                      //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成 7000,7001,7002,7003,7004,7005
cluster-node-timeout  15000               //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日

8:复制src目录中的redis-trib.rb 到/usr/local/redis/bin目录

cp /usr/local/redis/redis-trib.rb /usr/local/redis/bin

9.1 redis-trib.rb环境准备(该文件存在于redis-4.0.2/src/目录中)    //只需要在其中一台上执行此步骤!! 

    redis-trib.rb是采用Ruby实现的Redis集群管理工具。内部通过Cluster相关命令帮助
    我们简化集群创建、检查、槽迁移和均衡等常见操作,使用之前需要安装Ruby依赖环境。 centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
       我的yum时网易的,用yum安装ruby的版本为2.0.0 在创建集群的时候提示需要高于2.2.2的版本  所以不能用yum安装 建议采用方法二 更换yum源
       :换yum源安装
    ~]# yum install centos-release-scl-rh    //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
    ~]# yum install rh-ruby23  -y    //直接yum安装即可  
       软件集合的软件包安装在/opt目录下, 要使用它,需要加载环境变量,如下所示:
    ~]# scl  enable  rh-ruby23 bash    //必要一步
    ~]# ruby -v    //查看安装版本
    续:接上文提到的报错问题:“redis requires Ruby version >= 2.2.2”
    ~]# gem install redis
    然后,redis-trib.rb这个二进制文件就可以使用了,用来构建redis集群

9.2 这样安装后每次重启或者重新连接crt时发现  不能输入ruby -v  等命令 自然也就无法输入./redis-trib.rb check 172.16.1.23:7002  这些检测命令,需要设置登录时自动启用Ruby 2.3,按如下所示进行配置

# ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
# which ruby
/opt/rh/rh-ruby23/root/usr/bin/ruby        //查看软件包安装路径
#cd /etc/profile.d/
#touch rh-ruby23.sh             //新建一个文件
#vim rh-ruby23.sh
  #!/bin/bash
  source /opt/rh/rh-ruby23/enable
  export X_SCLS="`scl enable rh-ruby23 ‘echo $X_SCLS‘`"
  export PATH=$PATH:/opt/rh/rh-ruby23/root/usr/local/bi

10:启动各个节点

1服务器:
# cd /usr/local/redis/bin/
./redis-server /usr/local/redis/redis_cluster/7000/redis.conf
./redis-server /usr/local/redis/redis_cluster/7001/redis.conf
./redis-server /usr/local/redis/redis_cluster/7002/redis.conf
2服务器:
# cd /usr/local/redis/bin/
./redis-server /usr/local/redis/redis_cluster/7003/redis.conf
./redis-server /usr/local/redis/redis_cluster/7004/redis.conf
./redis-server /usr/local/redis/redis_cluster/7005/redis.conf

11:检查各节点是否启动

ps -ef | grep redis 查看进程netstat -tnlp | grep redis 查看端口

12:创建集群  只在一台上配置即可

进入node1的bin目录下,执行以下脚本
#./redis-trib.rb create --replicas 1 172.16.1.23:7000 172.16.1.23:7001 172.16.1.23:7002 172.16.1.24:7003 172.16.1.24:7004 172.16.1.24:7005

13:验证集群

1 简单命令
# cd /usr/local/redis/bin
[[email protected] bin]# ll
dump.rdb  redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli
redis-sentinel -> redis-server  redis-server
[[email protected] bin]# ./redis-cli    连接客户端
127.0.0.1:6379> ping                      检查网络是否可以
PONG
127.0.0.1:6379> set name kobe  设置一个键值对
OK
127.0.0.1:6379> get name
"kobe"
127.0.0.1:6379> keys *     查看所有的键
1) "name"
127.0.0.1:6379> del name 删除name这个键
(integer) 1
127.0.0.1:6379> keys *
(empty list or set
# cd /usr/local/redis/bin/
# ./redis-cli -h 172.16.1.23 -p 7000 -c
172.16.1.23:7000> ping
PONG
[[email protected] bin]# ./redis-cli -h 172.16.1.24 -p 7005 -c
172.16.1.24:7005> ping
PONG

redis-cli -h 172.16.1.23 -p 7000 -c
redis-cli -h 172.16.1.24 -p 7003 -c
......

# ./redis-trib.rb create --replicas 1 172.16.1.23:7000 172.16.1.23:7001 172.16.1.23:7002 172.16.1.24:7003 172.16.1.24:7004 172.16.1.24:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
172.16.1.23:7000
172.16.1.24:7003
172.16.1.23:7001
Adding replica 172.16.1.24:7004 to 172.16.1.23:7000
Adding replica 172.16.1.23:7002 to 172.16.1.24:7003
Adding replica 172.16.1.24:7005 to 172.16.1.23:7001
M: 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb 172.16.1.23:7000
   slots:0-5460 (5461 slots) master
M: 32ef3e2869ae96886c11b27fbc9b633638cb295a 172.16.1.23:7001
   slots:10923-16383 (5461 slots) master
S: 37cceba97e369b8161a35c5282f04ef548bad243 172.16.1.23:7002
   replicates bf55a1c9a9e956675ab25784239e09f73f97370e
M: bf55a1c9a9e956675ab25784239e09f73f97370e 172.16.1.24:7003
   slots:5461-10922 (5462 slots) master
S: da4f3faeff559039e91c7972616192a41c2392d3 172.16.1.24:7004
   replicates 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb
S: ec31f8bbd5d1fe994e5f78ec1afe7cdca5a70ecb 172.16.1.24:7005
   replicates 32ef3e2869ae96886c11b27fbc9b633638cb295a
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 join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 172.16.1.23:7000)
M: 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb 172.16.1.23:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: da4f3faeff559039e91c7972616192a41c2392d3 172.16.1.24:7004
   slots: (0 slots) slave
   replicates 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb
S: ec31f8bbd5d1fe994e5f78ec1afe7cdca5a70ecb 172.16.1.24:7005
   slots: (0 slots) slave
   replicates 32ef3e2869ae96886c11b27fbc9b633638cb295a
S: 37cceba97e369b8161a35c5282f04ef548bad243 172.16.1.23:7002
   slots: (0 slots) slave
   replicates bf55a1c9a9e956675ab25784239e09f73f97370e
M: 32ef3e2869ae96886c11b27fbc9b633638cb295a 172.16.1.23:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: bf55a1c9a9e956675ab25784239e09f73f97370e 172.16.1.24:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
# ./redis-trib.rb check 172.16.1.23:7002
>>> Performing Cluster Check (using node 172.16.1.23:7002)
S: 37cceba97e369b8161a35c5282f04ef548bad243 172.16.1.23:7002
   slots: (0 slots) slave
   replicates bf55a1c9a9e956675ab25784239e09f73f97370e
S: ec31f8bbd5d1fe994e5f78ec1afe7cdca5a70ecb 172.16.1.24:7005
   slots: (0 slots) slave
   replicates 32ef3e2869ae96886c11b27fbc9b633638cb295a
S: da4f3faeff559039e91c7972616192a41c2392d3 172.16.1.24:7004
   slots: (0 slots) slave
   replicates 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb
M: 2334afd272c9b59aa4f4f95b8ff0748e05f0fbcb 172.16.1.23:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 32ef3e2869ae96886c11b27fbc9b633638cb295a 172.16.1.23:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: bf55a1c9a9e956675ab25784239e09f73f97370e 172.16.1.24:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
# clear
# ./redis-cli -h 172.16.1.23 -p 7000 -c
172.16.1.23:7000> ping
PONG
172.16.1.23:7000>
# ./redis-cli -h 172.16.1.23 -p 7001 -c
172.16.1.23:7001> ping
PONG
172.16.1.23:7001>
# ./redis-cli -h 172.16.1.23 -p 7002 -c
172.16.1.23:7002> ping
PONG
172.16.1.23:7002> ping [message]
# ./redis-cli -h 172.16.1.24 -p 7003 -c
172.16.1.24:7003> ping
PONG
172.16.1.24:7003>
# ./redis-cli -h 172.16.1.24 -p 7004 -c
172.16.1.24:7004> ping
PONG
172.16.1.24:7004>
# ./redis-cli -h 172.16.1.24 -p 7005 -c
172.16.1.24:7005> ping
PONG
172.16.1.24:7005>

原文地址:https://www.cnblogs.com/renjiaxiaoshu/p/8432050.html

时间: 2024-10-11 16:20:38

linux7.0下2台服务器安装redis4.0.2集群的相关文章

Redis 3.0正式版发布,正式支持Redis集群

Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最重要特征是对Redis集群的支持,此外,该版本相对于2.8版本在性能.稳定性等方面都有了重大提高. Redis 3.0正式版相对于RC6版本的改进内容包括: 修复了无磁盘情况下的的复制问题: 在角色变化后对BLPOP复制进行了测试: 改进了prepareClientToWrite()错误处理: 移除

heartbeat 配置两台web服务器高可用集群案例

通过heartbeat 配置两台web服务器高可用集群案例: 拓扑: web1:192.168.0.101 hostname: web1.example.com web2:192.168.0.102 hostname:web2.example.com vip:192.168.0.254 nfs服务器:192.168.0.100(存放web页面) 注意: 1主机名要与uname -n 保持一致 2.web1与web2主机的date时间保持同步 3.web1与web2,ssh双机互信通信 4.关闭i

全新一台node节点加入到集群中

目录 前言 对新节点做解析 方法一 hosts 文件解析 方法二 bind 解析 测试 分发密钥对 推送 CA 证书 flanneld 部署 推送flanneld二进制命令 推送flanneld秘钥 推送flanneld启动文件 启动flanneld 查看etcd中网络数据 docker 安装配置 安装 创建配置文件 修改Docker启动参数 启动查看 kubelet 安装 推送 kubelet 二进制文件 创建 kubelet bootstrap kubeconfig 文件 分发 bootst

VMware下Hadoop 2.4.1完全分布式集群平台安装与设置

1 VM下Ubuntu安装和配置 1.1 安装Ubuntu系统 这个就不说了,不知道的可以去看看其他的博文. 1.2 集群配置 搭建一个由3台机器组成的集群: IP user/passwd hostname role System 192.168.174.160 hadoop/hadoop master nn/snn/rm Ubuntu-14.04-32bit 192.168.174.161 hadoop/hadoop slave1 dn/nm Ubuntu-14.04-32bit 192.16

一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种

mac 下搭建Elasticsearch 5.4.3分布式集群

一.集群角色 多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点.Zen发现是ES自带的默认发现机制,使用多播发现其它节点.只要启动一个新的ES节点并设置和集群相同的名称这个节点就会被加入到集群中. Elasticsearch集群中有的节点一般有三种角色:master node.data node和client node. master node:master几点主要用于元数据(metadata)的处

Linux下Apache+tomcat搭建负载均衡服务器集群

之前在我的博客里面写了一篇文章http://blog.csdn.net/yannanying/article/details/43018175,本文就是为了补充当时的那篇文章而写.我记得当时是参考百度经验里面的一篇文章写的,文章地址为http://jingyan.baidu.com/article/ab0b5630b632dbc15afa7dc4.html,寒假的时候按照这篇文章的相关内容搭建了Apache+tomcat服务器集群,当时是弄成功了,回到学校后再次想尝试一下怎么搭建,但是发现自己记

[转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储

集群环境下定时调度的解决方案之Quartz集群

集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是部署在集群环境中的,这样我们之前的定时调度就会出现问题了,因为我们的定时任务都加载在内存中的,每个集群节点中的调度器都会去执行,这就会存在重复执行和资源竞争的问题,那么如何来解决这样的问题呢,往下面看吧... 解决方案 在一般的企业中解决类似的问题一般都是在一个note上部署Quartz其他note