Redis is an open source, advanced key-value store. It is often referred to
as a data structure server since keys can contain strings, hashes, lists,
sets and sorted sets. This library is a Haskell client for the Redis
datastore. Compared to other Haskell client libraries it has some
advantages:
- Complete Redis 2.6 command set:
- All Redis commands
(http://redis.io/commands) are available as haskell functions, except
for the MONITOR and SYNC commands. Additionally, a low-level API is
exposed that makes it easy for the library user to implement further
commands, such as new commands from an experimental Redis version.
- Automatic Optimal Pipelining:
- Commands are pipelined
(http://redis.io/topics/pipelining) as much as possible without any
work by the user. See
http://informatikr.com/2012/redis-pipelining.html for a
technical explanation of automatic optimal pipelining.
- Enforced Pub/Sub semantics:
- When subscribed to the Redis Pub/Sub server
(http://redis.io/topics/pubsub), clients are not allowed to issue
commands other than subscribing to or unsubscribing from channels. This
library uses the type system to enforce the correct behavior.
- Connect via TCP or Unix Domain Socket:
- TCP sockets are the default way to
connect to a Redis server. For connections to a server on the same
machine, Unix domain sockets offer higher performance than the standard
TCP connection.
For detailed documentation, see the Database.Redis
module.