redict/utils
Oran Agra 3204a03574
Move doc metadata from COMMAND to COMMAND DOCS (#10056)
Syntax:
`COMMAND DOCS [<command name> ...]`

Background:
Apparently old version of hiredis (and thus also redis-cli) can't
support more than 7 levels of multi-bulk nesting.

The solution is to move all the doc related metadata from COMMAND to a
new COMMAND DOCS sub-command.

The new DOCS sub-command returns a map of commands (not an array like in COMMAND),
And the same goes for the `subcommands` field inside it (also contains a map)

Besides that, the remaining new fields of COMMAND (hints, key-specs, and
sub-commands), are placed in the outer array rather than a nested map.
this was done mainly for consistency with the old format.

Other changes:
---
* Allow COMMAND INFO with no arguments, which returns all commands, so that we can some day deprecated
  the plain COMMAND (no args)

* Reduce the amount of deferred replies from both COMMAND and COMMAND
  DOCS, especially in the inner loops, since these create many small
  reply objects, which lead to many small write syscalls and many small
  TCP packets.
  To make this easier, when populating the command table, we count the
  history, args, and hints so we later know their size in advance.
  Additionally, the movablekeys flag was moved into the flags register.
* Update generate-commands-json.py to take the data from both command, it
  now executes redis-cli directly, instead of taking input from stdin.
* Sub-commands in both COMMAND (and COMMAND INFO), and also COMMAND DOCS,
  show their full name. i.e. CONFIG 
*   GET will be shown as `config|get` rather than just `get`.
  This will be visible both when asking for `COMMAND INFO config` and COMMAND INFO config|get`, but is
  especially important for the later.
  i.e. imagine someone doing `COMMAND INFO slowlog|get config|get` not being able to distinguish between the two
  items in the array response.
2022-01-11 17:16:16 +02:00
..
create-cluster Use utils/create-cluster from any dir (#9766) 2021-11-11 08:33:09 +02:00
graphs/commits-over-time Added Tcl program to show commits graphicaly. 2015-11-20 15:45:25 +01:00
hashtable Limit the main db and expires dictionaries to expand (#7954) 2020-12-06 11:53:04 +02:00
hyperloglog Fix HyperLogLog test script for new redis-rb API. 2018-03-16 16:34:04 +01:00
lru Fixed some typos, add a spell check ci and others minor fix (#8890) 2021-06-10 15:39:33 +03:00
releasetools Fixes to release scripts (#7547) 2020-07-21 14:07:06 +03:00
srandmember Fixed some typos, add a spell check ci and others minor fix (#8890) 2021-06-10 15:39:33 +03:00
build-static-symbols.tcl Tcl script, make target, and redis.c changes to build the static symbol table automagically 2009-11-10 19:20:32 +01:00
cluster_fail_time.tcl Cluster: Tcl script to check avg pfail->fail time. 2015-01-30 12:03:17 +01:00
corrupt_rdb.c fix corrupt_rdb.c bug.Let the name of input rdb file name be valid. 2019-03-01 17:46:42 +01:00
gen-test-certs.sh Typo fix in gen-test-certs.sh (#8841) 2021-04-25 10:11:16 +03:00
generate-command-code.py Command table: Sorted subcommands (#9951) 2021-12-16 12:54:40 +02:00
generate-command-help.rb Adds the "bitmap" category to redis-cli help(#9474) 2021-09-09 10:16:30 +03:00
generate-commands-json.py Move doc metadata from COMMAND to COMMAND DOCS (#10056) 2022-01-11 17:16:16 +02:00
install_server.sh Do not install SysV init-scripts on systemd-enabled hosts 2019-11-19 18:55:44 +02:00
redis_init_script Add INIT INFO to the provided init script. 2018-03-26 11:29:16 +02:00
redis_init_script.tpl Update redis_init_script.tpl 2014-10-26 11:09:45 -07:00
redis-copy.rb Deprecate utils/redis-copy.rb in favor of redis-copy gem 2013-11-06 08:31:57 +00:00
redis-sha1.rb Fixed some typos, add a spell check ci and others minor fix (#8890) 2021-06-10 15:39:33 +03:00
speed-regression.tcl Fixed some typos, add a spell check ci and others minor fix (#8890) 2021-06-10 15:39:33 +03:00
systemd-redis_multiple_servers@.service Provide example systemd service unit files for redis-server 2019-11-19 18:55:44 +02:00
systemd-redis_server.service Start redis after network is online (#7639) 2020-08-11 12:30:32 +03:00
tracking_collisions.c Fixed some typos, add a spell check ci and others minor fix (#8890) 2021-06-10 15:39:33 +03:00
whatisdoing.sh Changes http to https in texts (#8495) 2021-03-10 19:11:16 +02:00