A mock of redis


A self indulgent coffeescript mock of redis.

It works for certain things. It should match the success behavior of the node_redis library. Failure behavior may not match, but we try to do something sane.

It's also very incomplete. I've implemented the basic things I need. I will try to add other things as well, but if it's missing things you need, send a PR.

  • expire
  • exists
  • ttl
  • persist
  • set
  • setex
  • setnx
  • get
  • del
  • incr
  • mget
  • mset
  • sadd
  • smembers
  • srem
  • sismember
  • zadd
  • zrange
  • zrevrange
  • zremrangebyscore
  • zrem
  • zremrangebyrank
  • hset
  • hget
  • hgetall
  • hmset
  • flushall
Pub/sub (be sure to check out child nodes)
  • subscribe
  • unsubscribe
  • publish
  • multi
  • exec
  • discard
  • watch
  • unwatch

Multiple instances of Mockis can share the same storage like such:

parent = new Mockis()
child = new Mockis()
child.set "foo""bar"->
  parent.get "foo"(err, result) ->
    result is "bar" # true 

One important note about this is that if the child already has data, it will be lost. There is no merge.

Parents can have arbitrary numbers of children. The whole children of children thing can get wacky. Don't do it.

Contributions are totes welcome. When possible, please submit a PR for each command. This isn't a requirement, but it can streamline reviewing them.

All methods must call callbacks synchronously. Multi requires it.

Please create at least the most basic of tests for any command you add. Also, test only pull requests are greatly appreciated.

Apache 2.0

  • Pat Shields (Adzerk)