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


Version on this page:0.9.8
LTS Haskell 22.29:0.15.2@rev:1
Stackage Nightly 2024-07-18:0.15.2@rev:1
Latest on Hackage:0.15.2@rev:1

See all snapshots hedis appears in

BSD-3-Clause licensed by Falko Peters
Maintained by Kostiantyn Rybnikov
This version can be pinned in stack with:hedis-0.9.8@sha256:22009c53e24fa967d4c1372e28ae9661032bf2660c72b79d05b19204150db2d2,4550

Module documentation for 0.9.8

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:

Compatibility with Latest Stable Redis:
Hedis is intended to be used with the latest stable version of Redis (currently 3.2). Most redis commands (http://redis.io/commands) are available as haskell functions, although MONITOR and SYNC are intentionally omitted. 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.