Redis3.0.5集群安装

news/2024/7/4 10:06:14

为什么80%的码农都做不了架构师?>>>   hot3.png

首先,直接访问redis.io官网,下载redis.tar.gz,现在版本3.0.5,我下面已经在虚拟机启动了两个linux来部署redis。

1. 下载和解包

   cd /usr/local/

   wget http://download.redis.io/releases/redis-3.0.5.tar.gz

   tar -zxvf redis-3.0.5.tar.gz

   mv redis-3.0.5 redis

2. 编译安装

   cd redis

   make && make install

3. 创建redis节点

     我们将在两台Server上创建六个节点,每台3个,3主3从。

   1)Server1 

     cd /usr/local/

     mkdir redis_cluster   //创建集群目录

     mkdir 7000 7001 7002   //分别代表三个节点    其对应端口 7000 7001 7002

     创建7000节点为例,

     cd ./7000

     cp /usr/local/redis/redis.conf   ./    //拷贝到当前7000目录

     vi redis.conf    //编辑配置  主要修改一下几个参数

daemonize    yes                          //redis后台运行
pidfile  /var/run/redis_7000.pid        //pidfile文件对应7000
port  7000                                  //端口7000
cluster-enabled  yes                    //开启集群   把注释#去掉
cluster-config-file  nodes.conf      //集群的配置  配置文件首次启动自动生成
cluster-node-timeout   5000       //请求超时  设置5秒够了
appendonly   yes                  //aof日志开启   有需要就开启,它会每次写操作都记录一条日志  (全持久化)
#save 900  1
#save 300  10                    //注释掉这几个,这是写磁盘的配置,我只是做缓存,不需要写磁盘 (半持久化)
#save 60   10000                 //开启的话,在启动节点后,会生成相应的dump.rdb

配置好了,就相应地把这个修改后的配置文件拷贝到 7001  7002目录,注意要修改监听端口port 7001 7002.

    接下来,启动服务,进入节点目录

    依次执行  redis-server   redis.conf

    可以看到生成了appendonly.aof  nodes.conf

ps -ef | grep redis 查看是否启动成功

       root 885 0.8 0.2 129452 2620 ? Ssl 20:10 0:21 redis-server *:7000 [cluster]
       root       887  0.8  0.2 129452  2616 ?        Ssl  20:10   0:21 redis-server *:7001 [cluster]
       root       893  0.8  0.2 128356  2612 ?        Ssl  20:10   0:21 redis-server *:7002 [cluster]

    netstat -tnlp | grep redis 可以看到redis监听端口

       tcp        0      0 0.0.0.0:7000                0.0.0.0:*                   LISTEN      885/redis-server *
       tcp        0      0 0.0.0.0:7001                0.0.0.0:*                   LISTEN      887/redis-server *
       tcp        0      0 0.0.0.0:7002                0.0.0.0:*                   LISTEN      893/redis-server *
       tcp        0      0 0.0.0.0:17000               0.0.0.0:*                   LISTEN      885/redis-server *
       tcp        0      0 0.0.0.0:17001               0.0.0.0:*                   LISTEN      887/redis-server *
       tcp        0      0 0.0.0.0:17002               0.0.0.0:*                   LISTEN      893/redis-server *

    我们除了看到 配置文件中设置的端口700*    还有700*+10000  (1700*), 前者是客户端访问的, 后者是集群内部节点之间访问的.

    注意,在多台Server间搭建集群,如果开了防火墙的,需要设置iptables开放上面所有端口.

103036_QaVr_1175995.png

   2) Server2

    步骤和Server1一样, 设置端口  7003  7004  7005

4. 创建集群

   前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个 工具:redis-trib.rb  (/usr/local/redis/src/redis-trib.rb) 看后缀就知道这鸟东西不能直接执行,它是用ruby写的一个程序,所以我们还得安装ruby.

   yum -y install ruby ruby-devel rubygems rpm-build    //网上不明觉厉,都是这么安装的,就跟着这样玩吧

   再用 gem 这个命令来安装 redis接口     gem貌似是ruby的一个工具包  反正没错就是了。

   gem install redis     //等一会儿就好了

   当然,方便操作,两台Server都要安装。

103338_0cP3_1175995.png  上面的步骤完事了,接下来运行一下redis-trib.rb


/usr/local/src/redis/src/redis-trib.rb  create  --replicas  1 127.0.0.1:7000  127.0.0.1:7001  127.0.0.1:7002  10.99.1.150:7003  10.99.1.150:7004  10.99.1.150:7005  
解释下, --replicas  1  表示 自动为每一个master节点分配一个slave节点    上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)

    前面已经提醒过的 防火墙一定要开放监听的端口,否则会创建失败。

    运行中,提示Can I set the above configuration? (type 'yes' to accept): yes    //输入yes

    接下来 提示   Waiting for the cluster to join..........  安装的时候在这里就一直等等等,没反应,傻傻等半天,看这句提示上面一句,Sending Cluster Meet Message to join the Cluster.

    这下明白了,我刚开始在一台Server上去配,也是不需要等的,这里还需要跑到Server2上做一些这样的操作。

    在Server2, redis-cli -c -p 700*  分别进入redis各节点的客户端命令窗口, 依次输入 cluster meet 192.168.1.197 7000…… 

    回到Server1,已经创建完毕了。

    查看一下 /usr/local/redis/src/redis-trib.rb check 127.0.0.1:7000

    到这里集群已经初步搭建好了。

114048_JV3f_1175995.png


查看集群节点状态

redis-cli -p 7000 cluster nodes

114314_qp4E_1175995.png

这里面就知道哪些是master,哪些是slave


测试数据

114535_r1xV_1175995.png

转载于:https://my.oschina.net/gaowm/blog/535254


http://www.niftyadmin.cn/n/4640336.html

相关文章

TensorFlow实战之Scikit Flow系列指导:Part 2

原文地址:这里 本部分我们将继续深入并且尝试构建多层全连接的神经网络,并且自定义网络模型并在此基础上尝试卷积网络。 Multi-layer fully connected neural network 当然,这里并没有太多关于其他的线性/Logistic拟合的框架。TensorFlow一个…

quad 和 plane 区别是什么?

Quad就是两个三角形组成四边形,Plane会有很多三角形,哦也 貌似Quad拖上去后看不见,很薄的感觉

Oracle使用杂记

2019独角兽企业重金招聘Python工程师标准>>> 1)首先安装oracle网上应该有好多文档,这就不说了。安装过程经常忘记创建用户, 我们可以使用默认创建好的用户 system 来进行登录,然后在创建其他的用户。(小菜我…

实现部分库函数

1.模拟实现strncat//与strcat无异,只是追加的块大小不一样,strncat只是向后追加n个字节的内容char *my_strncat(char * dst, const char *src,int count){char *p dst;while (*dst){dst;}while (count--) // 用数count控制循环的次数*dst *src;}…

修改 linux 默认启动级别 设置系统时间   定时关机

1、设置系统时间 为 2016 -1-1 11:11date -s "2016-1-1 11:11" 2、显示时间 为 2016 -1-1 11:11date "%F %H:%M" 3、设置一小时后自动关机 取消为 -cshutdown -h 60 -tsec : -t 后面加秒数…

关于什么是句柄(经典)

句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。 从上面的定义中的我们可以看到&a…

微信初始

2019独角兽企业重金招聘Python工程师标准>>> 1. 使用wechat-php-sdk,配置多次后发现,不能将微信公众平台url地址设为: http://xxxxx/index.php 2. php 读取数据库 要加一句 mysql_query("SET NAMES utf8"); 3. 使用微擎阿里云配…

企业加密系统应用综述之常用的加密算法介绍

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。对称加密指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则…