CacheCloud环境需求

  • Java 7
  • Maven 3
  • MySQL
  • Redis 3

具体用法可参考:https://cachecloud.github.io

1.下载CacheCloud

官网https://github.com/sohutv/cachecloud

下载cachecloud-master.zip

解压并移动cachecloud-master到/usr/local目录

2.在MySQL中创建库并授权

导入初始数据

3.编辑/usr/local/cachecloud-master/cachecloud-open-web/src/main/swap/online.properties文件

3.1在cachecloud根目录下运行

mvn clean compile install -Ponline

3.2创建/opt/cachecloud-web目录,并拷贝相关文件

mkdir -p /opt/cachecloud-web

cp  cachecloud-open-web/target/cachecloud-open-web-1.0-SNAPSHOT.war /opt/cachecloud-web/

cp  cachecloud-open-web/src/main/resources/cachecloud-web.conf /opt/cachecloud-web/

ln -s /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.war  /etc/init.d/cachecloudweb

4.启动cachecloud-web并通过http://IP:8585访问,用户名和密码admin

/etc/init.d/cachecloudweb start

5.使用cachecloud-init.sh安装redis和初始化,可根据需求修改脚本中redis的版本

6.在服务器上创建cachecloud SSH连接账号,和系统配置管理页面里的用户名和密码保持一致即可

useradd cachecloud

passwd cachecloud

6.1点击右上角管理后台—>机器管理,添加机器

6.2点击右上角导入应用

7.redis cluster安装(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点)

172.17.20.127 redis-6379/6380
172.17.20.128 redis-6381/6382
172.17.20.129 redis-6383/6384

Redis 集群使用数据分片(sharding)而非一致性哈希(consistency hashing)来实现: 一个 Redis 集群包含 16384 个哈希槽(hash slot), 数据库中的每个键都属于这 16384 个哈希槽的其中一个, 集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽, 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和 。集群中的每个节点负责处理一部分哈希槽。

下载编译安装redis

cp -pr redis redis-6380    #其他类似按照端口号复制

修改redis.conf

daemonize yes
port 6379         #其他配置改为6380/6381/6382/6383/6384
pidfile /var/run/redis_6379.pid   #其他配置按端口号修改
cluster-enabled yes 
cluster-config-file nodes-6379.conf   # 其他配置按端口号修改
cluster-node-timeout 15000 
appendonly yes

创建配置文件软连接并启动redis

ln -s /opt/cachecloud/redis-6379/redis.conf /etc/redis-6379.conf   #其他按照类似配置

分别启动集群redis

8.安装Redis 集群需要的Ruby工具

yum install ruby rubygems

gem install redis

进入reids目录下面运行

cd /opt/cachecloud/redis/src/

  1. redis-trib.rb的create子命令构建
  2. --replicas 1则指定了为Redis Cluster中的每个Master节点配备1个Slave节点
  3. 节点角色由顺序决定,先是master之后是slave

9.常用命令

查看集群情况

redis-trib.rb check ip:port  #检查集群状态

redis-cli -c -h ip -p port  #使用-c进入集群命令模式

redis-trib.rb rebalance ip:port --auto-weights  #重新分配权重

增加、删除集群节点

redis-trib.rb add-node ip:port(新增节点) ip:port(现有效节点)

redis-trib.rb del-node ip:port id(目标节点的id)  #删除master节点之前首先要使用reshard移除master的全部slot

重新划分slot

redis-trib.rb reshard ip:port

10.将master转换为salve

cluster replicate  master-id  #转换前6380端必须没有slots

11.模拟故障切换

杀死一个redis进程,观察FailOver情况

Redis集群通过选举方式进行容错,保证一台Server挂了还能跑,这个选举是全部集群超过半数以上的Master发现其他Master挂了后,会将其他对应的Slave节点升级成Master.

12.把redis cluster加入cachecloud

CacheCloud+Redis Cluster 3部署的更多相关文章

  1. redis cluster安装部署(测试环境)

    redis 应用于web前端,做缓存和数据存取的速度是挺可观的,最近看了一些资料,手痒了,就弄了一个测试环境,两台方案,试用一下. ##Redis 集群部署## 一,方案调研: 参考博客: http: ...

  2. Redis cluster的部署

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下 ...

  3. 手把手教你部署 Redis Cluster

    环境准备 阿里云申请3台ECS,如下: 序号 内网IP OS A 172.16.190.78 CentOS 7.6 B 172.16.242.36 CentOS 7.6 C 172.16.190.77 ...

  4. cachecloud:Redis云管理平台

    https://github.com/sohutv/cachecloud 一.CacheCloud是做什么的 CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standal ...

  5. Redis Cluster架构优化

    Redis Cluster架构优化 在<全面剖析Redis Cluster原理和应用>中,我们已经详细剖析了现阶段Redis Cluster的缺点: 无中心化架构 Gossip消息的开销 ...

  6. 第七章· Redis Cluster 核心技术

    Redis Cluster 分布式集群 Redis Cluster 安装部署 Redis Cluster 集群管理操作(核心)

  7. Redis Cluster日常操作命令梳理

    在之前的一篇文章已经介绍了Redis Cluster及其部署,下面说下Redis Cluster日常操作命令: 一.以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis: ...

  8. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

  9. Redis Cluster部署、管理和测试

    背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...

随机推荐

  1. Error creating bean with name 'com.cloud.feign.interfaces.xxxFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalSt.PathVariable annotation was empty on

    环境: Spring Cloud:Finchley.M8 Spring Boot:2.0.0.RELEASE 报错信息: Error creating bean with name 'com.clou ...

  2. oracle学习篇六:子查询

    -- 1.查询比7654工资要高的员工 select * from emp where sal>(select sal from emp where empno=7654); ---2.查询最低 ...

  3. JavaScirpt(JS)——BOM浏览器对象模型

    一.BOM概念 BOM(Browser Object Model)即浏览器对象模型.可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关 ...

  4. SQL Server日期格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  5. Android ViewPager+TabHost实现首页导航

    今天发的是TabHost结合ViewPager实现首页底部导航的效果,虽然说网上有很多这样的Demo,不过呢,我还是要把自己练习写的发出来,没错!就是这么任性: 先上效果图,如下: 代码里面有注释,就 ...

  6. 多线程(八)~ThreadLocal、InheritableThreadLocal的使用

    通过前面的学习,我们了解了在多线程+成员变量等情况下会出现线程安全的问题.那么解决线程安全问题除了使用synchronize关键字之外,还有另一种常用的解决思路,那就是使用ThreadLocal类,下 ...

  7. Flask入门之模板导入与块宏(六)

    1 模板包含include 主体结构(导入整个模板,直接渲染不可修改) {% include('模板名称') %} {% include('目录/模板名称') %} 功能: 其功能就是将另一个模板加载 ...

  8. GBase数据库——常用命令

    针对GBase 8a 版本 1数据库操作与维护 1.1数据库启停 [root@OMMB-66-V10-001 ~]# service gcware stop Stopping GCMonit succ ...

  9. java maven项目 导入jar包注意

    1.将jar 包放到lib目录下 2.build path 3.点击maven主项目右键选择properties 4.选择myeclipse 下的第一个选项 5.点击add   选择archives ...

  10. 探索grep命令

    grep是linux的一款搜索工具,基本啥linux版本都有自带此工具.下面部分参数若没有说明,表示功力不够,理解不了. 选择匹配器 -E 正则表达式(相当于egrep命令) -F 将pattern当 ...