Redis集群部署(手动安装)

1. 安装依赖包

注意:本节需要使用root用户操作

1.1 安装ruby

yum install ruby -y
yum install ruby-devel.x86_64 -y

1.2 安装rubygem

有些系统默认没有rubygems的包,可能需要手动安装,先安装好ruby-irb和ruby-rdoc,然后操作以下步骤。

(1) 下载rubygem包,https://rubygems.org/?locale=zh-CN

(2) 上传rubygems-2.4.8.zip至/redis目录

(3) 解压,安装

unzip rubygems-2.4.8.zip
cd rubygems-2.4.8
ruby setup.rb

1.3 安装redis-gem

上传redis.gem至/redis目录,执行命令gem install -l redis-3.2.2.gem

2. 安装Redis集群

本节开始可使用root用户或者你规划的用户安装redis

2.1 redis安装

上传redis-3.2.1.tar.gz到/redis目录

tar -zxvf redis-3.2.1.tar.gz
cd redis-3.2.1
make
make install PREFIX=/redis/redis

执行make命令可能会遇到这两种错误:

(1)

make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: Leaving directory `/home/wxyuan/redis-3.2.1/deps/hiredis‘
make[2]: *** [hiredis] 错误 2
make[2]: Leaving directory `/home/wxyuan/redis-3.2.1/deps‘
make[1]: [persist-settings] 错误 2 (忽略)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] 错误 127
make[1]: Leaving directory `/home/wxyuan/redis-3.2.1/src‘
make: *** [all] 错误 2

错误原因:缺少gcc包

解决方法:执行命令yum install gcc -y安装gcc包

(2)

cd src && make all
make[1]: Entering directory `/home/wxyuan/redis-3.2.1/src‘
    CC adlist.o
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/home/wxyuan/redis-3.2.1/src‘
make: *** [all] 错误 2

原因分析和解决方法,请参考https://blog.csdn.net/bugall/article/details/45914867

2.2 创建节点目录

mkdir -p /redis/redis/cluster/7380
mkdir -p /redis/redis/cluster/7381

2.3 修改配置文件

将/redis/redis-3.2.1下的配置文件redis.conf拷贝到/redis/redis/cluster/7380下,并作如下修改

bind 192.168.1.101 127.0.0.1 #注意192.168.1.10改成你的机器IP。绑定多个IP,既可以远程访问,也可以本地客户端访问
port 7380 #端口可以修改
appendonly yes
daemonize yes
cluster-enabled yes
cluster-config-file /redis/redis/cluster/7380/nodes.conf
cluster-node-timeout 5000

2.4 复制配置文件redis.conf到其他节点

cp /redis/redis/cluster/7380/redis.conf /redis/redis/cluster/7381/redis.conf
# port、cluster-config-file需要修改下
#--------------------------------------------------------
#port 7381
#cluster-config-file /redis/redis/cluster/7381/nodes.conf
#------------------------------------------------------

2.5 启动redis

执行如下命令启动redis

[[email protected] ~]$ /redis/redis/bin/redis-server /redis/redis/cluster/7380/redis.conf
[[email protected] ~]$ /redis/redis/bin/redis-server /redis/redis/cluster/7381/redis.conf

启动后,使用命令ps -ef|grep redis可查看redis进程。

[[email protected] ~]$ ps -ef|grep redis
wxyuan     1912      1  0 21:19 ?        00:00:02 /redis/redis/bin/redis-server 192.168.1.101:7380 [cluster]
wxyuan     1916      1  0 21:19 ?        00:00:02 /redis/redis/bin/redis-server 192.168.1.101:7381 [cluster]

注意:以上步骤,另外两台机器需要做同样的操作

3 创建redis集群

注意:创建集群前,最好关闭防火墙,如果防火墙配置不当,可能出现连接拒绝的错误

创建集群,让上面的实例互相通讯(1表示为每个master分配一个salve)

[[email protected] src]$ ./redis-trib.rb create --replicas 1 192.168.1.101:7380 192.168.1.101:7381 192.168.1.102:7380 192.168.1.102:7381 192.168.1.103:7380 192.168.1.103:7381
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.103:7380
192.168.1.102:7380
192.168.1.101:7380
Adding replica 192.168.1.102:7381 to 192.168.1.103:7380
Adding replica 192.168.1.103:7381 to 192.168.1.102:7380
Adding replica 192.168.1.101:7381 to 192.168.1.101:7380
M: 9e486a62edb7be05691219259a534a0491e376e3 192.168.1.101:7380
   slots:10923-16383 (5461 slots) master
S: 51f00a2e9639b0427ec177877d775244307b096e 192.168.1.101:7381
   replicates 9e486a62edb7be05691219259a534a0491e376e3
M: bc2d50daf9adb4e16e40048249ea97ec039dfa46 192.168.1.102:7380
   slots:5461-10922 (5462 slots) master
S: 2ad41829d6c48a0216fb4632253add6edc80b3fc 192.168.1.102:7381
   replicates 5e7a6df4a0c931ca36afced6c3c62330da026c26
M: 5e7a6df4a0c931ca36afced6c3c62330da026c26 192.168.1.103:7380
   slots:0-5460 (5461 slots) master
S: 07698f884a97e6a85a7f032c0fd95738d6e73017 192.168.1.103:7381
   replicates bc2d50daf9adb4e16e40048249ea97ec039dfa46
# 这里我们可以看到master节点为192.168.1.101:7380、192.168.1.102:7380、192.168.1.103:7380;其他三个为slave节点,输入yes确认
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.101:7380)
M: 9e486a62edb7be05691219259a534a0491e376e3 192.168.1.101:7380
   slots:10923-16383 (5461 slots) master
M: 51f00a2e9639b0427ec177877d775244307b096e 192.168.1.101:7381
   slots: (0 slots) master
   replicates 9e486a62edb7be05691219259a534a0491e376e3
M: bc2d50daf9adb4e16e40048249ea97ec039dfa46 192.168.1.102:7380
   slots:5461-10922 (5462 slots) master
M: 2ad41829d6c48a0216fb4632253add6edc80b3fc 192.168.1.102:7381
   slots: (0 slots) master
   replicates 5e7a6df4a0c931ca36afced6c3c62330da026c26
M: 5e7a6df4a0c931ca36afced6c3c62330da026c26 192.168.1.103:7380
   slots:0-5460 (5461 slots) master
M: 07698f884a97e6a85a7f032c0fd95738d6e73017 192.168.1.103:7381
   slots: (0 slots) master
   replicates bc2d50daf9adb4e16e40048249ea97ec039dfa46
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

到此redis集群创建完成。

4. 测试redis集群

在任意一台集群机器上执行如下操作

[[email protected] ~]$ /redis/redis/bin/redis-cli -h 192.168.1.101 -p 7380 -c
192.168.1.101:7380> set k1 "AA"
OK
192.168.1.101:7380> set k2 "BB"
-> Redirected to slot [449] located at 192.168.1.103:7380
OK
192.168.1.103:7380> get k1
-> Redirected to slot [12706] located at 192.168.1.101:7380
"AA"
192.168.1.101:7380> get k2
-> Redirected to slot [449] located at 192.168.1.103:7380
"BB"
192.168.1.103:7380> 

原文地址:https://www.cnblogs.com/concurrencyy/p/9347344.html

时间: 2024-10-07 12:11:27

Redis集群部署(手动安装)的相关文章

redis集群部署配置

Redis集群部署配置 测试环境:服务器系统为centos6.5,redis版本为3.2.2,使用一台机器,模拟6个redis实例来创建redis集群,其中3主3从 分别建立redis的安装目录,并复制redis.conf到安装目录下. 2.修改每个目录下的redis.conf配置文件 port 7000   #端口 daemonize yes cluster-enabled yes   #开启集群模式 cluster-config-file nodes-7000.conf  #集群配置文件 c

Redis集群部署文档(Ubuntu15.10系统)

Redis集群部署文档(Ubuntu15.10系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005 1:下载redis.官网下载3.0.0版本,之前2.几的版本不支持集群模式下载地址:http://download.redis

剑指架构师系列-Redis集群部署

初步搭建Redis集群 克隆已经安装Redis的虚拟机,我们使用这两个虚拟机中的Redis来搭建集群. master:192.168.2.129 端口:7001 slave:192.168.2.132 端口:7002 sentinel:192.168.2.129 端口:26379 来说一下这个sentinel,sentinel是一个管理redis实例的工具,它可以实现对redis的监控.通知.自动故障转移.sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redi

redis集群部署之codis 维护脚本

搞了几天redis cluster codis 的部署安装,测试,架构优化,配合研发应用整合,这里记一些心得! 背景需求: 之前多个业务都在应用到redis库,各业务独立占用主从两台服务器,硬件资源利用不合理,主从架构冗余度不高,主redis故障的话,从redis恢复需要时间,降低业务的可用性, 所以调研测试部署了基于codis的redis集群. 官方地址 部署文档 参考这里redis cluster安装部署 维护管理 了解过codis的同志都知道codis集群组件服务启动有一定顺序的,而且基本

Redis集群部署过程记录(3台服务器共6个节点)

这是我的第一篇博文,整理了我在部署Redis集群踩过的坑,以及详细的部署过程,同时归结了部署过程中遇到的问题的处理方法.1.部署的环境:SUSE Linux Enterprise 11 sp42.涉及到的安装包如下:(1) 安装包:redis-4.0.2.tar.gz下载地址:http://download.redis.io/releases/ redis官网http://www.redis.io(2) 接口包:redis-4.0.0.gem(3) 脚本语言包:ruby-2.4.2.tar.gz

Redis集群部署(一)

一.Redis集群介绍 Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令. Redis 集群的优势: 自动分割数据到不同的节点上. 整个集群的部分节点失败或者不可达的情况下能够继续处理命令. Redis 集群的数据分

redis 集群部署--实例

1 安装环境 jdk1.8.0  redis 3.0.6 双机主从,192.168.1.5主   192.168.1.6从 做redis缓存服务器 用sentinel监控redis实现HA 2 安装配置 首先安装jdk环境(略,请自行调整环境) 分别安装redis-master和redis-slave yum install -y redis 配置redis-master 192.168.1.5 vim /etc/redis.conf daemonize yes pidfile /var/run

Redis集群部署

0, 先决条件Redis安装依赖 gcc-c++Redis集群依赖 ruby rubygems安装命令:$ yum -y install ruby rubygems 1,安装1.1, 下载 Redis,下载地址:http://download.redis.io/releases/redis-3.2.9.tar.gz$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz 1.2, 解压安装包$ tar xzf redis-3.2.9.

Redis集群部署文档(centos6系统)

(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:7000 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 1:下载redis.官网下载3.0.0版本,之前2.几的版本不支持集群模式 下载地址:https://github.com/antirez/redis/archive