Centos7安装Redis-4.0.1集群

试验机操作系统:CentOS Linux release 7.5.1804 (Core)

下载Redis

下载地址:https://redis.io/download

下载版本:redis-4.0.1.tar.gz

[root@Centos7-1 ~]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz

安装gcc与psmisc

yum install gcc psmisc

解压tar包

[root@Centos7-1 ~]# tar zxvf redis-4.0.1.tar.gz

[root@Centos7-1 ~]# mv redis-4.0.1 /usr/local/rediscd /soft

编译安装

[root@Centos7-1 ~]#cd /usr/local/redis

[root@Centos7-1 redis]#make MALLOC=libc

[root@Centos7-1 redis]#make & make install

说明:如果在make的时候不指定内存管理方式,会报错的:

zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录。

malloc是管理内存碎片的。

使用systemctl管理服务

[root@Centos7-1 redis]# vim /lib/systemd/system/redis.service

[Unit] Description=Redis After=network.target [Service] ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --daemonize no ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown [Install] WantedBy=multi-user.target

*   [Unit] 表示这是基础信息

*   Description 是描述
*   After 是在那个服务后面启动,一般是网络服务启动后启动

*   [Service] 表示这里是服务信息

*   ExecStart 是启动服务的命令
*   ExecStop 是停止服务的指令

*   [Install] 表示这是是安装相关信息

*   WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

刷新systemctl配置

[root@Centos7-1 redis]#systemctl daemon-reload

启动reids

[root@Centos7-1 redis]#systemctl start redis; systemctl enable redis

[root@Centos7-1 redis]#systemctl status redis

===========================================

Redis集群安装配置

redis集群最小是3主3从。

192.168.1.196      CentOS Linux release 7.5.1804 (Core)

192.168.1.127      CentOS Linux release 7.5.1804 (Core)

192.168.1.210      CentOS Linux release 7.5.1804 (Core)

192.168.1.46       CentOS Linux release 7.5.1804 (Core)

192.168.1.172      CentOS Linux release 7.5.1804 (Core)

192.168.1.173      CentOS Linux release 7.5.1804 (Core)

在一台机器上装好redis,然后拷贝到其他服务器上去。

安装ruby

创建redis集群需要用Ruby运行redis-trib.rb

[root@Centos7-1 redis]# yum install centos-release-scl-rh -y

[root@Centos7-1 redis]# yum install rh-ruby23 rh-ruby23-ruby-devel rubygems rpm-build -y

[root@Centos7-1 redis]# scl enable rh-ruby23 bash
1.移除现有的镜像

[root@Centos7-1 redis]# gem sources --remove https://rubygems.org/

2.使用淘宝镜像

[root@Centos7-1 redis]# gem sources -a https://ruby.taobao.org/

3.验证当前ruby版本

[root@Centos7-1 redis]# gem sources -l

[root@Centos7-1 redis]# gem install redis

修改redis.conf

打开redis.conf,把下面列出来的配置项全部注释,完了拷贝下面7条配置到redis.conf文件末尾

port 6379

bind 192.168.1.196

daemonize yes

cluster-enabled yes

cluster-config-file nodes-6379.conf

cluster-node-timeout 15000

pidfile /var/run/redis_6379.pid

把每台机器上的redis.conf中的bind修改成对于的IP

启动redis

每台都要启动

[root@Centos7-1 redis]# systemctl restart redis

启动集群

[root@Centos7-1 redis]# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.1.196:6379 192.168.1.127:6379 192.168.1.210:6379 192.168.1.46:6379 192.168.1.172:6379 192.168.1.173:6379

>>> Creating cluster

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

192.168.1.196:6379

192.168.1.127:6379

192.168.1.210:6379

Adding replica 192.168.1.172:6379 to 192.168.1.196:6379

Adding replica 192.168.1.173:6379 to 192.168.1.127:6379

Adding replica 192.168.1.46:6379 to 192.168.1.210:6379

M: 8f665799d22539e4fb817c2bbbd2762fba8a452d 192.168.1.196:6379

slots:0-5460 (5461 slots) master

M: 124c4d42b375bc0eb9341ec350c85eb178037a5c 192.168.1.127:6379

slots:5461-10922 (5462 slots) master

M: 17a0cfe1dddcbaff42d678dbd887409ad8059011 192.168.1.210:6379

slots:10923-16383 (5461 slots) master

S: 9d0a59860f1aa7affceaa1a2e7f22c3bd16ecf87 192.168.1.46:6379

replicates 17a0cfe1dddcbaff42d678dbd887409ad8059011

S: 2fb0663db810e5eef383ceb75022c69a10a73cfa 192.168.1.172:6379

replicates 8f665799d22539e4fb817c2bbbd2762fba8a452d

S: fd072f90fd19fbe56e133dd3893d7854f6749358 192.168.1.173:6379

replicates 124c4d42b375bc0eb9341ec350c85eb178037a5c

Can I set the above configuration? (type 'yes' to accept): yes

>>> Nodes configuration updated

>>> Assign a different config epoch to each node

>>> Sending CLUSTER MEET messages to join the cluster

Waiting for the cluster to join......

>>> Performing Cluster Check (using node 192.168.1.196:6379)

M: 8f665799d22539e4fb817c2bbbd2762fba8a452d 192.168.1.196:6379

slots:0-5460 (5461 slots) master

1 additional replica(s)

S: 2fb0663db810e5eef383ceb75022c69a10a73cfa 192.168.1.172:6379

slots: (0 slots) slave

replicates 8f665799d22539e4fb817c2bbbd2762fba8a452d

M: 124c4d42b375bc0eb9341ec350c85eb178037a5c 192.168.1.127:6379

slots:5461-10922 (5462 slots) master

1 additional replica(s)

S: fd072f90fd19fbe56e133dd3893d7854f6749358 192.168.1.173:6379

slots: (0 slots) slave

replicates 124c4d42b375bc0eb9341ec350c85eb178037a5c

S: 9d0a59860f1aa7affceaa1a2e7f22c3bd16ecf87 192.168.1.46:6379

slots: (0 slots) slave

replicates 17a0cfe1dddcbaff42d678dbd887409ad8059011

M: 17a0cfe1dddcbaff42d678dbd887409ad8059011 192.168.1.210:6379

slots:10923-16383 (5461 slots) master

1 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

连接redis集群

[root@localhost redis]# src/redis-cli -h 192.168.1.196 -c -p 6379

必须要加:-c参数

在192.168.1.196节点上写一条数据:

[root@Centos7-1 redis]# redis-cli -h 192.168.1.196 -c -p 6379

192.168.1.196:6379> set key test

-> Redirected to slot [12539] located at 192.168.1.210:6379

OK

192.168.1.210:6379> get key

"test"

192.168.1.210:6379> set key2 test2

-> Redirected to slot [4998] located at 192.168.1.196:6379

OK

192.168.1.196:6379> get key2

"test2"

可以看到插入键值在196机器上,获取键值的时候,自动跳到其他机器上

获取集群信息

192.168.1.210:6379> cluster info

cluster_state:ok

cluster_slots_assigned:16384

cluster_slots_ok:16384

cluster_slots_pfail:0

cluster_slots_fail:0

cluster_known_nodes:6

cluster_size:3

cluster_current_epoch:6

cluster_my_epoch:3

cluster_stats_messages_ping_sent:1624

cluster_stats_messages_pong_sent:1665

cluster_stats_messages_meet_sent:3

cluster_stats_messages_sent:3292

cluster_stats_messages_ping_received:1662

cluster_stats_messages_pong_received:1627

cluster_stats_messages_meet_received:3

cluster_stats_messages_received:3292

查看集群节点

192.168.1.210:6379> cluster nodes

124c4d42b375bc0eb9341ec350c85eb178037a5c 192.168.1.127:6379@16379 master - 0 1530001192724 2 connected 5461-10922

9d0a59860f1aa7affceaa1a2e7f22c3bd16ecf87 192.168.1.46:6379@16379 slave 17a0cfe1dddcbaff42d678dbd887409ad8059011 0 1530001190720 4 connected

8f665799d22539e4fb817c2bbbd2762fba8a452d 192.168.1.196:6379@16379 master - 0 1530001195729 1 connected 0-5460

17a0cfe1dddcbaff42d678dbd887409ad8059011 192.168.1.210:6379@16379 myself,master - 0 1530001190000 3 connected 10923-16383

2fb0663db810e5eef383ceb75022c69a10a73cfa 192.168.1.172:6379@16379 slave 8f665799d22539e4fb817c2bbbd2762fba8a452d 0 1530001196732 5 connected

fd072f90fd19fbe56e133dd3893d7854f6749358 192.168.1.173:6379@16379 slave 124c4d42b375bc0eb9341ec350c85eb178037a5c 0 1530001194727 6 connected

如果重启服务器后,再次执行redis-trib.rb会报错如下错误:

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

解决方法:

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

推荐阅读更多精彩内容