Redis学习总结(八)--Redis云平台

在实际生产环境中通过命令行的形式去进行集群的管理是一件很繁琐并且容易出现错误的事情,所以就引入了云平台的概念。

什么是云平台

Redis 云平台是指通过 BS 等架构实现对 Redis 的管理和监控。本文介绍的云平台是 -- CacheCloud

CacheCloud 简介

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

CacheCloud 功能

  • 监控统计: 提供了机器、应用、实例下各个维度数据的监控和统计界面。
  • 一键开启: Redis Standalone、Redis Sentinel、Redis Cluster三种类型的应用,无需手动配置初始化。
  • Failover: 支持哨兵,集群的高可用模式。
  • 伸缩: 提供完善的垂直和水平在线伸缩功能。
  • 完善运维: 提供自动运维和简化运维操作功能,避免纯手工运维出错。
  • 方便的客户端 方便快捷的客户端接入。
  • 元数据管理: 提供机器、应用、实例、用户信息管理。
  • 流程化: 提供申请,运维,伸缩,修改等完善的处理流程
  • 一键导入: 一键导入已经存在Redis

CacheCloud 提供的价值

  • 规模化自动运维: 降低运维成本,降低人为操作出错率。
  • 自由伸缩: 提供灵活的伸缩性,应用扩容/收缩成本降低,机器资源得到重复利用。
  • 团队提升,开源贡献:提升云产品开发设计经验,自己作为开发者和使用者。

CacheCloud 环境需求

  • JDK 7+
  • Maven 3
  • MySQL 5.5
  • Redis 3

CacheCloud 部署

1)前往 官网 下载二进制安装

o_redis_08_01.png

2) 解压文件并进入目录

[root@VM_0_15_centos opt]# tar -vxf cachecloud-bin-1.2.tar.gz 
cachecloud-web/
cachecloud-web/cachecloud.sql
cachecloud-web/stop.sh
cachecloud-web/jdbc.properties
cachecloud-web/start.sh
cachecloud-web/logs/
cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.war
[root@VM_0_15_centos opt]# cd cachecloud-web/
  • cachecloud-open-web-1.0-SNAPSHOT.war: cachecloud war包
  • cachecloud.sql: 数据库schema,默认数据名为cache_cloud,可以自行修改
  • jdbc.properties:jdbc数据库配置,自行配置
  • start.sh:启动脚本
  • stop.sh: 停止脚本
  • logs:存放日志的目录

3) 在 mysql 中将 cachecloud.sql 导入

[root@VM_0_15_centos cachecloud-web]# mysql -uroot -h 127.0.0.1 -p 
mysql> source /opt/cachecloud-web/cachecloud.sql

4) 修改 jdbc.properties 文件,根据自己的数据库信息进行配置

[root@VM_0_15_centos cachecloud-web]# vim jdbc.properties 

cachecloud.db.url = jdbc:mysql://127.0.0.1:3306/cache_cloud
cachecloud.db.user = user
cachecloud.db.password = password
cachecloud.maxPoolSize = 20
jdbc.driver = com.mysql.jdbc.Driver
jdbc.validationQuery = select 1 from dual

5) 修改内存配置

[root@VM_0_15_centos cachecloud-web]# vim start.sh

默认是 4G,但是我的服务器只有1G 囧。所以需要修改,如果你的服务器配置够的话可以跳过。

-server -Xmx4g -Xms4g

修改为:

-server -Xmx1g -Xms1g

6) 启动项目

[root@VM_0_15_centos cachecloud-web]# sh start.sh

7)浏览器访问 http://服务器 ip 地址:8585

o_redis_08_02.png

默认账号信息如下:

用户名:admin
密  码:admin

o_redis_08_03.png

机器部署

1)前往 github 下载 cachecloud-init.sh 初始化文件并上传服务器,或者在服务器新建文件,内容如下:

#!/bin/bash

############################################################################
# @desc: 
#   - 1. create user;
#   - 2. create default directories and authorize;
#   - 3. @usage: sh cachecloud-init.sh [username]
# @author: leifu
# @time: 
###########################################################################

set -o nounset
set -o errexit

readonly redisDir="/opt/cachecloud/redis"
readonly redisTarGz="redis-3.0.7.tar.gz"


# check if the user exists
checkExist() {
    local num=`cat /etc/passwd | grep -w $1 | wc -l`
         
    #cat /etc/passwd | grep -q "$1"
    if [[ $num == 1 ]]; then
        echo "user $1 exists, overwrite user and *init all data*: [y/n]?"
        read replace
        if [[ ${replace} == "y" ]]; then
            echo "delete existed user: $1."
            userdel -r "$1"
            createUser "$1"
            init "$1"
            return 0
        fi
    else
        createUser "$1"
        init "$1"
    fi
    return 0
}


# create the user
createUser() {
    # create a user 
    useradd -m -d /home/$1 -s /bin/bash $1

    # give the user a password
    passwd $1

    # add the user to sudoers
    #   echo "$1    ALL=(ALL)   ALL" >> /etc/sudoers

    #  Maximum number of days between password change
    chage -M 9999 $1
    echo "OK: create user: $1 done"

}

# create defautl dirs and authorize
init() {
    # create working dirs and a tmp dir
    mkdir -p /opt/cachecloud/data
    mkdir -p /opt/cachecloud/conf
    mkdir -p /opt/cachecloud/logs
    mkdir -p /opt/cachecloud/redis
    mkdir -p /tmp/cachecloud

    # change owner
    chown -R $1:$1 /opt/cachecloud
    chown -R $1:$1 /tmp/cachecloud
    echo "OK: init: $1 done"
}



# install redis 
installRedis() {
    #which redis-server
    #if [[ $? == 0 ]]; then
    #   echo "WARN: redis is already installed, exit."
    #   return
    #fi

    yum install -y gcc
    mkdir -p ${redisDir} && cd ${redisDir}
    wget http://download.redis.io/releases/${redisTarGz} && mv ${redisTarGz} redis.tar.gz && tar zxvf redis.tar.gz --strip-component=1
    make && make install
    if [[ $? == 0 ]]; then
        echo "OK: redis is installed, exit."
        chown -R $1:$1 ${redisDir}
        export PATH=$PATH:${redisDir}/src
        return
    fi
    echo "ERROR: redis is NOT installed, exit."
}

username=$1
checkExist "${username}"
installRedis "${username}"

2) 初始化 sh 账号

[root@VM_0_15_centos cachecloud-web]# sh cachecloud-init.sh cachecloud
cachecloud-init.sh: line 1: c:: command not found
Changing password for user cachecloud.
New password: 
BAD PASSWORD: The password is shorter than 7 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
OK: create user: MarkLogZhu done
OK: init: MarkLogZhu done
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors

cachecloud 是新建的 sh 账号,你可以选择自己的,之后需要输入密码。

3)返回刚刚的网页,右上角点击账号进入后台管理

o_redis_08_04.png

4)修改 sh 账号信息

o_redis_08_05.png

5) 增加机器

进入机器管理界面:

o_redis_08_06.png

填写机器信息:

o_redis_08_07.png

正在加载信息中:

o_redis_08_08.png

加载信息成功:

o_redis_08_09.png

应用导入

这里的应用实际上就是 Redis

1)在前台页面选择应用导入

o_redis_08_10.png

2) 填入信息,待格式检查通过后,点击开始导入

o_redis_08_11.png

o_redis_08_12.png

转载于:https://www.cnblogs.com/markLogZhu/p/11418957.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、CacheCloud是做什么的CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis 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实现各种功能,但是没有足够的精力和经验维护RedisRedis的开发人员如同使用Mysql一样,不需要运维Mysql服务器,同样使用Redis服务,不要自己运维RedisRedis由一些在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 7Maven 3MySQLRedis 3七、CacheCloud快速开始1、初始化数据库       导入项目中cachecloud.sql初始化库表结构。默认插入admin超级管理员2、CacheCloud项目配置       使用了maven作为项目构建的工具,提供了 local.properties和online.properties两套配置作为测试、线上的隔离。 属性配置说明:属性名说明示例cachecloud.db.urlmysql驱动urljdbc:mysql://127.0.0.1:3306/cache-cloudcachecloud.db.usermysql用户名admincachecloud.db.passwordmysql密码admincachecloud.machine.username服务器用户名,用于ssh${your machine username}cachecloud.machine.password服务器密码,用于ssh${your machine password}web.portspring-boot内嵌tomcat启动端口80803、启动cachecloud系统    mvn spring-boot:run1. 构建:mvn -Ponline clean package2. 上传war包到特定目录下:如/opt/cachecloud-web3: 拷贝项目中的cachecloud-web.conf配置到/opt/cachecloud-web目录下,注意必须跟war包同目录才生效4. 作为linux服务启动: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.port4、添加机器(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),进入机器管理,点击添加机器,添加机器信息是开通应用的基础。 标签:CacheCloud  redis

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值