Skip to content
This repository has been archived by the owner on Mar 12, 2024. It is now read-only.

Missing commands #19

Open
vincentjames501 opened this issue May 2, 2020 · 2 comments
Open

Missing commands #19

vincentjames501 opened this issue May 2, 2020 · 2 comments
Assignees

Comments

@vincentjames501
Copy link

Thanks for the awesome library! It's working really well for us. We ping redis occasionally during our routine health check process and noticed the PING command was missing along with a few others. Not sure if all of these make sense to implement, but I pasted below a quick diff of missing ones from Redis' website.

Navigate to https://redis.io/commands, open the inspector and paste:

const subcommandsAvailable = ['ACL', 'CLIENT', 'CLUSTER', 'COMMAND', 'CONFIG', 'DEBUG', 'MEMORY', 'MODULE', 'SCRIPT', 'LATENCY'];
const allCommands = $('span.command').toArray().map(e => e.innerText);
console.log(JSON.stringify(allCommands.map(text => {
  const [cmd, subcommand] = text.split(' ');
   return (subcommandsAvailable.includes(cmd) ? `${cmd}-${subcommand}` : cmd).toLowerCase() 
})));

Then take that output and put into a repl:

(def all-cmds (set (parse-json "<pasted from browser>"))
(def celtuce-cmds (set (map name (keys (ns-publics 'celtuce.commands)))))
(sort (set/difference all-cmds celtuce-cmds))

In my case, the output was:

=>
("acl-cat"
 "acl-deluser"
 "acl-genpass"
 "acl-list"
 "acl-load"
 "acl-log"
 "acl-save"
 "acl-setuser"
 "acl-users"
 "acl-whoami"
 "auth"
 "bitop"
 "bzpopmax"
 "bzpopmin"
 "client-caching"
 "client-getredir"
 "client-id"
 "client-reply"
 "client-tracking"
 "client-unblock"
 "cluster-addslots"
 "cluster-bumpepoch"
 "cluster-count-failure-reports"
 "cluster-countkeysinslot"
 "cluster-delslots"
 "cluster-failover"
 "cluster-flushslots"
 "cluster-forget"
 "cluster-getkeysinslot"
 "cluster-info"
 "cluster-keyslot"
 "cluster-meet"
 "cluster-myid"
 "cluster-nodes"
 "cluster-replicas"
 "cluster-replicate"
 "cluster-reset"
 "cluster-saveconfig"
 "cluster-set-config-epoch"
 "cluster-setslot"
 "cluster-slaves"
 "cluster-slots"
 "command-getkeys"
 "command-undefined"
 "echo"
 "hello"
 "latency-doctor"
 "latency-graph"
 "latency-help"
 "latency-history"
 "latency-latest"
 "latency-reset"
 "lolwut"
 "memory-doctor"
 "memory-help"
 "memory-malloc-stats"
 "memory-purge"
 "memory-stats"
 "memory-usage"
 "module-list"
 "module-load"
 "module-unload"
 "monitor"
 "object"
 "ping"
 "psync"
 "pubsub"
 "quit"
 "readonly"
 "readwrite"
 "replicaof"
 "role"
 "script-debug"
 "script-exists"
 "select"
 "slowlog"
 "stralgo"
 "swapdb"
 "sync"
 "wait"
 "xack"
 "xadd"
 "xclaim"
 "xdel"
 "xgroup"
 "xinfo"
 "xlen"
 "xpending"
 "xrange"
 "xread"
 "xreadgroup"
 "xrevrange"
 "xtrim"
 "zpopmax"
 "zpopmin"
 "zrevrangebylex")
@lerouxrgd
Copy link
Owner

Hi, thank you for your investigations.

I released version v0.3.4 with PING and ECHO support.

However as you said I am not sure it is necessary to implement all the methods you listed. I think I'll add them as users need them, so let me know if you need another unimplemented command. Also, PR are always welcome !

@lerouxrgd lerouxrgd self-assigned this May 12, 2020
@hornadam8
Copy link

support for clusters would definitely be appreciated

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants