`

redis3.0 集群安装

 
阅读更多
http://redis.readthedocs.org/en/latest/topic/cluster-tutorial.html

这里创建6个redis节点,其中三个为主节点,三个为从节点。

redis和端口对应关系:

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版本,之前几的版本不支持集群模式
下载地址:http://download.redis.io/releases/redis-3.0.0.tar.gz


2:上传服务器,解压,编译
tar -zxvf redis-3.0.0.tar.gz
mv redis-3.0.0 redis3.0
cd /usr/local/redis3.0
make & make install


3:创建集群需要的目录并拷贝redis
mkdir -p /usr/local/cluster
mkdir -p /usr/local/cluster/7000
mkdir -p /usr/local/cluster/7001
mkdir -p /usr/local/cluster/7002
mkdir -p /usr/local/cluster/7003
mkdir -p /usr/local/cluster/7004
mkdir -p /usr/local/cluster/7005
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7000/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7001/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7002/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7003/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7004/
cp -rf /usr/local/redis3.0/* /usr/local/cluster/7005/


4:修改配置文件redis.conf

vi /usr/local/cluster/7000/redis.conf

##修改配置文件中的下面选项
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes


#同样再对其它配置文件进行修改
vi /usr/local/cluster/7001/redis.conf
vi /usr/local/cluster/7002/redis.conf
vi /usr/local/cluster/7003/redis.conf
vi /usr/local/cluster/7004/redis.conf
vi /usr/local/cluster/7005/redis.conf
##注意:不同的目录配置不同的redis.conf中的port


5:启动6个redis

cd /usr/local/cluster/7000/src
redis-server ../redis.conf
cd /usr/local/cluster/7001/src
redis-server ../redis.conf
cd /usr/local/cluster/7002/src
redis-server ../redis.conf
cd /usr/local/cluster/7003/src
redis-server ../redis.conf
cd /usr/local/cluster/7004/src
redis-server ../redis.conf
cd /usr/local/cluster/7005/src
redis-server ../redis.conf

##启动之后使用命令查看redis的启动情况ps -ef|grep redis


6,创建redis集群
cd /usr/local/redis3.0/src
./redis-trib.rb  create --replicas 1 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

6.1执行上面的命令的时候会报错,因为是执行的的脚本,需要
错误内容:/usr/bin/env: ruby: No such file or directory
所以需要安装ruby的环境,这里推荐使用yum install ruby


yum install ruby


6.2然后再执行第步的创建集群命令,还会报错,提示缺少rubygems组件
错误内容:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
yum install rubygems


6.3再次执行第步的命令,还会报错,提示不能加载redis,是因为缺少redis的接口
错误内容:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./redis-trib.rb:25


gem install redis
这里可能无法安装,因为无法连接gem服务器:
[@zw_22_90 src]# gem install redis --version 3.0.0 
ERROR:  Could not find a valid gem 'redis' (= 3.0.0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)


需要手工下载并安装:
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem


6.4 再次执行第步的命令,正常执行
输入yes,然后配置完成。
[@zw_22_90 src]# ./redis-trib.rb  create --replicas 1 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
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: 2022f24d581b4a7c3342e3245c32927cbd5ec16d 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 37b7008f80f8c21a698da8cb1f1b32db8c0c415c 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
S: b5b76d70bbb0dbf3e7df8a38f1259e95e2054721 127.0.0.1:7003
   replicates 2022f24d581b4a7c3342e3245c32927cbd5ec16d
S: 6881f8fef9c25da486f320ebf2ead39c1502db4c 127.0.0.1:7004
   replicates 37b7008f80f8c21a698da8cb1f1b32db8c0c415c
S: f090526d32cced97731eef2a2e1722a7bac7d9ea 127.0.0.1:7005
   replicates ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd
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 127.0.0.1:7000)
M: 2022f24d581b4a7c3342e3245c32927cbd5ec16d 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 37b7008f80f8c21a698da8cb1f1b32db8c0c415c 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
M: b5b76d70bbb0dbf3e7df8a38f1259e95e2054721 127.0.0.1:7003
   slots: (0 slots) master
   replicates 2022f24d581b4a7c3342e3245c32927cbd5ec16d
M: 6881f8fef9c25da486f320ebf2ead39c1502db4c 127.0.0.1:7004
   slots: (0 slots) master
   replicates 37b7008f80f8c21a698da8cb1f1b32db8c0c415c
M: f090526d32cced97731eef2a2e1722a7bac7d9ea 127.0.0.1:7005
   slots: (0 slots) master
   replicates ac6dc5fa96e856b34c1ba4c3814394e4ebb698dd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


至此redis集群即搭建成功!


7,redis-cli命令进入集群环境
[@zw_22_90 src]# redis-cli -c -p 7000
127.0.0.1:7000> quit;







cd ~
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar -zxvf redis-3.0.0.tar.gz
mv redis-3.0.0 redis3
cd redis3
make & make install


mkdir /opt/soft/redis3_master
mkdir /opt/soft/redis3_slave


cp -rf ~/redis3/* /opt/soft/redis3_master
cp -rf ~/redis3/* /opt/soft/redis3_slave


vi /opt/soft/redis3_master/redis.conf
=========================
#修改这几个参数为:
# <---edit by dafei
port 7001
logfile "/opt/soft/redis3_slave/log.log"
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-require-full-coverage yes
appendonly no
# edit by dafei --->
=========================


vi /opt/soft/redis3_slave/redis.conf
=========================
#修改这几个参数为:
# <---edit by dafei
port 7002
logfile "/opt/soft/redis3_slave/log.log"
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-require-full-coverage yes
appendonly no
# edit by dafei --->
=========================


#start
cd /opt/soft/redis3_master/src
redis-server ../redis.conf
cd /opt/soft/redis3_slave/src
redis-server ../redis.conf




#start the cluster at 10.10.22.95
./redis-trib.rb  create --replicas 1 ip:7001 ip:7001 ip:7001 ip:7002 ip:7002 ip:7002




Java 客户端使用
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
// Jedis Cluster will attempt to discover cluster nodes automatically
jedisClusterNodes.add(new HostAndPort("192.168.184.135", 17001));
jedisClusterNodes.add(new HostAndPort("192.168.184.135", 17002));
jedisClusterNodes.add(new HostAndPort("192.168.184.136", 17001));
jedisClusterNodes.add(new HostAndPort("192.168.184.136", 17002));
jedisClusterNodes.add(new HostAndPort("192.168.184.137", 17001));
jedisClusterNodes.add(new HostAndPort("192.168.184.137", 17002));
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("foo", "bar");
String value = jc.get("foo");
System.out.println(value);
分享到:
评论

相关推荐

    redis3.0集群安装

    ### Redis 3.0 集群安装及配置详解 #### 一、概述 Redis(Remote Dictionary Server)是一款开源的键值存储系统,以其高性能、低延迟的特点在缓存领域有着广泛的应用。随着数据量的增长,单一Redis实例往往难以满足...

    redis3.0安装包 window 64位

    (4)集群:Redis 3.0支持集群,可以将多个Redis实例拼接成一个集群,并实现负载均衡,提高Redis的可用性。 3、总结: Redis 3.0是一款高性能的开源内存数据库,它拥有非常快速的读写性能,几乎是传统数据库的1000倍...

    redis3.0.集群环境安装手册

    Redis 3.0 集群环境安装手册 Redis 3.0 集群环境安装手册是指在 Linux 操作系统中安装和配置 Redis 3.0 集群的步骤指南。Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 ...

    redis 3.0 集群指南

    ### Redis 3.0 集群指南 ...综上所述,Redis 3.0 的集群部署不仅涉及安装配置、主从复制等基础概念,还涵盖了更为高级的故障转移机制——哨兵。通过合理规划和配置,可以有效提升 Redis 集群的可用性和性能。

    Redis3.0 集群安装过程

    Redis 3.0 集群的安装过程是构建高可用性和可扩展性的NoSQL数据库系统的关键步骤。在这个过程中,我们需要关注多个知识点,包括Redis的下载与编译、配置文件的修改、实例部署、Ruby环境的安装以及集群的启动与测试。...

    redis3.0-集群部署文档

    本文档将详细介绍如何在CentOS 6.5环境下搭建Redis 3.0集群,并通过具体的步骤指导用户完成整个部署过程。 #### 二、环境准备与要求 **系统环境**: CentOS 6.5 **硬件要求**: 至少3台主机或虚拟机(为了简化示例...

    Redis3.0集群代理系统源码

    Redis3.0集群代理系统, 并发接收客户端请求,计算Key的哈希槽值,转发到对应的缓存服务器,并将缓存服务器的返回值回传给客户端, 这样客户端只要访问集群代理系统,实现一次性定位访问,效率与单台缓存服务器...

    Redis3.0集群部署方案

    本文将详细介绍如何部署Redis 3.0集群,包括下载安装、编译、配置以及节点创建等步骤。 #### 二、环境准备与安装 ##### 1. 下载与解压 首先,我们需要下载Redis 3.0.3版本的源码包: ``` cd /usr/local/ wget ...

    redis 3.0 win7 32位x86

    虽然Redis 3.0不支持集群功能,但在更高版本中,Redis引入了集群方案,允许在多台服务器之间分散数据,提高可用性和容量。若需要扩展,可以考虑升级到更高版本或使用哨兵(Sentinel)系统实现高可用性。 综上所述,...

    redis3.0widows集群+spring整合jedis

    redis3.0 widows集群 spring整合jedis redis搭建window集群代码和文档rubygems-2.5.1和rubyinstaller-2.2.3-x64软件下载

    Redis3.0集群与应用.zip

    总的来说,Redis 3.0集群与应用教程将帮助你深入理解如何利用Redis集群来构建可扩展、高可用的应用系统,无论你是开发者还是运维人员,都能从中受益。通过学习这个教程,你可以掌握如何设置和优化Redis集群,以及...

    Redis3.0集群

    Redis 3.0 集群安装、主从复制架构、哨兵架构原理及多个哨兵配置、集群建构创建和配置详解 在本文档中,我们将详细描述 Redis 3.0 的安装、主从复制架构、哨兵架构原理及多个哨兵配置、集群建构创建和配置等内容。 ...

    Windows下Redis3.0 编译过后的exe

    在Windows环境下编译Redis3.0,可以让你在本地系统上测试和开发基于Redis的应用,尤其是利用其新特性——Cluster。 **Redis3.0的新特性:** 1. **Cluster支持**:Redis 3.0引入了Cluster功能,这是一个分布式解决...

    某播客Redis3.0新特性、主从复制、集群视频教程

    某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程

    redis3.0 demo

    通过这个“redis3.0 demo”,我们可以学习如何配置和使用Redis集群,如何编写和执行LUA脚本,以及如何利用其他新特性来优化应用性能。同时,它也将演示如何处理复制、连接管理和安全性等核心问题。通过实践,你可以...

    Redis 3.0.pdf

    **Redis 3.0 技术详解** Redis(Remote Dictionary Server)是一款开源的、高性能的键值存储系统,常被用作数据库、缓存和消息代理。它支持数据的持久化,可以将内存中的数据保存在磁盘上,同时提供了丰富的数据...

    redis3.0 windows 版

    在Windows环境下安装和使用Redis 3.0版本,可以帮助开发者在本地进行开发和测试,无需在Linux环境下操作。下面将详细介绍Redis 3.0在Windows系统中的安装、配置、使用及一些基本概念。 1. **Redis简介** - Redis是...

    redis3.0 server+client

    Redis 3.0 是一个高性能、开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。此版本的Redis服务器和客户端的64位无条数限制版本,意味着它可以处理海量的数据,而不会因为键值对数量的增加而受到...

Global site tag (gtag.js) - Google Analytics