mirror of
https://github.com/qishibo/AnotherRedisDesktopManager.git
synced 2026-02-01 17:27:13 +00:00
console/cli add promote tip: fix #283,#492,#439
This commit is contained in:
parent
fe59ea9c19
commit
1edee5a21a
205
src/cmds.js
Normal file
205
src/cmds.js
Normal file
@ -0,0 +1,205 @@
|
||||
const readCMD = [
|
||||
'REFRESH',
|
||||
'AUTH password',
|
||||
'BITCOUNT key [start] [end]',
|
||||
'BITOP operation destkey key [key ...]',
|
||||
'BITPOS key bit [start] [end]',
|
||||
'CLIENT LIST [TYPE normal|master|replica|pubsub]',
|
||||
'CLIENT GETNAME',
|
||||
'CLUSTER COUNT-FAILURE-REPORTS node-id',
|
||||
'CLUSTER COUNTKEYSINSLOT slot',
|
||||
'CLUSTER GETKEYSINSLOT slot count',
|
||||
'CLUSTER INFO',
|
||||
'CLUSTER KEYSLOT key',
|
||||
'CLUSTER NODES',
|
||||
'CLUSTER SLAVES node-id',
|
||||
'CLUSTER REPLICAS node-id',
|
||||
'CLUSTER SLOTS',
|
||||
'COMMANDS',
|
||||
'COMMAND COUNT',
|
||||
'COMMAND GETKEYS',
|
||||
'COMMAND INFO command-name [command-name ...]',
|
||||
'CONFIG GET parameter',
|
||||
'DBSIZE',
|
||||
'DEBUG OBJECT key',
|
||||
'DISCARD',
|
||||
'DUMP key',
|
||||
'ECHO message',
|
||||
'EXEC',
|
||||
'EXISTS key',
|
||||
'GET key',
|
||||
'GETBIT key offset',
|
||||
'GETRANGE key start end',
|
||||
'HEXISTS key field',
|
||||
'HGET key field',
|
||||
'HGETALL key',
|
||||
'HKEYS key',
|
||||
'HLEN key',
|
||||
'HMGET key field [field ...]',
|
||||
'HSCAN key cursor [MATCH pattern] [COUNT count]',
|
||||
'HVALS key',
|
||||
'INFO [section]',
|
||||
'KEYS pattern',
|
||||
'LASTSAVE',
|
||||
'LINDEX key index',
|
||||
'LLEN key',
|
||||
'LRANGE key start stop',
|
||||
'MGET key [key ...]',
|
||||
'MONITOR',
|
||||
'MULTI',
|
||||
'OBJECT subcommand [arguments ...]',
|
||||
'PING [message]',
|
||||
'PUBSUB CHANNELS [pattern]',
|
||||
'PUBSUB NUMSUB [channel-1 ...]',
|
||||
'PUBSUB NUMPAT',
|
||||
'PSUBSCRIBE pattern [pattern ...]',
|
||||
'PTTL key',
|
||||
'PUNSUBSCRIBE [pattern ...]',
|
||||
'QUIT',
|
||||
'RANDOMKEY',
|
||||
'ROLE',
|
||||
'SCAN cursor [MATCH pattern] [COUNT count]',
|
||||
'SCARD key',
|
||||
'SDIFF key [key ...]',
|
||||
'SELECT index',
|
||||
'SINTER key [key ...]',
|
||||
'SISMEMBER key member',
|
||||
'SMEMBERS key',
|
||||
'SRANDMEMBER key [count]',
|
||||
'SSCAN key cursor [MATCH pattern] [COUNT count]',
|
||||
'STRLEN key',
|
||||
'SUBSCRIBE channel [channel ...]',
|
||||
'SUNION key [key ...]',
|
||||
'TIME',
|
||||
'TTL key',
|
||||
'TYPE key',
|
||||
'UNSUBSCRIBE [channel ...]',
|
||||
'UNWATCH',
|
||||
'WATCH key [key ...]',
|
||||
'ZCARD key',
|
||||
'ZCOUNT key min max',
|
||||
'ZLEXCOUNT key min max',
|
||||
'ZRANGE key start stop [WITHSCORES]',
|
||||
'ZRANGEBYLEX key min max [LIMIT offset count]',
|
||||
'ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]',
|
||||
'ZRANK key member',
|
||||
'ZREVRANGE key start stop [WITHSCORES]',
|
||||
'ZREVRANGEBYLEX key max min [LIMIT offset count]',
|
||||
'ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]',
|
||||
'ZREVRANK key member',
|
||||
'ZSCAN key cursor [MATCH pattern] [COUNT count]',
|
||||
'ZSCORE key member',
|
||||
|
||||
'CLIENT REPLY ON|OFF|SKIP',
|
||||
'GEOHASH key member [member ...]',
|
||||
'GEOPOS key member [member ...]',
|
||||
'GEODIST key member1 member2 [unit]',
|
||||
'HSTRLEN key field',
|
||||
|
||||
'MEMORY DOCTOR',
|
||||
'MEMORY HELP',
|
||||
'MEMORY MALLOC-STATS',
|
||||
'MEMORY STATS',
|
||||
'MEMORY USAGE key [SAMPLES count]',
|
||||
|
||||
'CLIENT ID',
|
||||
'XINFO [CONSUMERS key groupname] [GROUPS key] [STREAM key] [HELP]',
|
||||
'XRANGE key start end [COUNT count]',
|
||||
'XREVRANGE key end start [COUNT count]',
|
||||
'XLEN key',
|
||||
'XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]',
|
||||
'XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] [NOACK] STREAMS key [key ...] ID [ID ...]',
|
||||
'XPENDING key group [start end count] [consumer]',
|
||||
];
|
||||
|
||||
const writeCMD = [
|
||||
'APPEND key value',
|
||||
'BGREWRITEAOF',
|
||||
'BGSAVE',
|
||||
'BLPOP key [key ...] timeout',
|
||||
'BRPOP key [key ...] timeout',
|
||||
'BRPOPLPUSH source destination timeout',
|
||||
'CONFIG SET parameter value',
|
||||
'CONFIG RESETSTAT',
|
||||
'DEBUG SEGFAULT',
|
||||
'DECR key',
|
||||
'DECRBY key decrement',
|
||||
'DEL key [key ...]',
|
||||
'DISCARD',
|
||||
'EVAL script numkeys key [key ...] arg [arg ...]',
|
||||
'EVALSHA sha1 numkeys key [key ...] arg [arg ...]',
|
||||
'EXPIRE key seconds',
|
||||
'EXPIREAT key timestamp',
|
||||
'FLUSHALL',
|
||||
'FLUSHDB',
|
||||
'GETSET key value',
|
||||
'HDEL key field [field ...]',
|
||||
'HINCRBY key field increment',
|
||||
'HINCRBYFLOAT key field increment',
|
||||
'HMSET key field value [field value ...]',
|
||||
'HSET key field value',
|
||||
'HSETNX key field value',
|
||||
'INCR key',
|
||||
'INCRBY key increment',
|
||||
'INCRBYFLOAT key increment',
|
||||
'LINSERT key BEFORE|AFTER pivot value',
|
||||
'LPOP key',
|
||||
'LPUSH key value [value ...]',
|
||||
'LPUSHX key value',
|
||||
'LREM key count value',
|
||||
'LSET key index value',
|
||||
'LTRIM key start stop',
|
||||
'MIGRATE host port key destination-db timeout',
|
||||
'MOVE key db',
|
||||
'MSET key value [key value ...]',
|
||||
'MSETNX key value [key value ...]',
|
||||
'OBJECT subcommand [arguments ...]',
|
||||
'PERSIST key',
|
||||
'PEXPIRE key milliseconds',
|
||||
'PEXPIREAT key milliseconds-timestamp',
|
||||
'PSETEX key milliseconds value',
|
||||
'PSUBSCRIBE pattern [pattern ...]',
|
||||
'PUBLISH channel message',
|
||||
'RENAME key newkey',
|
||||
'RENAMENX key newkey',
|
||||
'RESTORE key ttl serialized-value',
|
||||
'RPOP key',
|
||||
'RPOPLPUSH source destination',
|
||||
'RPUSH key value [value ...]',
|
||||
'RPUSHX key value',
|
||||
'SADD key member [member ...]',
|
||||
'SAVE',
|
||||
'SCRIPT EXISTS script [script ...]',
|
||||
'SCRIPT FLUSH',
|
||||
'SCRIPT KILL',
|
||||
'SCRIPT LOAD script',
|
||||
'SDIFFSTORE destination key [key ...]',
|
||||
'SET key value',
|
||||
'SETBIT key offset value',
|
||||
'SETEX key seconds value',
|
||||
'SETNX key value',
|
||||
'SETRANGE key offset value',
|
||||
'SHUTDOWN [NOSAVE|SAVE]',
|
||||
'SINTERSTORE destination key [key ...]',
|
||||
'SLAVEOF host port',
|
||||
'SLOWLOG subcommand [argument]',
|
||||
'SMOVE source destination member',
|
||||
'SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]',
|
||||
'SPOP key',
|
||||
'SREM key member [member ...]',
|
||||
'SUNIONSTORE destination key [key ...]',
|
||||
'SYNC',
|
||||
'ZADD key score member [score] [member]',
|
||||
'ZINCRBY key increment member',
|
||||
'ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]',
|
||||
'ZREM key member [member ...]',
|
||||
'ZREMRANGEBYLEX key min max',
|
||||
'ZREMRANGEBYRANK key start stop',
|
||||
'ZREMRANGEBYSCORE key min max',
|
||||
'ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]',
|
||||
];
|
||||
|
||||
export default [
|
||||
...readCMD,
|
||||
...writeCMD,
|
||||
];
|
||||
@ -22,8 +22,9 @@
|
||||
:select-when-unmatched="true"
|
||||
:trigger-on-focus="false"
|
||||
popper-class="cli-console-suggestion"
|
||||
@keyup.enter.native="consoleExec"
|
||||
ref="cliParams"
|
||||
@select='$refs.cliParams.focus()'
|
||||
@keyup.enter.native="consoleExec"
|
||||
@keyup.up.native="searchUp"
|
||||
@keyup.down.native="searchDown">
|
||||
</el-autocomplete>
|
||||
@ -34,6 +35,7 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
import rawCommand from '@/rawCommand';
|
||||
import cmdTips from '@/cmds';
|
||||
import splitargs from 'redis-splitargs';
|
||||
|
||||
export default {
|
||||
@ -47,6 +49,11 @@ export default {
|
||||
};
|
||||
},
|
||||
props: ['client'],
|
||||
computed: {
|
||||
paramsTrim() {
|
||||
return this.params.replace(/^\s+|\s+$/g, '');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
initShow() {
|
||||
this.$refs.cliParams.focus();
|
||||
@ -57,23 +64,50 @@ export default {
|
||||
this.scrollToBottom();
|
||||
},
|
||||
inputSuggestion(input, cb) {
|
||||
if (!this.params) {
|
||||
if (!this.paramsTrim) {
|
||||
cb([]);
|
||||
return;
|
||||
}
|
||||
|
||||
const items = this.inputSuggestionItems.filter(function (item) {
|
||||
return item.indexOf(input) !== -1;
|
||||
return item.toLowerCase().indexOf(input.toLowerCase()) !== -1;
|
||||
});
|
||||
|
||||
// add cmd tips
|
||||
this.addCMDTips(items);
|
||||
|
||||
const suggestions = [...new Set(items)].map(function (item) {
|
||||
return {value: item};
|
||||
});
|
||||
|
||||
cb(suggestions);
|
||||
},
|
||||
addCMDTips(items = []) {
|
||||
const paramsArr = splitargs(this.paramsTrim);
|
||||
const paramsLen = paramsArr.length;
|
||||
const cmd = paramsArr[0].toUpperCase();
|
||||
|
||||
if (!cmd) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = cmdTips.length - 1; i >= 0; i--) {
|
||||
// cmd with param such as 'hget hhh'
|
||||
if (paramsLen > 1) {
|
||||
if (cmdTips[i].split(' ')[0] === cmd) {
|
||||
items.unshift(cmdTips[i]);
|
||||
}
|
||||
}
|
||||
// cmd without param such as 'hget'
|
||||
else {
|
||||
if (cmdTips[i].startsWith(cmd)) {
|
||||
items.unshift(cmdTips[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
consoleExec() {
|
||||
const params = this.params.replace(/^\s+|\s+$/g, '');
|
||||
const params = this.paramsTrim;
|
||||
const paramsArr = splitargs(params);
|
||||
|
||||
this.params = '';
|
||||
@ -148,7 +182,7 @@ export default {
|
||||
execFinished(params) {
|
||||
const operate = params[0];
|
||||
|
||||
if (operate === 'select' && !isNaN(params[1])) {
|
||||
if (operate.toLowerCase() === 'select' && !isNaN(params[1])) {
|
||||
this.$bus.$emit('changeDb', this.client, params[1]);
|
||||
}
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user