@hackage hedis0.6.2

Client library for the Redis datastore: supports full command set, pipelining.

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.

Changes since version 0.5.1
  • Changed return type of HDEL from Bool to Integer.

  • Some documentation updates.

Changes since version 0.5
  • New commands: DUMP, RESTORE, BITOP, BITCOUNT.

  • Removed the dependency on stm.

  • Improved performance of Queued in long transactions.

  • Minor documentation updates.

Changes since version 0.4.1
  • Added new Redis 2.6 commands, including Lua scripting support.

  • A transaction context is now created by using the multiExec function. The functions multi, exec and discard are no longer available individually.

  • Inside of a transaction, commands return their results wrapped in a composable future, called Queued.

  • The getType command (the Redis TYPE command) now has a custom return type RedisType.

  • Minor improvements and fixes to the documentation.