目录
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();