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根目录下运行

  1. 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/1680
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

Redis后台监控与管理CacheCloud的更多相关文章

  1. redis/memcache监控管理工具——treeNMS

    TreeNMS可以帮助您搭建起一套用于redis的监控管理系统,也支持Memcached,让您可以通过web的方式对数据库进行管理,有了它您就可以展示NOSQL数据库.编辑修改内容,另外还配备了sql ...

  2. 基于windows的Redis后台服务安装卸载管理

    首先,需要你进入你的Redis解压根目录,例如,类似于我下图的这样子: 接着打开你的cmd,使用cd命令切换到该目录,或者直接在上图的地址栏输入“cmd”并回车.这里为什么让你先使用资源管理器找到你的 ...

  3. Redis 数据结构与内存管理策略(下)

    Redis 数据结构与内存管理策略(下) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...

  4. 笔记:Spring Boot 监控与管理

    在微服务架构中,我们将原本庞大的单体系统拆分为多个提供不同服务的应用,虽然,各个应用的内部逻辑因分解而简化,但由于部署的应用数量成倍增长,使得系统的维护复杂度大大提升,为了让运维系统能够获取各个为服务 ...

  5. Spring Boot监控与管理的实现

    认识Actuator 在SpringBoot应用中引入spring-boot-starter-actuator依赖,它可以为开发团队提供系统运行的各项监控指标. 在项目中引入依赖配置如下: appli ...

  6. Spring Boot 监控与管理

    在微服务架构中,我们将原本庞大的单体系统拆分为多个提供不同服务的应用,虽然,各个应用的内部逻辑因分解而简化,但由于部署的应用数量成倍增长,使得系统的维护复杂度大大提升,为了让运维系统能够获取各个为服务 ...

  7. 170707、springboot编程之监控和管理生产环境

    spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http.jmx.ssh.telnet等拉管理和监控应用.审计(Auditing). 健康(health).数据 ...

  8. Springboot监控之一:SpringBoot四大神器之Actuator之3-springBoot的监控和管理--指标说明

    Spring Boot包含很多其他的特性,它们可以帮你监控和管理发布到生产环境的应用.你可以选择使用HTTP端点,JMX或远程shell(SSH或Telnet)来管理和监控应用.审计(Auditing ...

  9. Spring Boot (27) actuator服务监控与管理

    actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管.审计.收集应用的运行情况,针对微服务而言它是必不可少的一个环节. ...

随机推荐

  1. 如何将自定义的搜索参数便捷的添加到js方式的bootstrap table的参数中

    页面: <div> <form id="exp_form"> 查询参数... <button type="button" oncl ...

  2. MapReduce核心 - - - Shuffle

    大数据名词(1) -Shuffle     Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每 ...

  3. IBatisNet动态update以及DateTime类型字段处理

    在维护一个老项目中碰到的问题.SQL配置如下(只简单列出两个字段): <update id="ProjectInfo.Update" parameterClass=" ...

  4. [PHP] 数据结构-二叉树的创建PHP实现

    1.利用递归的原理,只不过在原来打印结点的地方,改成了生成结点,给结点赋值的操作if(ch=='#'){*T=NULL;}else{malloc();(*T)->data=ch;createFu ...

  5. [android] notification入门

    通知栏,对话框,Toast是我们接触的三个提示框,通知栏是在系统的应用com.adnroid.systemui当中的 接触的几个Manger,getSystemService()方法得到的,参数: A ...

  6. java错误分析之junit测试错误(实验一)

    本文转自:https://www.cnblogs.com/anny0404/p/5275595.html 在原作者的基础上进行部分添加,也很感谢原作者这篇博文,帮我分析与解决问题! 原文: 下载了最新 ...

  7. 【读书笔记】iOS-iOS AirPlay与AppleTV

    享受高清晰影院般的大屏幕电影带来的快乐,单纯的iOS设备实现这些是不可能的.苹果有一套解决方案,iOS设备把这些视频和音效数据无线传输(WiFi或蓝牙)Apple TV,然后由Apple TV将视频和 ...

  8. 【读书笔记】iOS-属性

    assign:简单的赋值. retain:赋值之后,会调用新的retain方法和旧值的release方法. copy:表示先将值拷贝一份,然后,将这个拷贝赋值给实例变量,这个修饰词只适用于实现了NSC ...

  9. ES6模块化与常用功能

    目前开发环境已经普及使用,如vue,react等,但浏览器环境却支持不好,所以需要开发环境编译,下面介绍下开发环境的使用和常用语法: 一,ES6模块化 1,模块化的基本语法 ES6 的模块自动采用严格 ...

  10. 安卓开发_深入理解Handler消息传递机制

    一.概述 因为子线程的run()方法无法修改UI线程(主线程)的UI界面,所以Android引入了Handler消息传递机制,实现在新创建的线程中操作UI界面 二.消息类(Message) 消息类是存 ...