如何安装部署Redis集群

当你试图解决一个你不理解的问题时,复杂化就产成了。—Andy Boothe

Redis集群安装部署

Redis是一个运行在内存的非关系型数据库,因为其速度快(效率高),支持数据的持久化(安全),事务操作的原子性(所有操作的原子性),使得其在高并发场景下广泛使用。Redis也常常在高并发场景下作为缓存服务器的角色进行使用,在《大型网站技术架构:核心原理与案例分析》中提到:高并发场景下性能的优化优先考虑缓存。常用的缓存服务有Redis,MongoDB等。

image.png

Redis

Redis官方网站上可以在Download it选项中获取到Redis的最新版本或者旧版本,本地搭建我使用的是redis-5.0.9.tar.gz版本,比较稳定。可以使用wget命令下载相关压缩包,并对压缩包进行解压如下:


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

  tar -zxvf redis-5.0.9.tar.gz -C ~/cache/

Redis的编译和安装

首先我们需要确定我们集群的规模,这里建立集群6个节点,三个master节点,三个slave节点。

首先我们切换目录到上一步骤的解压目录,cd redis6379,然后执行makemake install命令对Redis进行安装。然后,我们建立集群目录。在Redis集群搭建的过程中主要是Redis的配置文件Redis.conf文件中的配置不同而已,这里我直接拷贝的编译后的Redis目录。可以得到如下节点分布情况:

image.png

更改Redis配置为集群模式

因为在同一台电脑上搭建的Redis集群,所以需要修改Redis的端口号来标识不同的进程,并开启集群模式。六台实例的端口号分布在6379~6384,详细配置如下:

| 参数 | 参数值 | 额外说明 |

| :--------- | :--: | ----------- |

| bind | Ip地址 | 外部可访问IP |

| port | 端口号 | 需要确认端口是否已被占用 |

| daemonize | 后台进程 | 设置为yes |

| pidfile | 进程文件 | 修改为对应端口号 |

| cluster-enabled | 集群模式 | 设置为yes |

|cluster-config-file | nodes_7000.conf | 首次启动自动生成 |

|cluster-node-timeout | 15000 | 请求超时时间,默认15s |

|appendonly | yes | aof日志开启 |

Redis启动脚本


path=`pwd`

for dic in `ls $path`

do

  if [[ ${dic} == redis* ]] && [[ -d ${dic} ]];then

    path=${dic}'/src'

    cd ${path}

    ./redis-server ../redis.conf

    cd ../../

  fi

done

保存到文件,start-cluster.sh文件中,并执行。

检查Redis启动情况

image.png

创建集群

在启动集群命令时,我遇到了比较多的问题需要处理,详细问题如下:

  1. ruby版本过低

  2. 执行gem install redis 超时

等问题。

关于问题一:需要卸载安装高版本的ruby。我本地虚拟级安装的为2.5.3版本。

image.png

主要步骤包括卸载,安装,设置环境变量,安装redis等步骤,详情如下:


  # 卸载

  yum remove ruby

  # 下载新版本

  wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz

  # 解压安装

  tar zxvf ruby-2.5.3.tar.gz

  cd ruby-2.5.3

  ./configure --prefix=/usr/local/ruby

  make

  make install

  # 配置环境

  export PATH=$PATH:/root/pl/ruby-2.5.3/bin >>/etc/profile

  source /etc/profile

  # 验证

  ruby -version

然后就可以执行


  gem install redis

关于问题二:因为ruby的源是国外的,导致执行gem install redis超时卡死,需要更新yum源头,可按照如下方式更新:

image.png

可以拷贝如下命令:


gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

处理完以上的问题我们就可以创建集群了,创建集群前,我们已经启动了所有的Redis节点,所以:


./redis-cli --cluster create IP:6380  IP:6381  IP:6382 IP:6383 IP:6384 --cluster-replicas 1

可以大致看一下集群关系:


./redis-cli -h IP -p 6379 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq

执行上面的命令,我们可以得出下面的结果


IP:6379(master)->IP:6383(slave)

IP:6380->IP:6384

IP:6381->IP:6382

我们测试一下:


IP:6379> sadd aaa ccc

-> Redirected to slot [10439] located at 192.168.64.134:6380

(integer) 1

执行成功,其实Redis集群搭建远远不止这些,后面还会结合Zookeeper对Redis节点进行协调,并设置哨兵等问题对改文档进行更改。希望大家多多关注!!!

个人公众号信息:看相声也要敲代码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355