zoukankan      html  css  js  c++  java
  • centos7安装redis-4.0.1集群

    试验机操作系统:CentOS Linux release 7.2.1511 (Core)

    本文的目的是教会大家快速搭建redis集群,完了再深入学习。

    试问如果不上手试验,看的资料再多有个毛用?

    下载redis

    下载网址:https://redis.io/download

    写文章时最新版本为:redis-4.0.1.tar.gz

    可以先下载到windows操作系统,然后拷贝到centos。

    下载成功后,在centos上创建一个目录,存放我们的软件,我比较喜欢放在/soft目录下。

    [root@localhost /]# mkdir /soft

    然后利用WinScp工具拷贝到centos系统,放在/soft/目录下。

    安装gcc

    [root@localhost ~]# yum install gcc

    中间有2次提示,要求输入:yes 或 y,我们按照提示来就可以。

    安装pstree

    [root@localhost ~]# yum install psmisc

    中间有1次提示,要求输入:y。按照提示来就可以。

    解压tar包

    [root@localhost /]# cd /soft

    [root@localhost soft]# tar zxvf redis-4.0.1.tar.gz

    [root@localhost soft]# mv redis-4.0.1 /usr/local/redis

    编译安装

    [root@localhost soft]# cd /usr/local/redis

    [root@localhost redis]# make MALLOC=libc

    [root@localhost redis]# make & make install

    说明:如果在make的时候不指定内存管理方式,会报错的:

    zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录。

    malloc是管理内存碎片的。

    启动reids

    [root@localhost redis]# src/redis-server redis.conf

    如果成功,如下图:

    然后新开终端,打开redis客户端

    [root@localhost ~]# cd /usr/local/redis/

    [root@localhost redis]# src/redis-cli

    表示已经启动成功。

    我相信单机安装有点linux基础的同学都能安装成功。

    -------------------------------------------------------------------------------

    Redis集群

    redis集群要求最小3主3从。我这里跟其它介绍的不一样,我是模拟的真机环境。

    准备6台centos7服务器,其中192.168.1.80我们刚刚装了redis,并启动成功。

    因为redis集群还需要安装ruby,还需要配置集群,所以我的想法是先在一台机器上安装好之后,我们再拷贝整个系统到其它5台机器。这样我们做的重复工作就比较少了。

    192.168.1.80

    192.168.1.81

    192.168.1.82

    192.168.1.83

    192.168.1.84

    192.168.1.85

    安装ruby

    在刚安装好的redis服务器上安装ruby

    因为创建集群时需要用Ruby 运行redis-trib.rb

    [root@localhost redis]# yum -y install ruby ruby-devel rubygems rpm-build

    [root@localhost redis]# gem install redis

    这条命令有点慢,稍等片刻即可安装成功,如下图:

    修改redis.conf

    打开redis.conf,把下面列出来的配置项全部注释,完了拷贝下面7条配置到redis.conf文件末尾

    port 6379

    bind 192.168.1.80

    daemonize yes

    cluster-enabled yes

    cluster-config-file nodes-6379.conf

    cluster-node-timeout 15000

    pidfile /var/run/redis_6379.pid

    克隆5台系统

    克隆5台操作系统,并且每台系统的redis.conf中的bind修改成对应的IP

    我用的虚拟机,克隆前先关掉虚拟机,即192.168.1.80。不然无法克隆。

    打开相关端口

    说明:

    redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口

    集群总线端口为redis客户端连接的端口 + 10000

    如redis端口为6379,则集群总线端口为16379

    所以,所有服务器需要开通redis的客户端连接端口和集群总线端口

    每台都要开启这两个端口

    开启6379端口和16379端口

    [root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent

    [root@localhost ~]# firewall-cmd --zone=public --add-port=16379/tcp --permanent

    重启防火墙

    [root@localhost ~]# firewall-cmd --reload

    启动redis

    每台都要启动

    [root@localhost ~]# cd /usr/local/redis/

    [root@localhost redis]# src/redis-server redis.conf

    启动集群

    [root@localhost ~]# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.1.80:6379 192.168.1.81:6379 192.168.1.82:6379 192.168.1.83:6379 192.168.1.84:6379 192.168.1.85:6379

    如下图,表示成功启动

    仔细看这张图,其中

    192.168.1.80

    192.168.1.81

    192.168.1.82

    三台节点自动设置成了主节点

    192.168.1.83

    192.168.1.84

    192.168.1.85

    三台节点自动设置成了从节点,而且每个从节点对应哪个主节点都有说明。

    连接redis集群 

    在192.168.1.80机器上进行连接

    [root@localhost redis]# src/redis-cli -h 192.168.1.80 -c -p 6379

    必须要加:-c参数

    在192.168.1.80节点上写一条数据,看图:

    然后Ctrl+c退出redis客户端,再连接到192.168.1.83节点上进行查询

    [root@localhost redis]# src/redis-cli -h 192.168.1.83 -c -p 6379

    看图:

    看到没,跳转到192.168.1.80上了,从192.168.1.80获取的数据

    好了,成功了,累死宝宝了。

    参考网址

    https://redis.io/download

    http://os.51cto.com/art/201702/533052.htm?pc

    如果重启服务器后,再次执行redis-trib.rb会报错如下错误:

    [ERR] Node 192.168.1.80:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

    解决方法:

    删除dump.rdb和nodes-6379.conf这两个文件,然后重启redis服务,最后启动集群。

    1次不行搞2次,2次不行搞3次。多删除几次。

  • 相关阅读:
    .hpp文件
    最小高度的BST
    检查图中的有向路径
    c++ 对象内存布局详解
    链表求差
    offer--链表反转和从尾到头打印链表
    平衡二叉树的判断
    java 抽象类和接口
    原型模式--prototype
    装饰模式decorator
  • 原文地址:https://www.cnblogs.com/gaosf/p/11698967.html
Copyright © 2011-2022 走看看