#compdef keydb-cli
local -a options
options=(
  '-h[Server hostname (default: 127.0.0.1).]: :_hosts'
  '-p[Server port (default: 6379).]'
  '-s[Server socket (overrides hostname and port).]'
  '-a[Password to use when connecting to the server. You can also use the REDISCLI_AUTH environment variable to pass this password more safely (if both are used, this argument takes precedence).]'
  '--user[Used to send ACL style "AUTH username pass". Needs -a.]'
  '--pass[Alias of -a for consistency with the new --user option.]'
  '--askpass[Force user to input password with mask from STDIN. If this argument is used, "-a" and REDISCLI_AUTH environment variable will be ignored.]'
  '-u[Server URI.]'
  '-r[Execute specified command N times.]'
  '-i[When -r is used, waits <interval> seconds per command. It is possible to specify sub-second times like -i 0.1.]'
  '-n[Database number.]'
  '-3[Start session in RESP3 protocol mode.]'
  '-x[Read last argument from STDIN.]'
  '-d[Delimiter between response bulks for raw formatting (default: \n).]'
  '-D[D <delimiter>     Delimiter between responses for raw formatting (default: \n).]'
  '-c[Enable cluster mode (follow -ASK and -MOVED redirections).]'
  '-e[Return exit error code when command execution fails.]'
  '--raw[Use raw formatting for replies (default when STDOUT is not a tty).]'
  '--no-raw[Force formatted output even when STDOUT is not a tty.]'
  '--quoted-input[Force input to be handled as quoted strings.]'
  '--csv[Output in CSV format.]'
  '--show-pushes[Whether to print RESP3 PUSH messages.  Enabled by default when STDOUT is a tty but can be overriden with --show-pushes no.]'
  '--stat[Print rolling stats about server: mem, clients, ...]'
  '--latency[Enter a special mode continuously sampling latency. If you use this mode in an interactive session it runs forever displaying real-time stats. Otherwise if --raw or --csv is specified, or if you redirect the output to a non TTY, it samples the latency for 1 second (you can use -i to change the interval), then produces a single output and exits.]'
  '--latency-history[Like --latency but tracking latency changes over time. Default time interval is 15 sec. Change it using -i.]'
  '--latency-dist[Shows latency as a spectrum, requires xterm 256 colors. Default time interval is 1 sec. Change it using -i.]'
  '--lru-test[Simulate a cache workload with an 80-20 distribution.]'
  '--replica[Simulate a replica showing commands received from the master.]'
  '--rdb[Transfer an RDB dump from remote server to local file.]'
  '--pipe[Transfer raw KeyDB protocol from stdin to server.]'
  '--pipe-timeout[In --pipe mode, abort with error if after sending all data. no reply is received within <n> seconds. Default timeout: 30. Use 0 to wait forever.]'
  '--bigkeys[Sample KeyDB keys looking for keys with many elements (complexity).]'
  '--memkeys[Sample KeyDB keys looking for keys consuming a lot of memory.]'
  '--memkeys-samples[Sample KeyDB keys looking for keys consuming a lot of memory. And define number of key elements to sample]'
  '--hotkeys[Sample KeyDB keys looking for hot keys. only works when maxmemory-policy is *lfu.]'
  '--scan[List all keys using the SCAN command.]'
  '--pattern[Keys pattern when using the --scan, --bigkeys or --hotkeys options (default: *).]'
  '--quoted-pattern[Same as --pattern, but the specified string can be quoted, in order to pass an otherwise non binary-safe string.]'
  '--intrinsic-latency[Run a test to measure intrinsic system latency. The test will run for the specified amount of seconds.]'
  '--eval[Send an EVAL command using the Lua script at <file>.]'
  '--ldb[Used with --eval enable the Redis Lua debugger.]'
  '--ldb-sync-mode[Like --ldb but uses the synchronous Lua debugger, in this mode the server is blocked and script changes are not rolled back from the server memory.]'
  '--cluster[<command> args... opts... Cluster Manager command and arguments (see below).]'
  '--verbose[Verbose mode.]'
  '--no-auth-warning[Dont show warning message when using password on command line interface.]'
  '--help[Output this help and exit.]'
   '--version[Output version and exit.]'
)

_arguments -s $options
