redis集群搭建手册
搭建集群需要用到安装后的redis单机版的bin目录,所以我们先搭建redis单机版
Redis单机版搭建:
- 因为需要安装redis源码包,所以我们需要gcc环境支持 :

- 使用FTP工具将压缩包上传至/usr/local,并解压 : tar -zxvf redis-3.2.9.tar.gz
- 进入解压后的文件夹内:cd /usr/local/redis-3.2.9,进行编译并指定安装目录:
make PREFIX=/usr/local/redis install,这里我指定的目录为: /usr/local/redis
- 安装完毕之后,我们进入到redis文件夹内,发现已经生成了一个bin目录,我们打开它

- 启动redis服务有两种方式:
- 前端模式启动 : ./redis-server , 这样的话开启服务之后除非关闭服务,否则你将不能进行其它操作
- 后端模式启动(推荐) : 从redis解压包中拷贝redis.conf文件到bin目录 :
cp /usr/local/redis-3.2.9/redis.conf /usr/local/redis
编辑redis.conf : vim redis.conf
输入/deamonize查找,找到后按i进入编辑模式,更改daemonize为yes,
修改完毕后:wq保存
现在就可以以后台模式启动了: ./redis-server redis.conf
Redis集群版搭建
- Redis集群管理工具redis-trib.rb依赖ruby环境,首先我们需要安装ruby环境 :
yum install ruby
yum install rubygems
安装ruby和redis的接口程序:
gem install redis
- 在/usr/local下创建redis-cluster文件夹,并在内创建6个子文件夹
mkdir redis-cluster
cd redis-cluster
mkdir 700{1..6}

- 将单机版redis安装后的bin目录拷贝6份,各放一份放入上列6个文件夹内
cp -r bin ../redis-cluster/7001
……………………………………...2
- 修改各个文件夹下的redis.conf文件,打开开启集群注释

修改端口号,和文件夹名一一对应

- 拷贝集群管理工具到redis-cluster文件夹下
cp /usr/local/redis-3.2.9/src/redis-trib.rb /usr/local/redis-cluster
- 启动这6台redis服务

- 创建集群,在redis-cluster目录下运行:
./redis-trib.rb create –replicas 1 172.18.103.142:7001 172.18.103.142:7002 172.18.103.142:7003 172.18.103.142:7004 172.18.103.142:7005 172.18.103.142:7006
说明 :
./redis-trib.rb创建集群插件
Create 创建集群命令
--replicas 1 每一个主服务器必须至少有一个备服务器
- 如果出现下列提示,说明集群已经创建成功

Redis集群版常用操作
- 登录集群
./redis-cli –c –h host –p port

- 查看集群状态
cluster info

- 查看集群节点信息
cluster nodes

- 动态添加新的集群节点(7007服务必须是处在启动状态)
./redis-trib.rb add-node 172.18.103.142:7007 172.18.103.142:7001
add-node : 添加节点命令,默认添加主节点
172.18.103.142:7007 需要添加的节点
172.18.103.142:7001 添加7001所在的节点上面去
添加成功如下图:

- 新增加节点为主节点,但并未分配hash槽
1)重新分配slots

2)想要移动多少个槽位?

3)输入需要分配的节点的ID

4)输入all,表示从所有主节点中随机转移


- 为主节点添加新的从节点(新的节点服务必须处于启动状态)

./redis-trib.rb add-node --slave --master-id fff5cd34dd6206e51fb59ee2bab43399508af913 172.18.103.142:7008 172.18.103.142:7001
1) add-node:添加节点
2) –slave :添加从节点
3) --master-id fff5cd34dd6206e51fb59ee2bab43399508af913:给这个ID对应的主节点添加从节点
4) 172.18.103.142:7008:需要添加的从节点
5) 172.18.103.142:7001:添加到7001对应的集群
下图表示添加成功

Jedis客户端连接redis集群
//配置连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
//设置最大连接数
poolConfig.setMaxTotal(20);
//设置最大空闲数
poolConfig.setMaxIdle(2);
Set<HostAndPort> nodes = new HashSet<HostAndPort>();
//添加8个节点对应的IP以及端口号
nodes.add(new HostAndPort("172.18.103.142", 7001));
nodes.add(new HostAndPort("172.18.103.142", 7002));
nodes.add(new HostAndPort("172.18.103.142", 7003));
nodes.add(new HostAndPort("172.18.103.142", 7004));
nodes.add(new HostAndPort("172.18.103.142", 7005));
nodes.add(new HostAndPort("172.18.103.142", 7006));
nodes.add(new HostAndPort("172.18.103.142", 7007));
nodes.add(new HostAndPort("172.18.103.142", 7008));
//创建一个集群核心对象:JedisCluster
JedisCluster jedisCluster = new JedisCluster(nodes, poolConfig);
//设置参数
jedisCluster.set("username", "xufang");
//查询参数
String username = jedisCluster.get("username");
System.out.println(username);
redis集群搭建手册的更多相关文章
- 25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- [转载] Redis集群搭建最佳实践
转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Redis集群搭建-韩国庆
认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...
- redis集群搭建及设置账户(转)
Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...
随机推荐
- Qt5官方demo解析集28——Extending QML - Signal Support Example
本系列全部文章能够在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集27--Extendin ...
- Android Studio - no debuggable applications 的解决的方法
之前logcat总是无法显示调试应用的信息 曾经我都是卸载重装.后来发如今StackOverflow有一个哥们说的非常对.一次就成功. 原话是这么说的: You also should have To ...
- noi25 最长最短单词(为什么会出现运行时错误)
noi25 最长最短单词(为什么会出现运行时错误) 一.总结 一句话总结:比如除以零,数组越界,指针越界,使用已经释放的空间,数组开得太大,超出了栈的范围,造成栈溢出 1.c++报runtime er ...
- 9、str类型和byte类型转换、列表拾遗、元组拾遗、字典拾遗、如何判断对象是否可迭代
str(字节类型,编码) 可用于创建字符串,或者将其他的转换成字符串 a= ‘李露’ #将字符串转换成字节流 b = bytes(a,encoding = 'utf-8') #将字节转换成 ...
- 零基础学python-2.3 凝视
在python里面,使用"#"号表示凝视的開始,一整行到结束就是凝视,他的主要作用提示这段代码到底有什么用处 print("---------欢迎来到猜数字的地方.请開始 ...
- SaltStack快速部署及测试
测试环境:CentOS6.6 X86_64 # cat /etc/hosts 192.168.199.61 Ansible 192.168.199.60 Nginx1 192.168.199.62 N ...
- [Node] Run Any Version of a Node Tool with npx
As node projects evolve, new features are added all the time. This results in different errors or re ...
- Latex表格制作记录
Latex表格制作记录 主要功能 合并表格的行列 长表格的使用 makecell例程借鉴 效果图 参考代码 \documentclass{ctexart} \usepackage{indentfirs ...
- JS冲突解决方法
Prototype jquery 冲突解决: 在页面中同时存在jquery 和 prototype ,当用到 $ 的时候,难免产生冲突,所以一定要区分开来: <script type=&qu ...
- Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
原文:Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一) 前端时间,接到领导任务,写了一个调度框架.今天决定把心路历程记 ...