Redis 之 集群搭建(连接带加密认证)

目录

(一)Redis各节点安装

(二)安装Ruby环境

(三)安装RubyGems

(四)使用redis-trib.rb创建集群

(五)集群测试

(六)常见问题

序言

redis-3.2.9.tar.gz(*)    http://www.redis.cn/download.html

ruby-2.3.1.tar.gz(*)   http://www.ruby-lang.org/en/downloads/

rubygems-2.7.4.tgz(*)   https://rubygems.org/pages/download

openssl-1.0.2n.tar.gz     https://www.openssl.org/source/

redis-3.2.1.gem(*)   https://rubygems.org/gems/redis/

下载上述软件包并上传服务器,开始按如下步骤进入安装。

(一)Redis各节点安装

1.解压redis-3.2.9.tar.gz,编译安装;

     cd ~/common

     tar -zxvf redis-3.2.9.tar.gz

     mv redis-3.2.9 redis-cluster

     cd redis-cluster

     make

     make install --prefix=~/common/redis-cluster

2.修改Redis配置文件;

     依次复制出6个节点的配置文件,分别进行编辑配置,操作如下:

     mkdir conf

     cp redis.conf conf/6001.conf

     ...

     cp redis.conf conf/6006.conf

     cd conf

     vi 6001.conf

bind 127.0.0.1

port 6001    #指定端口,6001-6006

daemonize yes    #后台运行

pidfile /root/common/redis-cluster/pid/redis_6001.pid

logfile "/root/common/redis-cluster/logs/redis_6001.log"

#masterauth 123456

#requirepass 123456    #开启加密认证

cluster-enabled yes    #开启集群模式

cluster-node-timeout 15000

cluster-config-file nodes-6001.conf

注:节点加入集群前不可开启加密认证,否则会出现连接不上的现象。

正确做法:先注释该配置启动所有节点,待集群创建完毕后,修改配置重启各个节点即可,或参考本文结尾说明。

3.编写集群启动脚本;

cluster-run.sh

#!/bin/bash

./src/redis-server conf/6001.conf

./src/redis-server conf/6002.conf

./src/redis-server conf/6003.conf

./src/redis-server conf/6004.conf

./src/redis-server conf/6005.conf

./src/redis-server conf/6006.conf

(二)安装Ruby环境

     解压ruby-2.3.1.tar.gz,编译安装;

     cd ~/common

     tar -zxvf ruby-2.3.1.tar.gz

     mv ruby-2.3.1 ruby

     cd ruby

     ./configure --prefix=~/common/ruby

     make

     make install

(三)安装RubyGems

     gem install --local redis-3.2.1.gem

[root@localhost ~]# gem install --local redis-3.2.1.gem

Successfully installed redis-3.2.1

Parsing documentation for redis-3.2.1

Installing ri documentation for redis-3.2.1

Done installing documentation for redis after 0 seconds

1 gem installed

(四)使用redis-trib.rb创建集群

     ./redis-trib.rb create --replicas 1 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006

(使用create命令 --replicas 1 参数表示为每个主节点创建一个从节点,其他参数是实例的地址集合。)

(五)集群测试

    略。

(六)常见问题

(一)关于zlib包的报错

[root@localhost zlib]# gem install redis-3.2.1.gem

ERROR:  Loading command: install (LoadError)

cannot load such file -- zlib

ERROR:  While executing gem ... (NoMethodError)

undefined method `invoke_with_build_args' for nil:NilClass

解决方案:

进入ruby源码文件夹

安装ruby自身提供的zlib包

cd ext/zlib

ruby ./extconf.rb

make

make install

(二)关于openssl的报错

[root@localhost src]# gem install redis-3.2.1.gem

ERROR: While executing gem ... (Gem::Exception)

Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

解决方案:

1.安装openssl

tar -xzvf openssl-1.0.2n.tar.gz

mv openssl-1.0.2n/ /usr/local/src/

cd /usr/local/src/openssl-1.0.2n

./config -fPIC --prefix=/usr/local/openssl enable-shared

./config -t

make && make install

cd ext/openssl

ruby extconf.rb --with-openssl-dir=/usr/local/openssl

ln -s ~/common/ruby/include /

make

make install

(三)关于RubyGems的报错

[kd_dev@s2mkf4 src]$ ./redis-trib.rb create --replicas 1 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)

    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'

    from ./redis-trib.rb:25:in `'

解决方案:

安装RubyGems

  gem install --local redis-3.2.1.gem

(四)其它问题

[kd_dev@s2mkf4 src]$ ./redis-trib.rb create --replicas 1 192.168.156.111:7000 192.168.156.111:7001 192.168.156.112:7000 192.168.156.112:7001 192.168.156.113:7000 192.168.156.113:7001

>>> Creating cluster

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

【当前节点处于集群状态,需解除后再重新创建集群  命令:cluster reset】

[kd_dev@s2mkf4 src]$ ./redis-trib.rb create --replicas 1 192.168.156.111:7000 192.168.156.111:7001 192.168.156.112:7000 192.168.156.112:7001 192.168.156.113:7000 192.168.156.113:7001

>>> Creating cluster

[ERR] Sorry, can't connect to node 192.168.156.113:7000

【当前节点处于加密模式 “requirepass 123456”,需注掉配置后重启,方可加入到集群中,之后再做加密】

集群密码设置小结

方式一:修改所有redis集群中的redis.conf文件加入:

masterauth 123456

requirepass 123456

说明:这种方式需要重新启动各节点

方式二:进入各个实例进行设置:

./redis-cli -c -h 192.168.156.113 -p 7000

config set masterauth 123456

config set requirepass 123456

auth 123456

config rewrite

之后分别使用./redis-cli -c -h 192.168.156.113 -p 7001...命令给各节点设置上密码

注意:各个节点密码都必须一致,否则Redirected就会失败, 推荐这种方式,这种方式会把密码写入到redis.conf里面去,且不用重启

设置密码之后如果需要使用redis-trib.rb的各种命令

如:redis-trib.rb check 127.0.0.1:7000,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000

解决办法:

  修改gem的redis工具下的一个文件client.rb,对应内容如下:

:password => "123456", #指定redis登录密码

(一般默认路径/usr/lib/ruby/gems/1.8/gems/redis-3.2.1/lib/redis/client.rb,另可通过命令find / -name client.rb进行全盘搜索)



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

推荐阅读更多精彩内容