Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

31 lines (21 sloc) 1.774 kb

An Erlang version of Redis, with the goal of similar algorithmic performance but support for multiple master nodes and larger-than-RAM datasets. For More info, see this PDF of a Talk at Erlang Factory 2012.

Usage

Just run $ make run and open connections with your favourite redis client.

Differences with Redis

Different Behaviour

  • SAVE, BGSAVE and LASTSAVE are database dependent. The original Redis saves all databases at once, edis saves just the one you SELECT'ed.
  • INFO provides much less information and no statistics (so, CONFIG RESETSTAT does nothing at all)
  • MULTI doesn't support:
    • cross-db commands (i.e. FLUSHALL, SELECT, MOVE)
    • non-db commands (i.e AUTH, CONFIG *, SHUTDOWN, MONITOR)
    • pub/sub commands (i.e. PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE)
  • (P)UNSUBSCRIBE commands are not allowed outside PUBSUB mode
  • PUBLISH response is not precise: it's the amount of all clients subscribed to any channel and/or pattern, not just those that will handle the message. On the other hand it runs in O(1) because it's asynchronous, it just dispatches the message.

Missing Features

  • Dynamic node configuration (i.e. the SLAVEOF command is not implemented)
  • Encoding optimization (i.e. all objects are encoded as binary representations of erlang terms, so for instance "123" will never be stored as an int)
  • OBJECT REFCOUNT allways returns 1 for existing keys and (nil) otherwise

Unsupported Commands

SYNC, SLOWLOG, SLAVEOF, DEBUG *

License

edis is licensed by Electronic Inaka, LLC under the Apache 2.0 license; see the LICENSE file in this repository.

Jump to Line
Something went wrong with that request. Please try again.