Redis集群搭建

一、如果是自己搭建,可以用虚拟机搭建,一般需要三台虚拟服务器

安装前记得安装gcc,redis 基于gcc
yum install gcc

1. 下载和解包(也可以下载好的,从本地上传)

cd /test/

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

tar -zxvf redis-3.2.1.tar.gz

2. 编译安装


cd redis-3.2.1

make && make install

3. 创建redis节点

测试我们选择3台服务器,分别为:192.168.33.20,192.168.33.21,192.168.33.22每分服务器有2个节点。

a) 我先在192.168.33.20创建2个节点:

cd /test/

mkdir redis_cluster //创建集群目录

cd redis_cluster

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

//创建7001节点为例,拷贝到7001目录

cp /test/redis-3.2.1/redis.conf.7001

//拷贝到7001目录

cp /test/redis-3.2.1/redis.conf.7001

//拷贝到7002目录

cp /test/redis-3.2.1/redis.conf.7002

 
b) 分别对7001,7002文件夹中的2个文件修改对应的配置



daemonize    yes //redis后台运行

bind  192.168.33.22 //对应自己的机器ip,默认会报错([ERR] Sorry, can't connect to node )

pidfile /var/run/redis_7001.pid //pidfile文件对应7001,7002   进程id

logfile   "/test/redis_log/redis_7000.log" //日志记录文件

dir  "/test/redis_db" //集群相关目录存放地址

port 7001 //端口7001,7002

cluster-enabled yes //开启集群  把注释#去掉

cluster-config-file nodes_7001.conf //集群的配置  配置文件首次启动自动生成 7000,7001,7002

cluster-node-timeout 5000 //请求超时  设置5秒够了

appendonly yes //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

c) 在192.168.33.21 和192.168.33.22创建2个节点:对应的端口改为7003,7004,7005,7006配置对应的改一下就可以了。
d) 两台机启动各节点(三台服务器方式一样)


cd /test/redis-3.2.1

redis-server redis_cluster/7001/redis.conf

redis-server redis_cluster/7002/redis.conf

redis-server redis_cluster/7003/redis.conf

redis-server redis_cluster/7004/redis.conf

redis-server redis_cluster/7005/redis.conf

redis-server redis_cluster/7006/redis.conf
e) 查看服务

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

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

pkill -9  redis   #可以杀死启动的redis的所有进程

4、搭建集群

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

yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 这个命令来安装 redis接口。gem是ruby的一个工具包.
gem install redis    //等一会儿就好了
***当然大部分情况下这样安装,安装完成后,会发现用yum安装的版本不对,版本不能太低
    可以安装rubygems-2.6.13.tgz ,版本在2.0以上

    tar zxvf rubygems-2.6.13.tgz
    cd rubygems-2.6.13
    ruby setup.rb

同时也需要安装redis模块 redis-3.3.1.gem
使用gem命令安装
gem install -l redis-3.3.1.gem

再重新执行上一条安装redis接口命令
上面的步骤完事了,接下来运行一下redis-trib.rb

/test/redis-3.2.1/src/redis-trib.rb

image.png
到这,应该明白了吧, 就是靠上面这些操作 完成redis集群搭建的。确认所有的节点都启动,接下来
使用参数create 创建 (在192.168.33.20中来创建)

/test/redis-3.2.1/src/redis-trib.rb  create  --replicas  1  192.168.33.20:7001 192.168.33.20:7002 
192.168.33.21:7003 192.168.33.21:7004  192.168.33.22:7005  192.168.33.22:7006
解释下, --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上做一些这样的操作。
    在192.168.22.21, redis-cli -c -p 7002、7003 分别进入redis各节点的客户端命令窗口, 依次
输入 cluster meet 192.168.22.21 7000
    回到Server1,已经创建完毕了。
    查看一下 /test/redis/src/redis-trib.rb check 192.168.1.237:7000
    到这里集群已经初步搭建好了。

5、redis命令

入redis客户端:
redis-cli -h 192.168.33.20 -p 7001 -c

查看redis信息
cluster info

查看节点信息
cluster nodes

6. 安装可能遇到的问题

1、CC adlist.o
  /bin/sh: cc: command not found
  make[1]: *** [adlist.o] Error 127
  make[1]: Leaving directory `/usr/local/redis-3.2.1/src
  make: *** [all] Error 2
解决办法:GCC没有安装或版本不对,安装一下
yum  install  gcc




 2、zmalloc.h:50:31: 
  error: jemalloc/jemalloc.h: No such file or directory
  zmalloc.h:55:2: error: 

  #error "Newer version of jemalloc required"
  make[1]: *** [adlist.o] Error 
  1
  make[1]: Leaving directory `/data0/src/redis-2.6.2/src
  make: *** [all] 
  Error 2
解决办法:原因是没有安装jemalloc内存分配器,可以安装jemalloc 或 直接
输入make MALLOC=libc  && make install



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

推荐阅读更多精彩内容