redis/v2
Vladimir Mihailenco df12cdcfaf v2: fix write deadline. Fixes #28. 2014-05-07 16:03:09 +03:00
..
README.md Tweak readme. 2014-01-09 10:55:23 +02:00
command.go Fix ZRevRangeByScore signature. Fixes #22. 2014-01-09 10:31:43 +02:00
commands.go Fix ZRevRangeByScore signature. Fixes #22. 2014-01-09 10:31:43 +02:00
doc.go Remove examples from godoc. 2013-09-29 11:48:45 +03:00
example_test.go Update README. 2014-01-09 10:43:27 +02:00
export_test.go Make Script and Pipeline interoperable. Fixes #18. 2013-12-30 13:02:14 +02:00
multi.go Refactor reply parser. 2014-01-06 16:06:30 +02:00
parser.go Support SCAN and friends. 2014-01-09 10:17:38 +02:00
pipeline.go Refactor reply parser. 2014-01-06 16:06:30 +02:00
pool.go v2: fix write deadline. Fixes #28. 2014-05-07 16:03:09 +03:00
pubsub.go Refactor reply parser. 2014-01-06 16:06:30 +02:00
redis.go Refactor reply parser. 2014-01-06 16:06:30 +02:00
redis_test.go Fix deadlock when Client is configured with IdleTimeout. Fixes #25. 2014-02-06 15:30:49 +02:00
script.go Make Script and Pipeline interoperable. Fixes #18. 2013-12-30 13:02:14 +02:00

README.md

Redis client for Golang Build Status

Supports:

  • Redis 2.8 commands except QUIT, MONITOR, SLOWLOG and SYNC.
  • Pub/sub.
  • Transactions.
  • Pipelining.
  • Connection pool.
  • TLS connections.
  • Thread safety.
  • Timeouts.

API docs: http://godoc.org/github.com/vmihailenco/redis/v2. Examples: http://godoc.org/github.com/vmihailenco/redis/v2#pkg-examples.

Installation

Install:

go get github.com/vmihailenco/redis/v2

Upgrading from previous version

Type system should catch most changes. But you have to manually change SetEx, PSetEx, Expire and PExpire to use time.Duration instead of int64.

Look and feel

Some corner cases:

SORT list LIMIT 0 2 ASC
vals, err := client.Sort("list", redis.Sort{Offset: 0, Count: 2, Order: "ASC"}).Result()

ZRANGEBYSCORE zset -inf +inf WITHSCORES LIMIT 0 2
vals, err := client.ZRangeByScoreWithScores("zset", redis.ZRangeByScore{
    Min: "-inf",
    Max: "+inf",
    Offset: 0,
    Count: 2,
}).Result()

ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3 AGGREGATE SUM
vals, err := client.ZInterStore("out", redis.ZStore{Weights: []int64{2, 3}}, "zset1", "zset2").Result()

EVAL "return {KEYS[1],ARGV[1]}" 1 "key" "hello"
vals, err := client.Eval("return {KEYS[1],ARGV[1]}", []string{"key"}, []string{"hello"}).Result()