目录
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 DATABASEredis_managerDEFAULT 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-manageruilduild.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=true4.项目部署
项目编译好之后,会在redis-manager edis-manager-dashboard arget目录下生成一个压缩包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.sh5.新增功能
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 + ":" + port3.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();