目录

1.介绍

2.源码地址

3.环境要求

4.安装

1.准备数据库

2.修改application.yml

3.编译

4.项目部署

5.新增功能

1.主从告警

2.rebalance

3.reshard


1.介绍

Redis Manager 是 Redis 一站式管理平台,支持集群(cluster、master-replica、sentinel)的监控、安装(除sentinel)、管理、告警以及基本的数据操作功能

2.源码地址

https://github.com/ngbdf/redis-manager

3.环境要求

JDK8+, OpenJDK8+ Maven3 Mysql5.7+

4.安装

1.准备数据库

只创建数据库即可,其他的相关表项目启动时会自动创建

CREATE DATABASE redis_manager DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2.修改application.yml

修改datasource的地址及账号密码

conf-path: /data1/redis-manager/data/conf/ --项目部署目录 项目部署在/data1/redis-manager目录下

package-path: /data1/redis-manager/data/machine/ --redis安装包所在位置

3.编译

没搞明白源项目怎么搞的,编译脚本在redis-manager\build\build.sh

这里自己改了下编译脚本,脚本先对前端项目进行编译,然后把前端编译好的文件放到后台项目的静态资源下,最后对后端进行编译,如果只改动了前端,那最后的这一步mvn clean package -Dmaven.test.skip=true可以省略,节省点时间

#!/bin/bash
project_path=$(cd `dirname $0`; pwd)
cd $project_path
ls | grep -v '\.sh' | xargs rm -rf
mkdir conf/
mkdir web/
mkdir logs/
cd ../redis-manager-ui/redis-manager-vue
#npm install
npm run build
cd ../../redis-manager-dashboard
rm -rf src/main/resources/static
rm -rf src/main/resources/templates/index.html
mv ../redis-manager-ui/redis-manager-vue/dist/static src/main/resources/static
mv ../redis-manager-ui/redis-manager-vue/dist/index.html src/main/resources/templates/
mv ../redis-manager-ui/redis-manager-vue/dist/logo.ico src/main/resources/
mvn clean package -Dmaven.test.skip=true

4.项目部署

项目编译好之后,会在redis-manager\redis-manager-dashboard\target目录下生成一个压缩包redis-manager-dashboard-2.3.3-RELEASE.tar.gz

我们安装到/data1/redis-manager目录下

#上传
rz
#解压
tar -xzvf file
#修改文件格式
unix2dos redis-manager/bin/start.sh
#启动
sh redis-manager/bin/start.sh

5.新增功能

1.主从告警

解决思路:内存里面存下节点的角色,然后本次和上次的角色进行对比,角色变化则告警

2.rebalance

解决思路:前端调用后台接口,session连接远程服务器执行rebalance命令

#大于等于5版本
sudo ./redis-cli --cluster rebalance --cluster-use-empty-masters  + host + ":" + port;
#小于5版本
sudo ./redis-trib.rb rebalance --use-empty-masters  + host + ":" + port

3.reshard

解决思路:前端调用后台接口,session连接远程服务器执行reshard命令

#大于等于5版本
sudo ./redis-cli --cluster reshard --cluster-from " + reshard.getFrom() + " --cluster-to " + reshard.getTo() + " --cluster-slots " + reshard.getSlots() + " --cluster-yes --cluster-timeout " + reshard.getTimeout() + " --cluster-pipeline " + reshard.getPipeline()+" "+reshard.getIpPort();
#小于5版本
sudo ./redis-trib.rb reshard --from " + reshard.getFrom() + " --to " + reshard.getTo() + " --slots " + reshard.getSlots() + " --yes --timeout " + reshard.getTimeout() + " --pipeline " + reshard.getPipeline() +" "+reshard.getIpPort();
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐