那时候刚好下着雨,柏油路面湿冷冷的,还闪烁着青、黄、红颜色的灯火。



Redis管理工具 Redis Web Tools


Redis管理工具 Redis Web Tools

这是一款基于web的Redis管理工具,名字没想好。就先这么叫吧,反正用的是RedisManage取的项目名。

曾几何时一直在想: 如果能有一款Redis的管理工具就好了, 不用每次都登录服务器执行redis-cli进入命令行终端端了。

如果是桌面版,那就更好了,然后打开app store 喽了一眼......

然后默默的关闭了app store

如果能有基于web的也行啊,然后我找到了 phpRedisAdmin 。

用了几分钟,默默的删了......

真心挺难用的,不过功能还算全,至少比我下面做的那个初版会多一些。

于是我就蒙起了用自己把会的知识或技术开发一套基于web的管理工具的想法。

实现想法

大概是这样,周一想了想,然后周二就开始干了,周三、周四基本功能完成,周五build (因为预想的build应该会出很多问题) 也没想着在周五之前完成。结果有些出乎意料。

选用的框架都是业界最强大的框架没有之一

本篇文章主要以展示功能为主,不赋实际实现代码,后台可开源,前端...嘿嘿嘿,看我心情,因为重点就是前端UI及功能的实现,主要就是前端。

后端

反复思考,我觉得后端还是用PHP吧,Python毕竟还不算特别熟,搭建环境也比较麻烦,Java开发太慢...

最后决定使用我最喜欢的 Symfony 3 框架,再声明一遍: Symfony是PHP届最强大的框架,没有之一

后端框架用的是最新的3.1版本,环境要求是PHP5.6以上版本。

前端

前端当然得选用单页面来做,AnglerJS ?,可以,但我不太喜欢写HTML,也不够噱头,虽然开发起来方便,比较轻量级。

最后依然选择了我觉得非常强大非常重量级的ExtJS 6,这里也声明一下: ExtJS是最强大的前端MVVM框架,没月之一

ExtJS是Sencha 公司开发的一个产品分支,所以开发或发布的时候也需要Sencha公司的Cmd Tools工具。如果需要修改框架本身的样式则需要对Sass有一点点的了解,推荐学习网站:

w3cplus: 十分钟入门Sass

幕课网: Sass入门篇

Sass: Sass.hk

官网: sencha.com

注意: Sencha的大多数产品都是收费的,ExtJS也是收费的,不过有GPL版本。我用的好像是ExtJS 6.0.1

ExtJs 6 与Sass 我也不太熟,ExtJs与之前的 4.x 版本有些不太一样,我基本都是现学现用,边学边练(^.^) 最终不也做出来了,是不〜

功能设计

最初的功能就只是要连接到服务器然后执行命令就行了。

需要功能:

  • 添加、管理服务器
  • 连接服务器
  • 执行命令
  • 记录历史执行命令
  • 登录

功能比较简单,可以多个tab来回切换就好了。

登录

最初是不想做这个的,但考虑到需要记录用户之前执行过的命令,还得有一个登录才行,也就是用户管理中心? 这个似乎有点大,先来个小的吧,只要一个登录就好了。

要不对接公司的LDAP?这样就可以不用注册账号,使用公司邮箱就可以登录使用了。可是总感觉好像似乎大家都不太愿意用自己邮箱来访问其他工具,那怎么办呢?收集意见?

要不先这么着吧,就用一个账号行了,后期如果需要的话 可以再扩展。

为了方便使用,最初考虑也是在内网使用,所以没有做什么安全的限制!

仪表盘?

还没做,先空着,后期可以再加!

Redis 服务器列表

服务器列表这里功能会比较多,得展示所有服务器,还有编缉、详情、连接服务器等。这块功能多,所以用了在个初图控制器,主要对list页的控制,命令控制台的控制,还有就是Databases的控制进行监听及实现。

上图就是Redis列表页,可进行添加服务器,编辑服务器的相当操作,选择grid的head有下拉先项,可选择字段进行排序或其他操作。

只要选择了“需要认证”并且填写了认证密码,当你对服务器进行操作的时候就不再需要输入AUTH password了。

下图是添加框:

点击列表右边的感叹号显示Redis服务器详情类似于命令行的info,下图详情展示:

命令操作项

当在列表页点击“连接”就是可以连接到对应的服务器进行操作了,下图是自动创建的命令操作的tab页:

在显示的tab页的左边也有几个tab页,这里显示的是当前连接的服务器有几个正在使用的*db*,也就是当前连接服务器上的数据的db,默认最多是16个db, 当然前端是有多少个就展示多少个的。可能有人注意到了,无法添加新的db? 这里后期可以扩展^_^ 暂木有做。

选择不同的db tab 可以对不同的db进行操作,相当于你在命令行输入了select 1等等。

历史详情

这个比较简单,只是在tab页中加入了一个grid,当选择这个tab并且这个tab里没值时会加载store获取历史记录!复制曾经操作过的命令 在commad页进行执行。

每个tab都是有记忆功能的,只要你不关闭这个tab或不刷新当前页面,记录会始终保留

目前改项目已经部署在了测试环境,欢迎提bug,提意见,提各种需求〜〜〜

现前后端代码已上传至公司的gitlab 安装方式:

git clone http://gitlab.xxxxxx.org/xxxxx/xxx/me-dudulu-redis

cd me-dudulu-redis
composer install    # 安装时需要输入你的数据库地址及相当信息

php bin/console docutrine doctrine:schema:create --force # 创建数据表

php bin/console fos:user:create admin --super-admin # 创建超级管理员

php bin/console server:run # 启动服务

然后你就可以愉快的装x啦!

尾巴

UI好看、好用、简单、方便、快捷。

  • symfony PHP界最强大的框架 没有之一
  • Ext JS 前端最强大的框架 没有之一

想做成开源项目,有兴趣的小伙伴可以一起!难度略高!如果效果好,考虑 开发一个客户端版!

特别提醒

不要适应 kyes * 不是你死(客户端)就是我亡(服务器)


 标签 , TAG , 啦啦