Redis云管理平台 CacheCloud

news/2024/11/7 18:24:05

一、CacheCloud是做什么的

CacheCloud提供一个Redis云管理平台:实现多种类型(Redis StandaloneRedis SentinelRedis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少开发人员的运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。

二、CacheCloud提供哪些功能

  • 监控统计:  提供了机器、应用、实例下各个维度数据的监控和统计界面。

  • 一键开启:  Redis Standalone、Redis Sentinel、Redis Cluster三种类型的应用,无需手动配置初始化。

  • Failover:  支持哨兵,集群的高可用模式。

  • 伸缩:        提供完善的垂直和水平在线伸缩功能。

  • 完善运维:    提供自动运维和简化运维操作功能,避免纯手工运维出错。

  • 方便的客户端:方便快捷的客户端接入。

  • 元数据管理:    提供机器、应用、实例、用户信息管理。

  • 流程化:      提供申请,运维,伸缩,修改等完善的处理流程

三、CacheCloud解决什么问题

1.部署成本

       Redis多机(Redis-Sentinel, Redis-Cluster)部署和配置相对比较复杂,较容易出错。

例如:100个redis数据节点组成的redis-cluster集群,如果单纯手工安装,既耗时又容易出错。

2.实例碎片化

       作为一个Redis管理员(可以看做redis DBA)需要帮助开发者管理上百个Redis-Cluster集群,分布在数百台机器上,人工维护成本很高,需要自动化运维工具。

3. 监控、统计和管理不完善

       一些开源的Redis监控和管理工具,例如:RedisLive(Python)、Redis Commander(Node.js),Redmon(Ruby)无论从功能的全面性(例如配置管理,支持Redis-Cluster等等)、扩展性很难 满足需求。

4. 运维成本

       Redis的使用者需要维护各自的Redis,但是用户可能更加善于使用Redis实现各种功能,但是没有足够的精力和经验维护Redis。 Redis的开发人员如同使用Mysql一样,不需要运维Mysql服务器,同样使用Redis服务,不要自己运维Redis,Redis由一些在Redis运维方面更有经验的人来维护(保证高可用,高扩展性),使得开发者更加关注于Redis使用本身。

5. 伸缩性

       本产品支持Redis最新的Redis-Sentinel、Redis-Cluster集群机构,既满足Redis高可用性、又能满足Redis的可扩展性,具有较强的容量和性能伸缩能力。

6. 经济成本

       机器利用率低,各个项目组的Redis较为分散的部署在各自服务器上,造成了大量闲置资源没有有效利用。

7. 版本不统一

       各个项目的Redis使用各种不同的版本,不便于管理和交互。

四、CacheCloud提供的价值

  • 规模化自动运维: 降低运维成本,降低人为操作出错率。

  • 自由伸缩:      提供灵活的伸缩性,应用扩容/收缩成本降低,机器资源得到重复利用。

  • 团队提升,开源贡献:提升云产品开发设计经验,自己作为开发者和使用者,Eating your own dog food。

五、CacheCloud在搜狐的规模

  • 每天100+亿次命令调用

  • 2T+的内存空间

  • 800+个Redis实例

  • 100+台机器

六、CacheCloud环境需求

  • Java 7

  • Maven 3

  • MySQL

  • Redis 3

七、CacheCloud快速开始

1、初始化数据库

       导入项目中cachecloud.sql初始化库表结构。默认插入admin超级管理员

2、CacheCloud项目配置

       使用了maven作为项目构建的工具,提供了 local.properties和online.properties两套配置作为测试、线上的隔离。 属性配置说明:

属性名说明示例
cachecloud.db.urlmysql驱动urljdbc:mysql://127.0.0.1:3306/cache-cloud
cachecloud.db.usermysql用户名admin
cachecloud.db.passwordmysql密码admin
cachecloud.machine.username服务器用户名,用于ssh${your machine username}
cachecloud.machine.password服务器密码,用于ssh${your machine password}
web.portspring-boot内嵌tomcat启动端口8080

 

3、启动cachecloud系统

?
1
     mvn spring-boot:run

1. 构建:mvn -Ponline clean package
2. 上传war包到特定目录下:如/opt/cachecloud-web
3: 拷贝项目中的cachecloud-web.conf配置到/opt/cachecloud-web目录下,注意必须跟war包同目录才生效
4. 作为linux服务启动:

?
1
2
sudo  ln  -s  /opt/cachecloud-web/cachecloud-web-1 .0-SNAPSHOT.war  /etc/init .d /cachecloud-web 
/etc/init .d /cachecloud-web  start

(9999是tomcat的端口号,具体要参考第三节中的online.properties和local.properties中的web.port

4、添加机器

(1). 运行脚本:

cachecloud项目中的cachecloud-init.sh脚本是用来初始化服务器的cachecloud环境,主要工作如下:

  • (a). 创建cachecloud项目用户:因为cachecloud项目的部分功能(redis启动、服务器监控)是通过ssh完成的,所以这里的用户和密码要和项目中的相对应,具体详见第三节。

  • (b). 创建cachecloud项目的工作目录、数据目录、配置目录、日志目录、redis安装目录、临时目录等等。(/opt/cachecloud/data、/opt/cachecloud/conf、/opt/cachecloud/logs、/opt/cachecloud/redis、/tmp/cachecloud)

  • (c). 安装最新的release版本的Redis

(2). 脚本执行

  • (a). 使用root登录目标服务器。

  • (b). 将cachecloud-init.sh脚本拷贝到目标服务器当前用户目录下。

  • (c). 执行 sh cachecloud-init.sh ${yourusername}

  • (d). 两次确认密码

  • (e). 一路安装直到成功。

(3). 建议和警告

  • (a). 请在root用户下执行初始化脚本,因为初始化脚本涉及到了用户的创建等较高的权限。

  • (b). 出于安全的考虑,所选的机器最好不要有外网IP地址。

  • (c). 用户名和密码最好不要用cachecloud, 密码尽可能复杂。

  • (d). 机器的ssh端口最好是22。

  • (e). 请确保/opt/有足够的硬盘空间,因为/opt/cachecloud/data要存储RDB和AOF的持久化文件,如果硬盘过小,会造成持久化失败。 (如果硬盘确实很小,建议建立一个软链接到/opt/cachecloud/data,且保证软链接的目录也是username用户,一定要保证/opt /cachecloud的目录结构)

  • (f). 脚本中目前使用的是redis-3.0.6,如有需要请自行替换,建议使用3.0 release以后的版本。

(4). 添加机器

进入管理员界面(http://ip:port/manage/total/list),进入机器管理,点击添加机器,添加机器信息是开通应用的基础。

 

 

http://www.oschina.net/p/cachecloud-Redis

 

 

 

 

 


http://www.niftyadmin.cn/n/3297899.html

相关文章

Replace()函数替换字符串中的危险字符

在进行网络程序开发时,网络程序的安全对于程序开发者来说非常重要。在进行开发时,首先要考虑到程序的安全性,不会被其他用户以非法的形式进入或攻击。例如,本实例主要应用Replace()函数替换字符串中的危险字符。该函数的语法格式如…

题解 UVA118 【Mutant Flatworld Explorers】

很有趣的一道题,建议先自己写写 具体思路:模拟 只要模拟每次机器人的坐标就好了 难点 如何表示方向? 只要将北东南西依此赋值0,1,2,3 左转该值-1,右转该值1如何行进? 每个方向坐标变…

周四。。

昨晚睡了个好觉,虽然做了很多梦。。哈哈 今天上午看了unix的一点shell程序,这个东西看一遍不行我发现。很多符号我不知道什么意思,应该是多用用就熟悉了,嗯。unix脚本里很多都是组合命令,,要分开看。。转载…

redis3.0.0 集群安装详细步骤

Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:7000 127.0.0.1:7…

如何为自定义属性提供下拉选项

上一篇我们讲解到如何为自定义属性提供一个特殊的编辑器。我们的编辑器是一个对话框窗体,点击之后会用Dialog的方式显示。这种情况比较适合于属性比较复杂的情况。 对于某些比较简单的属性,我们可能不希望弹出对话框,而是直接选择。例如下面这…

reids jedis事务处理

当前使用的redis版本 ?12#redis-cli -vredis-cli 2.6.4 MULTI 、EXEC 、DISCARD 和WATCH 是 Redis 事务的基础 1.MULTI 命令用于开启一个事务,它总是返回 OK 。 MULTI 执行之后,客户端可以继续向服务器发送任意多条命令,这些命令不会立即被…

题解 P1111 【修复公路】

题意翻译: 求该图已联通时所用最小时间。 做法: 最小生成树 Krusal算法 先把所有边按修复时间从大到小排序,再每次取出权值最小的边,如果它的两个端点$u,v$已经联通了就跳过,否则就把这条边加入图中,并且把…

linux下的压缩解压缩

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很…