SupportedLanguages: Contents
Supported Languages (DRAFT)
TODO
Features Support Matrix
Version 1.1
Version 1.0
Client Libraries Reference
as3 (ActionScript 3)
redis-clojure (Clojure)
CL-Redis (Common Lisp)
erldis (Erlang)
Go-Redis (Go)
haskell-redis (Haskell)
Java
redis-lua (Lua)
Perl
PHP
Python
txredis
redis-rb (Ruby)
scala-redis (Scala)
Tcl

# SupportedLanguages

# Supported Languages (DRAFT)

Wondering if you can use Redis from your favorite language? Well here is the definitive guide to the available client libraries.
This libraries are intended to expose Redis commands, but you also have the option to use some higher level libraries that provide a Object Hash Mappings pretty much the same idea implemented by a classic ORM.

## TODO

- Add http://github.com/madsimian/em-redis
- Add http://github.com/besquared/redis-datastructures
- Add http://github.com/sma/redis-node-client

## Features Support Matrix

The following matrix should give you a quick overviwe of the state of the different client libraries existing for each supported language.
The core command set is the one of Version 1.0, while Sharding and Pipelining are convenient client side features not tied to any Redis server version.

### Version 1.1

Compatible client libraries are expected to implement the command sets specified in Version 1.0 plus:

- String: MSET, MSETNX.
- List: RPOPLPUSH.
- Sorted Set (ZSET): ZADD, ZREM, ZRANGE, ZREVRANGE, ZRANGEBYSCORE, ZCARD, ZSCORE.

### Version 1.0

Compatible client libraries are expected to implement the following command sets:

- String: GET, SET, SETNX, DEL, EXISTS, INCR, DECR, MGET, INCRBY, DECRBY, GETSET, TYPE.
- List: RPUSH, LPUSH, RPOP, LPOP, LLEN, LINDEX, LSET, LRANGE, LTRIM, LREM.
- Set: SADD, SREM, SMOVE, SISMEMBER, SCARD, SPOP, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SMEMBERS.
- Keyspace: KEYS, RANDOMKEY, RENAME, RENAMENX, DBSIZE, EXPIRE, TTL.
- Databases: SELECT, MOVE, FLUSHDB, FLUSHALL.
- Sort: SORT
- Connection: AUTH, QUIT?. ???
- Persistence: SAVE, BGSAVE, LASTSAVE, SHUTDOWN?. ???
- Server: INFO, MONITOR? SLAVEOF? ???

Language | Name | Sharding | Pipelining | 1.1 | 1.0
ActionScript 3 | as3redis | No | Yes | Yes | Yes
Clojure | redis-clojure | No | No | Partial | Yes
Common Lisp | CL-Redis | No | No | No | Yes
Erlang | erldis | No | Looks like | No | Looks like
Go | Go-Redis | No | Yes | Yes | Yes
Haskell | haskell-redis | No | No | No | Yes
Java | JDBC-Redis | No | No | No | Yes
Java | JRedis | No | Yes | Yes | Yes
Java | Jedis | No | Yes | Yes | Yes
LUA | redis-lua | No | No | Yes | Yes
Perl | Redis Client | No | No | No | Yes
Perl | AnyEvent::Redis | No | No | No | Yes
PHP | Redis PHP Bindings | No | No | No | Yes
PHP | phpredis (C) | No | No | No | Yes
PHP | Predis | Yes | Yes | Yes | Yes
PHP | Redisent | Yes | No | No | Yes
Python | Python Client | No | No | No | Yes
Python | py-redis | No | No | Partial | Yes
Python | txredis | No | No | No | Yes
Ruby | redis-rb | Yes | Yes | Yes | Yes
Scala | scala-redis | Yes | No | No | Yes
TCL | TCL | No | No | Yes | Yes

## Client Libraries Reference

### as3 (ActionScript 3)

- An ActionScript 3 (Flash) library for Redis.
- Repository: http://github.com/claus/as3redis
- Author: Claus Wahlers, @cwahlers.

### redis-clojure (Clojure)

- A Clojure client library for the key-value storage system Redis.
- Repository: http://github.com/ragnard/redis-clojure
- Author: Ragnar DahlÃ©n, @ragge.

### CL-Redis (Common Lisp)

- Common Lisp client library for Redis, an advanced key/value store.
- Home Page: http://www.cliki.net/cl-redis
- Author: Mahmud, @BigThingist.

### erldis (Erlang)

- Client protocol for redis key-value store.
- Author: Valentino Volonghi, @dialtone_.
- Repository: http://bitbucket.org/adroll/erldis/

### Go-Redis (Go)

- Client protocol for redis key-value store.
- Author: Joubin Houshyar, @SunOf27.
- Repository: http://github.com/alphazero/Go-Redis

### haskell-redis (Haskell)

- A Haskell binding for the Redis database.
- Author: Alvaro Videla, @old_sound.
- Repository:

### Java

#### JDBC-Redis

- JDBC-Redis is Java driver using the JDBC interface for Redis Database. This project doesn't aim for a complete implementation of the JDBC specification since Redis isn't a relational database, but should provide a familiar interface to Java developers interact with Redis.
- Repository: http://code.google.com/p/jdbc-redis/

#### JRedis

- Java Client and Connectors for Redis JCA compliant. Currently offers a complete functioning Synchronous connector, Asynchronous connection and pipelining support under heavy development.
- Author: Joubin Houshyar, @SunOf27.
- Home: http://code.google.com/p/jredis/
- Repository: http://github.com/alphazero/jredis

#### Jedis

- Jedis is a small and sane Redis client for Java. It aims to be easier to use by providing a more natural API. It currently supports the binary-safe protocol and pipelining. Sharding and connection pooling is on the way.
- Author: Jonathan Leibiusky, @xetorthio.
- Repository: http://github.com/xetorthio/jedis

### redis-lua (Lua)

- A Lua client library for the redis key value storage system.
- Author: Daniele Alessandri, @jol1hahn.
- Repository: http://github.com/nrk/redis-lua

### Perl

#### Perl Client

- Perl binding for Redis database.
- Author: Dobrica Pavlinusic, @dpavlin.
- Repository: http://svn.rot13.org/index.cgi/Redis

#### AnyEvent::Redis

- Non-blocking Redis client.
- Author: Tatsuhiko Miyagawa, @miyagawa.
- Repository: http://github.com/miyagawa/AnyEvent-Redis/

### PHP

#### Redis PHP Bindings

- Simple default binding in Redis main repository. No longer under active development.
- Author: Ludovico Magnocavallo, @ludo.
- Repository: http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/php

#### phpredis

- This extension provides an API for communicating with Redis database, a persistent key-value database with built-in net interface written in ANSI-C for Posix systems.
- Author: Alfonso Jimenez , (@alfonsojimenez), Nicolas Favre-FÃ©lix and Nasreddine Bouafif.
- Repository: http://github.com/owlient/phpredis

#### Predis

- A flexible and feature-complete PHP client library for the Redis key-value database. Predis is currently a work-in-progress and it targets PHP >= 5.3, though it is highly due to be backported to PHP >= 5.2.6 as soon as the public API and the internal design on the main branch will be considered stable enough.
- Author: Daniele Alessandri, @jol1hahn
- Repository: http://github.com/nrk/predis/

#### Redisent

- Redisent is a simple, no-nonsense interface to the Redis key-value store for modest developers. Due to the way it is implemented, it is flexible and tolerant of changes to the Redis protocol.
- Author: Justin Poliey, @justinpoliey
- Repository: http://github.com/jdp/redisent

### Python

#### Python Client

- Simple Python client in Redis main repository. No longer under active development.
- Author: Ludovico Magnocavallo, @ludo.
- Repository: http://code.google.com/p/redis/source/browse/#svn/trunk/client-libraries/python

#### py-redis

- Redis Python Client.
- Author: McCurdy, @andymccurdy.
- Repository: http://github.com/andymccurdy/redis-py

### txredis

- Python/Twisted client for Redis key-value store
- Author: Dorian Raymer, @dio_rian.
- PyPI: http://pypi.python.org/pypi/txredis/0.1.1

### redis-rb (Ruby)

- A Ruby client library for the redis key value storage engine.
- Author: Ezra Zygmuntowicz, @ezmobius.
- Repository: http://github.com/ezmobius/redis-rb

### scala-redis (Scala)

- A scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side.
- Author: Alejandro Crosa, @alejandrocrosa.
- Repository: http://github.com/acrosa/scala-redis

### Tcl

- The official version is included in the Redis tarball since it's maintained by Salvatore.
- Author: Salvatore Sanfilippo, @antirez
- Repository: http://github.com/antirez/redis/blob/master/redis.tcl