Client library for the Redis datastore: supports full command set, pipelining. https://github.com/informatikr/hedis

Version on this page:0.6.5
LTS Haskell 8.12:0.9.8
Stackage Nightly 2017-04-27:0.9.8
Latest on Hackage:0.9.8
BSD3 licensed by Falko Peters
Maintained by Kostiantyn Rybnikov

Module documentation for 0.6.5

There are no documented modules for this package.

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.


# Changelog for Hedis

## 0.9.8

* Fix syntax errors from redis when using scanOpts to specify match
pattern or count options (see PR #88)

## 0.9.7

* Expose returnDecode method of RedisCtx (see issue #83)

## 0.9.2

* Added multithreaded pub/sub message processing (see PR #77)

## 0.9.0

* Merge in a fresh commands.json and a set of new commands
implemented. See PR #52 for more info

## 0.8.3

* Export MonadRedis methods

## 0.8.1

* Export unRedis/reRedis internalish functions which let you define
MonadCatch instance easily (see PR #73)

## 0.8.0

* Major speed improvement by using non-backtracking parser (PR #69)

## 0.7.10

* Improved performance (PR #64)

## 0.7.7

* Close connection handle on error

## 0.7.2

* Improve speed, rewrite internal logic (PR #56)

## 0.7.1

* Add NFData instances

## 0.7.0

* Enforce all replies being recieved in runRedis. Pipelining between runRedis
calls doesn't work now.

## 0.6.10

* Add HyperLogLog support

## 0.6.4

* New connection option to automatically SELECT a database.

## 0.5 -> 0.6

* Changed return type of HDEL from Bool to Integer.
* Some documentation updates.

## 0.5 -> 0.5.1

* Removed the dependency on stm.
* Improved performance of Queued in long transactions.
* Minor documentation updates.

## 0.4.1 -> 0.5

* 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
* 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.

## 0.3.2 -> 0.4.1

* The following commands got a 'Maybe' added to their return type, to
properly handle Redis returning `nil`-replies: `brpoplpush`, `lindex`, `lpop`,
`objectEncoding`, `randomkey`, `rpop`, `rpoplpush`, `spop`, `srandmember`,
`zrank`, `zrevrank`, `zscore`.
* Updated dependencies on `bytestring-lexing` and `stm`.
* Minor improvements and fixes to the documentation.
comments powered byDisqus