CacheCloud搭建(Redis云平台)

在中小型互联网公司里面,对于运维使用的监控系统不是很完善。今天介绍一下 CacheCloud,是搜狐视频开源的 Redis 云平台。可以对Redis 官方提供的3 种部署模式(StandaloneSentinelCluster)做管控,实现了Redis 实例自动部署、管理Redis 碎片化、完善统计、监控等功能,可以提高Redis 服务器的利用率,减少运维成本和误操作等。具体的功能请查看官方文档(官方提供了 视频讲解 ),下面是官方的功能图:

下载源代码

项目地址为:https://github.com/sohutv/cachecloud,使用git 命令如下:

git clone https://github.com/sohutv/cachecloud

下载代码后,导入开发工具,以IDEA 为例。

其中common 项目被其他 2 个所依赖,web 项目是cachecloud 的Server端,client 是提供给Redis Client 的SDK(CacheCloud的Client 对Jedis做了一些封装)。

启动Server

1、初始化MySQL数据库

如数据库为:cachecloud,字符集编码为UTF-8,执行以下脚本:cachecloud-master/script/cachecloud.sql。

需要修改DB 的相关连接参数:

2、启动(本地)

在cachecloud根目录下运行

mvn clean compile install -Plocal

在cachecloud-open-web模块下运行

mvn spring-boot:run

线上运行时,不建议以内嵌方式运行。

登录系统

系统启动之后,打开 http://127.0.0.1:9999 (默认端口)。SQL 脚本初始化时,预留了一个admin 的超级管理员账号(密码:admin)。登录后如下所示:


初始状态时,应用列表为空。点击后台应用进入--> 可以查看和设置管理员的密码,和机器相关配置。如下所示:


上述的配置需要注意一点的是,对于Redis 的所有机器来说,ssh 的用户和密码都是一样的(CacheCloud本身限制)。这里面需要用脚本再机器上面初始化,去创建上面的用户。

Redis 机器环境初始化

对于环境初始化的脚本,最好使用root 用户去执行。也就是将 cachecloud-master/script/cachecloud-init.sh 拷贝到 /root/ 目录下,然后执行 sh cachecloud-init.sh {username}。笔者这里的 {username} 使用的是cachecloud。这里面的脚本也很简单,主要完成了下面几项工作。

1、创建 cachecloud 用户;

2、初始化 cachecloud 工作空间和授权;

3、安装Redis(redis3.0.7)。

对于工作空间,笔者不建议更改。对于Redis的版本,用户可以自己调整。脚本执行后,会提示输入密码,这里面的密码每台机器都是相同的,然后配置在 “系统配置管理”里面,如上图所示。

普通用户注册

首先退出 admin 用户,然后点击 “新用户注册”,如下图所示:



信息填写完成提交后,管理员会收到一条审批的流程,审批通过后即可使用。这里面需要注意的是,CacheCloud对于登录的认证,需要自己根据公司去修改。笔者测试时,直接注释掉了 普通用户 的认证(任何密码都可以校验通过)。需要修改 com.sohu.cache.web.util.LoginUtil#passportCheck() ,直接返回 true 即可。

应用申请

用户登录成功之后,可以申请应用。



上面的Redis 的部署类型,就是Redis 官方提供的 3 种类型。后面需要管理员审批通过,如下所示:


上面IP 需要注意的是,这些IP 都需要在 “机器管理” 里面提前维护进去,也就是都需要提前初始化之前脚本。并且需要开启6379及以上一段范围的端口,因为CacheCloud 创建Redis 实例的端口,是从6379 开始往上递增的。

客户端连接

上面的应用申请完成之后,会生成一个 应用ID。这个ID 会在CacheCloud 客户端的SDK 接入时用到。点击 应用ID 时,可以看到客户端的示例代码:


上面的maven 依赖是之前源码包里面的Client ,使用时需要上传到公司内部的私服。 这里面需要注意的是,需要修改Client 源码包中的CacheCloud的服务地址:


到此,CacheCloud 的 安装和使用就介绍完了。