mac环境下redis集群的搭建

一,为什么要搭建redis集群

    个人理解,redis是个内存数据库,数据都存在内存中,既然存在内存中,那么大小肯定受服务器内存大小的限制。比如一个64G内存的服务器,一个redis撑死也就能存储64G的数据量,而对于大型网站架构,数据量岂止是64G,有的网站甚至存储了上T的数据量,遇见这种情况,怎么办?

    在redis 3.0版本之前,通常是获取key的hashcode,然后取模(mod),但是这种做法的缺点是无法很好的支持动态伸缩要求,一但有节点的增加或者删除操作,都会导致key无法在redis上命中。redis 3.0版本之后开始支持集群(cluster),采用的是哈希槽(hash slot)。他可以把多个redis实例整合在一起,形成一个集群。比如100G的数据量,一台服务器存储不下,那我可以将它分散到多台机器上,每个客户端都连接一个redis服务实例,这是一个无中心结构,每个节点都保存数据和整个集群的状态。每个节点也都知道其他节点所负责的槽。比如下面的例子:

我在集群7001几点set了一个key:“cluster7001” value : "test"

那么我在集群的7002节点访问这个key:

可以看到,redis会指引你转向至正确的节点(7001)和槽的位置(1391)

二,mac下redis集群的搭建

    好,我们简单介绍了一下redis集群出现的背景,由于本片博客重点在于搭建redis集群,所以关于redis集群的知识不做详细的介绍,我们言归正传:

要想让redis集群工作,至少需要3个主节点,那我们在这里要创建6个节点,三个主,三个从。对应的节点端口,我们定义为7001-7006

1、下载和安装redis

    这里不做详细介绍,直接去官网下载最新版本的redis即可。

2、创建集群目录

    找到redis的安装目录,在里面创建集群文件夹

    sudo mkdir redis-cluster

    cd 到redis-cluster文件夹里,创建六个节点文件夹:

    mkdir redis01

    mkdir redis02

    mkdir redis03

    mkdir redis04

    mkdir redis05

    mkdir redis06

3、修改配置文件

    找到redis安装目录,vi redis.conf,需要修改下面信息:

    port 7001 --端口

  daemonize yes --指定redis是否以后台进程方式启动

  cluster-eanbled yes --集群开启开关

  cluster-config-file nodes.conf --节点配置说明文件,redis自己维护

  cluster-node-timeout 5000 --心跳测试反应时间,超过5s没有反应认为该节点挂掉

  appendonly yes --Redis持久化第二种方式,AOF,默认开启,默认每秒执行一次持久化保存,也可以设置成实时保持,这个比save更安全。

  修改完这个配置文件后,分辨拷贝到六个文件节点文件夹中,redis01-06,同时修改对应端口7001-7006,然后将redis安装包src路径下的redis-server文件分别拷贝到六个节点文件夹中。

mac环境下redis集群的搭建_第1张图片 此时,每个节点文件夹中都应该有红框中的两个文件。

4、分别启动redis6个实例

 打开终端,分别执行以下命令:

 cd /usr/local/redis/redis-cluster/redis01/

 sudo redis-server redis.conf

 cd /usr/local/redis/redis-cluster/redis02/

 sudo redis-server redis.conf

  ......

  6个实例都启动完毕,检验一下redis启动情况:

 ps -ef|grep redis

 会看到6个实例都已启动成功:

 mac环境下redis集群的搭建_第2张图片

 但是现在只是分别启动了6个单独的redis实例,还不存在“群”的概念,我们要做的,是把这六个实例串联起来,组成“群”

5、升级ruby安装gem

    gem的安装要求ruby的版本在1.8.7以上,先看一下本机的版本

   

    我的版本是2.0.0,复合要求。然后安装:

    gem install redis

    mac环境下redis集群的搭建_第3张图片

   出现上述情况,安装成功。

6、创建redis集群

    cd 到redis安装目录下的src路径下,找到redis-trib.rb文件,执行一下命令:

    ./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

   执行完后会看到mac环境下redis集群的搭建_第4张图片

  至此,redis集群搭建成功!我们来测试一下:

  cd到redis安装目录的src目录,会看到redis-cli 这个文件,然后执行:

  redis-cli -c -p 7001

  set test yeah

  然后会看到7001(主)7004(从)都有这个key,ok,测试通过!

  

你可能感兴趣的:(mac环境下redis集群的搭建)