├── .gitignore ├── LICENSE ├── README.md ├── README_CN.md ├── babel.config.js ├── dist_electron ├── index.js └── package.json ├── logo.icns ├── logo.ico ├── logo.png ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── favicon.ico └── index.html ├── screen-shot ├── 1.png ├── 2.png └── 3.png ├── src ├── App.vue ├── assets │ ├── avatar.jpeg │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-shims.css │ │ └── v4-shims.min.css │ ├── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── logo.png │ ├── paypal.png │ ├── redis.png │ ├── sass4.3 │ │ ├── _alert.scss │ │ ├── _badge.scss │ │ ├── _breadcrumb.scss │ │ ├── _button-group.scss │ │ ├── _buttons.scss │ │ ├── _card.scss │ │ ├── _carousel.scss │ │ ├── _close.scss │ │ ├── _code.scss │ │ ├── _custom-forms.scss │ │ ├── _dropdown.scss │ │ ├── _forms.scss │ │ ├── _functions.scss │ │ ├── _grid.scss │ │ ├── _images.scss │ │ ├── _input-group.scss │ │ ├── _jumbotron.scss │ │ ├── _kedis.scss │ │ ├── _list-group.scss │ │ ├── _media.scss │ │ ├── _mixins.scss │ │ ├── _modal.scss │ │ ├── _nav.scss │ │ ├── _navbar.scss │ │ ├── _pagination.scss │ │ ├── _popover.scss │ │ ├── _print.scss │ │ ├── _progress.scss │ │ ├── _reboot.scss │ │ ├── _root.scss │ │ ├── _spinners.scss │ │ ├── _tables.scss │ │ ├── _toasts.scss │ │ ├── _tooltip.scss │ │ ├── _transitions.scss │ │ ├── _type.scss │ │ ├── _utilities.scss │ │ ├── _variables.scss │ │ ├── bootstrap-grid.scss │ │ ├── bootstrap-reboot.scss │ │ ├── bootstrap.scss │ │ ├── customs │ │ │ ├── _contextMenu.scss │ │ │ ├── _customModal.scss │ │ │ ├── _el.scss │ │ │ ├── _select.scss │ │ │ ├── _table.scss │ │ │ └── _tree.scss │ │ ├── mixins │ │ │ ├── _alert.scss │ │ │ ├── _background-variant.scss │ │ │ ├── _badge.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _box-shadow.scss │ │ │ ├── _breakpoints.scss │ │ │ ├── _buttons.scss │ │ │ ├── _caret.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _deprecate.scss │ │ │ ├── _float.scss │ │ │ ├── _forms.scss │ │ │ ├── _gradients.scss │ │ │ ├── _grid-framework.scss │ │ │ ├── _grid.scss │ │ │ ├── _hover.scss │ │ │ ├── _image.scss │ │ │ ├── _list-group.scss │ │ │ ├── _lists.scss │ │ │ ├── _nav-divider.scss │ │ │ ├── _pagination.scss │ │ │ ├── _reset-text.scss │ │ │ ├── _resize.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _size.scss │ │ │ ├── _table-row.scss │ │ │ ├── _text-emphasis.scss │ │ │ ├── _text-hide.scss │ │ │ ├── _text-truncate.scss │ │ │ ├── _transition.scss │ │ │ └── _visibility.scss │ │ ├── over-write.scss │ │ ├── utilities │ │ │ ├── _align.scss │ │ │ ├── _background.scss │ │ │ ├── _borders.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _display.scss │ │ │ ├── _embed.scss │ │ │ ├── _flex.scss │ │ │ ├── _float.scss │ │ │ ├── _overflow.scss │ │ │ ├── _position.scss │ │ │ ├── _screenreaders.scss │ │ │ ├── _shadows.scss │ │ │ ├── _sizing.scss │ │ │ ├── _spacing.scss │ │ │ ├── _stretched-link.scss │ │ │ ├── _text.scss │ │ │ └── _visibility.scss │ │ └── vendor │ │ │ └── _rfs.scss │ ├── slogen.png │ ├── splash.png │ ├── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 │ ├── wx.png │ └── zfb.png ├── background.ts ├── components │ ├── ContextMenuComponent.vue │ ├── KeyInfoPanel.vue │ ├── NewKeyModal.vue │ ├── NewKeysFilterModal.vue │ ├── NewRedisServerModal.vue │ ├── ValueHash.vue │ ├── ValueList.vue │ ├── ValueSet.vue │ ├── ValueString.vue │ └── ValueZSet.vue ├── i18n.ts ├── locales │ ├── en.json │ └── zh_CN.json ├── main.ts ├── models │ ├── ContextMenuItem.ts │ ├── KeyInfo.ts │ ├── KeysFilter.ts │ ├── ListInfo.ts │ └── RedisServer.ts ├── plugins │ └── tree │ │ ├── tree.css │ │ ├── tree.d.ts │ │ ├── tree.js │ │ └── tree.vue ├── router │ └── index.ts ├── shims-tsx.d.ts ├── shims-vue.d.ts ├── utils │ ├── EventBus.ts │ ├── RedisStore.ts │ ├── ResizeManager.ts │ └── Store.ts └── views │ ├── Console.vue │ ├── FooterBar.vue │ ├── Home.vue │ ├── Left.vue │ ├── Mid.vue │ └── Right.vue ├── tsconfig.json ├── tslint.json └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | app/node_modules 3 | /.git-credentials 4 | dist 5 | 6 | dist_electron -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | # Kedis 4 | ``` 5 | 👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿 6 | 👉🏿👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👈🏿 7 | 👉🏿👉🏾👇🏽👇🏽👇🏽👇🏽👇🏽👇🏽👇🏽👈🏾👈🏿 8 | 👉🏿👉🏾👉🏽👇🏼👇🏼👇🏼👇🏼👇🏼👈🏽👈🏾👈🏿 9 | 👉🏿👉🏾👉🏽👉🏼👇🏻👇🏻👇🏻👈🏼👈🏽👈🏾👈🏿 10 | 👉🏿👉🏾👉🏽👉🏼 Kedis 👈🏼👈🏽👈🏾👈🏿 11 | 👉🏿👉🏾👉🏽👉🏼👆🏻👆🏻👆🏻👈🏼👈🏽👈🏾👈🏿 12 | 👉🏿👉🏾👉🏽👆🏼👆🏼👆🏼👆🏼👆🏼👈🏽👈🏾👈🏿 13 | 👉🏿👉🏾👆🏽👆🏽👆🏽👆🏽👆🏽👆🏽👆🏽👈🏾👈🏿 14 | 👉🏿👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👈🏿 15 | 👉🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👈🏿 16 | ``` 17 | [中文](https://github.com/uniorder/kedis/blob/master/README_CN.md) 18 | 19 | This application powered by [Kehaw](http://www.kehaw.com) 20 | 21 | Kedis is a free Redis desktop manager app, it is based on Electron. Thanks for these open source projects: 22 | 23 | - [Electron](https://electronjs.org/) 24 | - [ioredis](https://github.com/luin/ioredis) 25 | - [vuejs](https://github.com/vuejs/vue) 26 | - [vue-cli-plugin-electron-builder](https://github.com/nklayman/vue-cli-plugin-electron-builder) 27 | - [Bootstrap](https://getbootstrap.com/) 28 | 29 | The other projects please check `package.json`. 30 | 31 | `.dmg` here: [Donwload](https://gitee.com/kehaw9818/Kedis/attach_files/294751/download) 32 | 33 |  34 | 35 |  36 | 37 |  38 | 39 | ## Thanks 40 | 41 | These guys donate me: 42 | 43 | | Donator | Date | 44 | | ------- | ---------- | 45 | | \*煜 | 2019-03-17 | 46 | | F\*s | 2018-07-30 | 47 | | \*羽 | 2018-04-23 | 48 | | \*🐟 | 2018-04-22 | 49 | | \*语 | 2018-08-04 | 50 | | \*泽涛 | 2018-12-05 | 51 | | A\*d | 2018-12-05 | 52 | 53 | ## Tips 54 | 55 | Each collection only displays a maximum of 1000 pieces of data, e.g `keys *`, `hgetall`, if you wants to get more items, please use filter. 56 | 57 | ## Mac OS Prepares 58 | 59 | If you are using macOS Catalina, please install xcode command line tools first: 60 | 61 | ``` 62 | xcode-select --install 63 | ``` 64 | 65 | ## node-sass rebuild 66 | 67 | Some times you could get an error like: 68 | 69 | ``` 70 | Error: ENOENT: no such file or directory, scandir '**/node_modules/node-sass/vendor' 71 | ``` 72 | 73 | You should do this: 74 | 75 | ``` 76 | npm update 77 | npm install 78 | npm rebuild node-sass 79 | ``` 80 | 81 | ## Project setup 82 | 83 | ``` 84 | npm install 85 | ``` 86 | 87 | ### Compiles and hot-reloads for development 88 | 89 | ``` 90 | npm run electron:serve 91 | ``` 92 | 93 | ### Compiles and minifies for production 94 | 95 | ``` 96 | npm run electron:build 97 | ``` 98 | -------------------------------------------------------------------------------- /README_CN.md: -------------------------------------------------------------------------------- 1 | # Kedis 2 | 3 | [English](https://github.com/uniorder/kedis/blob/master/README.md) 4 | 5 |  6 | 7 | # Kedis 8 | ``` 9 | 👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿👇🏿 10 | 👉🏿👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👇🏾👈🏿 11 | 👉🏿👉🏾👇🏽👇🏽👇🏽👇🏽👇🏽👇🏽👇🏽👈🏾👈🏿 12 | 👉🏿👉🏾👉🏽👇🏼👇🏼👇🏼👇🏼👇🏼👈🏽👈🏾👈🏿 13 | 👉🏿👉🏾👉🏽👉🏼👇🏻👇🏻👇🏻👈🏼👈🏽👈🏾👈🏿 14 | 👉🏿👉🏾👉🏽👉🏼 Kedis 👈🏼👈🏽👈🏾👈🏿 15 | 👉🏿👉🏾👉🏽👉🏼👆🏻👆🏻👆🏻👈🏼👈🏽👈🏾👈🏿 16 | 👉🏿👉🏾👉🏽👆🏼👆🏼👆🏼👆🏼👆🏼👈🏽👈🏾👈🏿 17 | 👉🏿👉🏾👆🏽👆🏽👆🏽👆🏽👆🏽👆🏽👆🏽👈🏾👈🏿 18 | 👉🏿👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👆🏾👈🏿 19 | 👉🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿👈🏿 20 | ``` 21 | 22 | Kedis 是一个免费的Redis桌面管理工具,它基于Electron开发,特别感谢以下开源项目: 23 | 24 | - [Electron](https://electronjs.org/) 25 | - [ioredis](https://github.com/luin/ioredis) 26 | - [vuejs](https://github.com/vuejs/vue) 27 | - [vue-cli-plugin-electron-builder](https://github.com/nklayman/vue-cli-plugin-electron-builder) 28 | - [Bootstrap](https://getbootstrap.com/) 29 | 30 | 更多的依赖参看 `package.json` 文件. 31 | 32 |  33 | 34 |  35 | 36 |  37 | 38 | ## Thanks 39 | 40 | 捐助我的人: 41 | 42 | | Donator | Date | 43 | | ------- | ---------- | 44 | | \*煜 | 2019-03-17 | 45 | | F\*s | 2018-07-30 | 46 | | \*羽 | 2018-04-23 | 47 | | \*🐟 | 2018-04-22 | 48 | | \*语 | 2018-08-04 | 49 | | \*泽涛 | 2018-12-05 | 50 | | A\*d | 2018-12-05 | 51 | 52 | ## 提示 53 | 54 | 每一个集合,例如key、hset、set等,最多只显示1000条数据,如果想要查看更多的数据,请使用过滤功能。 55 | 56 | ## Mac OS 上的一些问题 57 | 58 | 如果你使用的是最新版的 macOS,可能会遇到gyp编译错误问题,此时你可以先安装Xcode命令行工具: 59 | 60 | ``` 61 | xcode-select --install 62 | ``` 63 | 64 | ## node-sass rebuild 65 | 66 | 如果在构建过程中发生了关于node-sass的错误,例如: 67 | 68 | ``` 69 | Error: ENOENT: no such file or directory, scandir '**/node_modules/node-sass/vendor' 70 | ``` 71 | 72 | 你可以尝试以下操作: 73 | 74 | ``` 75 | npm update 76 | npm install 77 | npm rebuild node-sass 78 | ``` 79 | 80 | ## 初始化 81 | 82 | ``` 83 | npm install 84 | ``` 85 | 86 | ### 运行 87 | 88 | ``` 89 | npm run electron:serve 90 | ``` 91 | 92 | ### 编译 93 | 94 | ``` 95 | npm run electron:build 96 | ``` 97 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /dist_electron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kedis", 3 | "version": "2.4.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "electron:build": "vue-cli-service electron:build", 10 | "electron:serve": "vue-cli-service electron:serve", 11 | "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'", 12 | "postinstall": "electron-builder install-app-deps", 13 | "postuninstall": "electron-builder install-app-deps" 14 | }, 15 | "main": "background.js", 16 | "dependencies": { 17 | "@types/ioredis": "^4.0.18", 18 | "@types/jquery": "^3.3.31", 19 | "@types/jqueryui": "^1.12.9", 20 | "@types/js-yaml": "^3.12.1", 21 | "@types/ssh2": "^0.5.39", 22 | "axios": "^0.19.0", 23 | "bootstrap-vue": "^2.0.4", 24 | "core-js": "^3.4.0", 25 | "hiredis": "^0.5.0", 26 | "ioredis": "^4.14.1", 27 | "jquery": "^3.4.1", 28 | "jqueryui": "^1.11.1", 29 | "js-yaml": "^3.13.1", 30 | "ssh2": "^0.8.5", 31 | "vee-validate": "^3.0.11", 32 | "vue": "^2.6.10", 33 | "vue-class-component": "^7.0.2", 34 | "vue-i18n": "^8.0.0", 35 | "vue-property-decorator": "^8.3.0", 36 | "vue-router": "^3.1.3" 37 | }, 38 | "devDependencies": { 39 | "@types/webpack": "^4.39.8", 40 | "@vue/cli-plugin-babel": "^4.0.0", 41 | "@vue/cli-plugin-router": "^4.0.0", 42 | "@vue/cli-plugin-typescript": "^4.0.0", 43 | "@vue/cli-service": "^4.0.0", 44 | "electron": "^6.1.4", 45 | "node-sass": "^4.12.0", 46 | "sass-loader": "^8.0.0", 47 | "tslint-config-prettier": "^1.18.0", 48 | "typescript": "~3.5.3", 49 | "vue-cli-plugin-electron-builder": "^1.4.0", 50 | "vue-cli-plugin-i18n": "^0.6.0", 51 | "vue-template-compiler": "^2.6.10" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /logo.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uniorder/kedis/13dc97cb0648649b6a53eb25c98251db0233c932/logo.icns -------------------------------------------------------------------------------- /logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uniorder/kedis/13dc97cb0648649b6a53eb25c98251db0233c932/logo.ico -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uniorder/kedis/13dc97cb0648649b6a53eb25c98251db0233c932/logo.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kedis", 3 | "version": "2.4.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "electron:build": "vue-cli-service electron:build", 10 | "electron:serve": "vue-cli-service electron:serve", 11 | "i18n:report": "vue-cli-service i18n:report --src './src/**/*.?(js|vue)' --locales './src/locales/**/*.json'", 12 | "postinstall": "electron-builder install-app-deps", 13 | "postuninstall": "electron-builder install-app-deps" 14 | }, 15 | "main": "background.js", 16 | "dependencies": { 17 | "@types/ioredis": "^4.0.18", 18 | "@types/jquery": "^3.3.31", 19 | "@types/jqueryui": "^1.12.9", 20 | "@types/js-yaml": "^3.12.1", 21 | "@types/ssh2": "^0.5.39", 22 | "axios": "^0.19.0", 23 | "bootstrap-vue": "^2.0.4", 24 | "core-js": "^3.4.0", 25 | "hiredis": "^0.5.0", 26 | "ioredis": "^4.14.1", 27 | "jquery": "^3.4.1", 28 | "jqueryui": "^1.11.1", 29 | "js-yaml": "^3.13.1", 30 | "ssh2": "^0.8.5", 31 | "vee-validate": "^3.0.11", 32 | "vue": "^2.6.10", 33 | "vue-class-component": "^7.0.2", 34 | "vue-i18n": "^8.0.0", 35 | "vue-property-decorator": "^8.3.0", 36 | "vue-router": "^3.1.3" 37 | }, 38 | "devDependencies": { 39 | "@types/webpack": "^4.39.8", 40 | "@vue/cli-plugin-babel": "^4.0.0", 41 | "@vue/cli-plugin-router": "^4.0.0", 42 | "@vue/cli-plugin-typescript": "^4.0.0", 43 | "@vue/cli-service": "^4.0.0", 44 | "electron": "^6.1.4", 45 | "node-sass": "^4.12.0", 46 | "sass-loader": "^8.0.0", 47 | "tslint-config-prettier": "^1.18.0", 48 | "typescript": "~3.5.3", 49 | "vue-cli-plugin-electron-builder": "^1.4.0", 50 | "vue-cli-plugin-i18n": "^0.6.0", 51 | "vue-template-compiler": "^2.6.10" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uniorder/kedis/13dc97cb0648649b6a53eb25c98251db0233c932/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 |