redis/v2
Vladimir Mihailenco 9d23f2cf26 Tweak readme. 2014-01-09 10:55:23 +02: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 Better error message when client is closed. Tests. 2014-01-06 14:31:37 +02: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 ZRevRangeByScore signature. Fixes #22. 2014-01-09 10:31:43 +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()