在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群

(个人喜欢redis,对memcache不感冒)

redis是3.0后增加的集群功能,非常强大

集群中应该至少有三个节点,每个节点有一备份节点。这样算下来至少需要6台服务器

考虑到有些朋友的电脑配置不是很高,跑多个虚拟机就会卡,这边放出伪分布式和分布式

(2年前的配置)

前提先装好一个单例情况下的redis(这里就不多说了)

需要6个redis实例

搭建集群的步骤:
在/usr/local下 创建文件夹
 
这个我是把原来的单例redis改了个名字做的
 
 
进入redis01/bin
删除dump文件
 
修改端口
 
打开注释
 
复制多份
(真实环境下只需要一个就行,然后其余5台机子重复以上操作)
指定端口从7001到7006
 
这是真实环境下的
占用率
 
 
在redis源码文件夹下的src目录下。redis-trib.rb,这个ruby脚本
 
 
第四步:把redis-trib.rb文件复制到到redis-cluster目录下。
(真实环境下,只需要放在你某个节点机子上就行,他会自动遍历到其他的节点上的,我做的时候放在了01上)
 
执行ruby脚本之前,需要安装ruby环境,不然装不了
yum install ruby
 
 
yum install rubygems
 
 
 
安装redis-trib.rb运行依赖的ruby的包
这个gem可以网上下载,很多
 
 
(真实环境下只需要在其中一台机子上运行就行了)
 
 
进入各自的redis文件夹,分别启动所有的redis实例
 
启动成功
 
使用redis-trib.rb创建集群
不管是不是伪分布式,这只需要启动一次
 
成功~!
 
链接第一个节点
 
 
下面演示使用jedis来读写缓存
当然加入spring中一定要使用单例
 @Test
public void testCluster() throws Exception {
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.1.193", 7001));
nodes.add(new HostAndPort("192.168.1.194", 7002));
nodes.add(new HostAndPort("192.168.1.195", 7003));
nodes.add(new HostAndPort("192.168.1.196", 7004));
nodes.add(new HostAndPort("192.168.1.197", 7005));
nodes.add(new HostAndPort("192.168.1.198", 7006));
JedisCluster jedisCluster = new JedisCluster(nodes);
jedisCluster.set("name", "lee");
jedisCluster.set("age", "18");
String name = jedisCluster.get("name");
String value = jedisCluster.get("age");
System.out.println(name);
System.out.println(value);
jedisCluster.close();
}

运行结果:

可以看到redis客户端上取数据的时候IP是不一样的

 
 
 
 
 
 
 
 
 

redis 一二事 - 搭建集群缓存服务器的更多相关文章

  1. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  2. 高可用Redis(十):Redis原生命令搭建集群

    1.搭建Redis Cluster主要步骤 1.配置开启节点 2.meet 3.指派槽 4.主从关系分配 2.环境说明 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81. ...

  3. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  4. Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis

    Redis真是好,其中的键值用起来真心强大啊有木有, 之前的文章讲过搭建了redis集群 那么咋们该如何调用单机版的redis以及集群版的redis来使用缓存服务呢? 先讲讲单机版的,单机版redis ...

  5. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  6. 分布式缓存技术redis系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  7. C#使用Redis集群缓存

    C#使用Redis集群缓存 本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层. 一.背景 系统考虑到高并发的使用场景.对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决.对于系 ...

  8. redis安装、测试&集群的搭建&踩过的坑

    1 redis的安装 1.1   安装redis 版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install gcc- ...

  9. Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享

    小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...

随机推荐

  1. Jsoup实现java模拟登陆

    Jsoup实现java模拟登陆 2013-10-29 14:52:05|  分类: web开发|举报|字号 订阅     下载LOFTER我的照片书  |     1:如何获取cookies. 1.1 ...

  2. 小白初学ABP框架,着实累啊

    这几天在学习ABP相关的知识AutoMapper ,AngularJS,Less,DI(dependencyInjection),EntityFramework code first以及相关NuGet ...

  3. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...

  4. HTTP通信过程底层实现原理

  5. Java 参数传递都是值传递

    Java 参数传递都是值传递,验证代码如下 public class ParamTransferTest { public static void swap(int a, int b) { int t ...

  6. UVa 108 - Maximum Sum(最大连续子序列)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  7. Windows 7 与 Vmware Ubuntu 15.10_64 共享文件夹

    设置共享文件夹     安装/更新最新的vmware-tools   安装             在ubuntu 内部会打开DVD ,里面的压缩包中包含vmware-toole. 先解压      ...

  8. Git基本使用命令

    整理Git的一些基本使用命令.   # 1)克隆代码 boldseas@lian-PC MINGW64 /d/TestGroup $ git clone ssh://git@code.boldseas ...

  9. JavaScript Patterns 3.1 Object Literal

    Basic concept Values can be properties: primitives or other objects methods: functions User-defined ...

  10. .NET 反射的使用

    1.根据类名获取类实例 string className = "Company.BigProgram.BLL.TestClass"; Type type = Type.GetTyp ...