Skip to content

hustfisher/redis

This branch is 11 commits ahead of, 1273 commits behind redis/go-redis:master.

Folders and files

NameName
Last commit message
Last commit date
Apr 10, 2020
Jul 3, 2019
May 26, 2017
Mar 12, 2016
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
May 31, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Sep 11, 2017
Jul 3, 2019
Apr 15, 2020
Jul 3, 2019
Apr 15, 2020
Jul 3, 2019
Oct 7, 2014
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Mar 29, 2019
Aug 15, 2018
Jun 4, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Oct 5, 2018
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Jul 3, 2019
Aug 16, 2018
Jul 3, 2019
Jul 3, 2019
Mar 5, 2018
Jul 3, 2019
Jul 3, 2019
Apr 15, 2020
Jul 3, 2019
Jul 3, 2019
Jun 4, 2019
Jul 3, 2019

Repository files navigation

Redis client for Golang

Build Status GoDoc Airbrake

Supports:

API docs: https://godoc.org/github.com/hustfisher/redis. Examples: https://godoc.org/github.com/hustfisher/redis#pkg-examples.

Installation

Install:

go get -u github.com/hustfisher/redis

Import:

import "github.com/hustfisher/redis"

Quickstart

func ExampleNewClient() {
	client := redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "", // no password set
		DB:       0,  // use default DB
	})

	pong, err := client.Ping().Result()
	fmt.Println(pong, err)
	// Output: PONG <nil>
}

func ExampleClient() {
	err := client.Set("key", "value", 0).Err()
	if err != nil {
		panic(err)
	}

	val, err := client.Get("key").Result()
	if err != nil {
		panic(err)
	}
	fmt.Println("key", val)

	val2, err := client.Get("key2").Result()
	if err == redis.Nil {
		fmt.Println("key2 does not exist")
	} else if err != nil {
		panic(err)
	} else {
		fmt.Println("key2", val2)
	}
	// Output: key value
	// key2 does not exist
}

Howto

Please go through examples to get an idea how to use this package.

Look and feel

Some corner cases:

// SET key value EX 10 NX
set, err := client.SetNX("key", "value", 10*time.Second).Result()

// 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.ZRangeBy{
	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"}, "hello").Result()

// custom command
res, err := client.Do("set", "key", "value")

See also

Packages

No packages published

Languages

  • Go 99.9%
  • Makefile 0.1%