Documentation ¶
Overview ¶
Package redis implements a Redis client.
Example (CustomCommand) ¶
package main import ( "fmt" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { Get := func(redisdb *redis.Client, key string) *redis.StringCmd { cmd := redis.NewStringCmd("get", key) redisdb.Process(cmd) return cmd } v, err := Get(redisdb, "key_does_not_exist").Result() fmt.Printf("%q %s", v, err) }
Output: "" redis: nil
Example (CustomCommand2) ¶
package main import ( "fmt" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { v, err := redisdb.Do("get", "key_does_not_exist").String() fmt.Printf("%q %s", v, err) }
Output: "" redis: nil
Example (Instrumentation) ¶
package main import ( "fmt" "github.com/go-redis/redis" ) func main() { redisdb := redis.NewClient(&redis.Options{ Addr: ":6379", }) redisdb.WrapProcess(func(old func(cmd redis.Cmder) error) func(cmd redis.Cmder) error { return func(cmd redis.Cmder) error { fmt.Printf("starting processing: <%s>\n", cmd) err := old(cmd) fmt.Printf("finished processing: <%s>\n", cmd) return err } }) redisdb.Ping() }
Output: starting processing: <ping: > finished processing: <ping: PONG>
Index ¶
- Constants
- func SetLogger(logger *log.Logger)
- type BitCount
- type BoolCmd
- type BoolSliceCmd
- type Client
- func (c *Client) Append(key, value string) *IntCmd
- func (c *Client) BLPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *Client) BRPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *Client) BRPopLPush(source, destination string, timeout time.Duration) *StringCmd
- func (c *Client) BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *Client) BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *Client) BgRewriteAOF() *StatusCmd
- func (c *Client) BgSave() *StatusCmd
- func (c *Client) BitCount(key string, bitCount *BitCount) *IntCmd
- func (c *Client) BitOpAnd(destKey string, keys ...string) *IntCmd
- func (c *Client) BitOpNot(destKey string, key string) *IntCmd
- func (c *Client) BitOpOr(destKey string, keys ...string) *IntCmd
- func (c *Client) BitOpXor(destKey string, keys ...string) *IntCmd
- func (c *Client) BitPos(key string, bit int64, pos ...int64) *IntCmd
- func (c *Client) ClientGetName() *StringCmd
- func (c *Client) ClientID() *IntCmd
- func (c *Client) ClientKill(ipPort string) *StatusCmd
- func (c *Client) ClientKillByFilter(keys ...string) *IntCmd
- func (c *Client) ClientList() *StringCmd
- func (c *Client) ClientPause(dur time.Duration) *BoolCmd
- func (c *Client) ClientUnblock(id int64) *IntCmd
- func (c *Client) ClientUnblockWithError(id int64) *IntCmd
- func (c *Client) Close() error
- func (c *Client) ClusterAddSlots(slots ...int) *StatusCmd
- func (c *Client) ClusterAddSlotsRange(min, max int) *StatusCmd
- func (c *Client) ClusterCountFailureReports(nodeID string) *IntCmd
- func (c *Client) ClusterCountKeysInSlot(slot int) *IntCmd
- func (c *Client) ClusterDelSlots(slots ...int) *StatusCmd
- func (c *Client) ClusterDelSlotsRange(min, max int) *StatusCmd
- func (c *Client) ClusterFailover() *StatusCmd
- func (c *Client) ClusterForget(nodeID string) *StatusCmd
- func (c *Client) ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd
- func (c *Client) ClusterInfo() *StringCmd
- func (c *Client) ClusterKeySlot(key string) *IntCmd
- func (c *Client) ClusterMeet(host, port string) *StatusCmd
- func (c *Client) ClusterNodes() *StringCmd
- func (c *Client) ClusterReplicate(nodeID string) *StatusCmd
- func (c *Client) ClusterResetHard() *StatusCmd
- func (c *Client) ClusterResetSoft() *StatusCmd
- func (c *Client) ClusterSaveConfig() *StatusCmd
- func (c *Client) ClusterSlaves(nodeID string) *StringSliceCmd
- func (c *Client) ClusterSlots() *ClusterSlotsCmd
- func (c *Client) Command() *CommandsInfoCmd
- func (c *Client) ConfigGet(parameter string) *SliceCmd
- func (c *Client) ConfigResetStat() *StatusCmd
- func (c *Client) ConfigRewrite() *StatusCmd
- func (c *Client) ConfigSet(parameter, value string) *StatusCmd
- func (c *Client) Context() context.Context
- func (c *Client) DBSize() *IntCmd
- func (c *Client) DbSize() *IntCmd
- func (c *Client) DebugObject(key string) *StringCmd
- func (c *Client) Decr(key string) *IntCmd
- func (c *Client) DecrBy(key string, decrement int64) *IntCmd
- func (c *Client) Del(keys ...string) *IntCmd
- func (c *Client) Do(args ...interface{}) *Cmd
- func (c *Client) Dump(key string) *StringCmd
- func (c *Client) Echo(message interface{}) *StringCmd
- func (c *Client) Eval(script string, keys []string, args ...interface{}) *Cmd
- func (c *Client) EvalSha(sha1 string, keys []string, args ...interface{}) *Cmd
- func (c *Client) Exists(keys ...string) *IntCmd
- func (c *Client) Expire(key string, expiration time.Duration) *BoolCmd
- func (c *Client) ExpireAt(key string, tm time.Time) *BoolCmd
- func (c *Client) FlushAll() *StatusCmd
- func (c *Client) FlushAllAsync() *StatusCmd
- func (c *Client) FlushDB() *StatusCmd
- func (c *Client) FlushDBAsync() *StatusCmd
- func (c *Client) FlushDb() *StatusCmd
- func (c *Client) GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd
- func (c *Client) GeoDist(key string, member1, member2, unit string) *FloatCmd
- func (c *Client) GeoHash(key string, members ...string) *StringSliceCmd
- func (c *Client) GeoPos(key string, members ...string) *GeoPosCmd
- func (c *Client) GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Client) GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Client) GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Client) GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Client) Get(key string) *StringCmd
- func (c *Client) GetBit(key string, offset int64) *IntCmd
- func (c *Client) GetRange(key string, start, end int64) *StringCmd
- func (c *Client) GetSet(key string, value interface{}) *StringCmd
- func (c *Client) HDel(key string, fields ...string) *IntCmd
- func (c *Client) HExists(key, field string) *BoolCmd
- func (c *Client) HGet(key, field string) *StringCmd
- func (c *Client) HGetAll(key string) *StringStringMapCmd
- func (c *Client) HIncrBy(key, field string, incr int64) *IntCmd
- func (c *Client) HIncrByFloat(key, field string, incr float64) *FloatCmd
- func (c *Client) HKeys(key string) *StringSliceCmd
- func (c *Client) HLen(key string) *IntCmd
- func (c *Client) HMGet(key string, fields ...string) *SliceCmd
- func (c *Client) HMSet(key string, fields map[string]interface{}) *StatusCmd
- func (c *Client) HScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Client) HSet(key, field string, value interface{}) *BoolCmd
- func (c *Client) HSetNX(key, field string, value interface{}) *BoolCmd
- func (c *Client) HVals(key string) *StringSliceCmd
- func (c *Client) Incr(key string) *IntCmd
- func (c *Client) IncrBy(key string, value int64) *IntCmd
- func (c *Client) IncrByFloat(key string, value float64) *FloatCmd
- func (c *Client) Info(section ...string) *StringCmd
- func (c *Client) Keys(pattern string) *StringSliceCmd
- func (c *Client) LIndex(key string, index int64) *StringCmd
- func (c *Client) LInsert(key, op string, pivot, value interface{}) *IntCmd
- func (c *Client) LInsertAfter(key string, pivot, value interface{}) *IntCmd
- func (c *Client) LInsertBefore(key string, pivot, value interface{}) *IntCmd
- func (c *Client) LLen(key string) *IntCmd
- func (c *Client) LPop(key string) *StringCmd
- func (c *Client) LPush(key string, values ...interface{}) *IntCmd
- func (c *Client) LPushX(key string, value interface{}) *IntCmd
- func (c *Client) LRange(key string, start, stop int64) *StringSliceCmd
- func (c *Client) LRem(key string, count int64, value interface{}) *IntCmd
- func (c *Client) LSet(key string, index int64, value interface{}) *StatusCmd
- func (c *Client) LTrim(key string, start, stop int64) *StatusCmd
- func (c *Client) LastSave() *IntCmd
- func (c *Client) MGet(keys ...string) *SliceCmd
- func (c *Client) MSet(pairs ...interface{}) *StatusCmd
- func (c *Client) MSetNX(pairs ...interface{}) *BoolCmd
- func (c *Client) MemoryUsage(key string, samples ...int) *IntCmd
- func (c *Client) Migrate(host, port, key string, db int64, timeout time.Duration) *StatusCmd
- func (c *Client) Move(key string, db int64) *BoolCmd
- func (c *Client) ObjectEncoding(key string) *StringCmd
- func (c *Client) ObjectIdleTime(key string) *DurationCmd
- func (c *Client) ObjectRefCount(key string) *IntCmd
- func (c *Client) Options() *Options
- func (c *Client) PExpire(key string, expiration time.Duration) *BoolCmd
- func (c *Client) PExpireAt(key string, tm time.Time) *BoolCmd
- func (c *Client) PFAdd(key string, els ...interface{}) *IntCmd
- func (c *Client) PFCount(keys ...string) *IntCmd
- func (c *Client) PFMerge(dest string, keys ...string) *StatusCmd
- func (c *Client) PSubscribe(channels ...string) *PubSub
- func (c *Client) PTTL(key string) *DurationCmd
- func (c *Client) Persist(key string) *BoolCmd
- func (c *Client) Ping() *StatusCmd
- func (c *Client) Pipeline() Pipeliner
- func (c *Client) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Client) PoolStats() *PoolStats
- func (c *Client) Process(cmd Cmder) error
- func (c *Client) PubSubChannels(pattern string) *StringSliceCmd
- func (c *Client) PubSubNumPat() *IntCmd
- func (c *Client) PubSubNumSub(channels ...string) *StringIntMapCmd
- func (c *Client) Publish(channel string, message interface{}) *IntCmd
- func (c *Client) Quit() *StatusCmd
- func (c *Client) RPop(key string) *StringCmd
- func (c *Client) RPopLPush(source, destination string) *StringCmd
- func (c *Client) RPush(key string, values ...interface{}) *IntCmd
- func (c *Client) RPushX(key string, value interface{}) *IntCmd
- func (c *Client) RandomKey() *StringCmd
- func (c *Client) ReadOnly() *StatusCmd
- func (c *Client) ReadWrite() *StatusCmd
- func (c *Client) Rename(key, newkey string) *StatusCmd
- func (c *Client) RenameNX(key, newkey string) *BoolCmd
- func (c *Client) Restore(key string, ttl time.Duration, value string) *StatusCmd
- func (c *Client) RestoreReplace(key string, ttl time.Duration, value string) *StatusCmd
- func (c *Client) SAdd(key string, members ...interface{}) *IntCmd
- func (c *Client) SCard(key string) *IntCmd
- func (c *Client) SDiff(keys ...string) *StringSliceCmd
- func (c *Client) SDiffStore(destination string, keys ...string) *IntCmd
- func (c *Client) SInter(keys ...string) *StringSliceCmd
- func (c *Client) SInterStore(destination string, keys ...string) *IntCmd
- func (c *Client) SIsMember(key string, member interface{}) *BoolCmd
- func (c *Client) SMembers(key string) *StringSliceCmd
- func (c *Client) SMembersMap(key string) *StringStructMapCmd
- func (c *Client) SMove(source, destination string, member interface{}) *BoolCmd
- func (c *Client) SPop(key string) *StringCmd
- func (c *Client) SPopN(key string, count int64) *StringSliceCmd
- func (c *Client) SRandMember(key string) *StringCmd
- func (c *Client) SRandMemberN(key string, count int64) *StringSliceCmd
- func (c *Client) SRem(key string, members ...interface{}) *IntCmd
- func (c *Client) SScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Client) SUnion(keys ...string) *StringSliceCmd
- func (c *Client) SUnionStore(destination string, keys ...string) *IntCmd
- func (c *Client) Save() *StatusCmd
- func (c *Client) Scan(cursor uint64, match string, count int64) *ScanCmd
- func (c *Client) ScriptExists(hashes ...string) *BoolSliceCmd
- func (c *Client) ScriptFlush() *StatusCmd
- func (c *Client) ScriptKill() *StatusCmd
- func (c *Client) ScriptLoad(script string) *StringCmd
- func (c *Client) Set(key string, value interface{}, expiration time.Duration) *StatusCmd
- func (c *Client) SetBit(key string, offset int64, value int) *IntCmd
- func (c *Client) SetLimiter(l Limiter) *Client
- func (c *Client) SetNX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *Client) SetRange(key string, offset int64, value string) *IntCmd
- func (c *Client) SetXX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *Client) Shutdown() *StatusCmd
- func (c *Client) ShutdownNoSave() *StatusCmd
- func (c *Client) ShutdownSave() *StatusCmd
- func (c *Client) SlaveOf(host, port string) *StatusCmd
- func (c *Client) SlowLog()
- func (c *Client) Sort(key string, sort *Sort) *StringSliceCmd
- func (c *Client) SortInterfaces(key string, sort *Sort) *SliceCmd
- func (c *Client) SortStore(key, store string, sort *Sort) *IntCmd
- func (c *Client) StrLen(key string) *IntCmd
- func (c *Client) String() string
- func (c *Client) Subscribe(channels ...string) *PubSub
- func (c *Client) Sync()
- func (c *Client) TTL(key string) *DurationCmd
- func (c *Client) Time() *TimeCmd
- func (c *Client) Touch(keys ...string) *IntCmd
- func (c *Client) TxPipeline() Pipeliner
- func (c *Client) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Client) Type(key string) *StatusCmd
- func (c *Client) Unlink(keys ...string) *IntCmd
- func (c *Client) Wait(numSlaves int, timeout time.Duration) *IntCmd
- func (c *Client) Watch(fn func(*Tx) error, keys ...string) error
- func (c *Client) WithContext(ctx context.Context) *Client
- func (c *Client) WrapProcess(fn func(oldProcess func(cmd Cmder) error) func(cmd Cmder) error)
- func (c *Client) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- func (c *Client) XAck(stream, group string, ids ...string) *IntCmd
- func (c *Client) XAdd(a *XAddArgs) *StringCmd
- func (c *Client) XClaim(a *XClaimArgs) *XMessageSliceCmd
- func (c *Client) XClaimJustID(a *XClaimArgs) *StringSliceCmd
- func (c *Client) XDel(stream string, ids ...string) *IntCmd
- func (c *Client) XGroupCreate(stream, group, start string) *StatusCmd
- func (c *Client) XGroupCreateMkStream(stream, group, start string) *StatusCmd
- func (c *Client) XGroupDelConsumer(stream, group, consumer string) *IntCmd
- func (c *Client) XGroupDestroy(stream, group string) *IntCmd
- func (c *Client) XGroupSetID(stream, group, start string) *StatusCmd
- func (c *Client) XLen(stream string) *IntCmd
- func (c *Client) XPending(stream, group string) *XPendingCmd
- func (c *Client) XPendingExt(a *XPendingExtArgs) *XPendingExtCmd
- func (c *Client) XRange(stream, start, stop string) *XMessageSliceCmd
- func (c *Client) XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *Client) XRead(a *XReadArgs) *XStreamSliceCmd
- func (c *Client) XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd
- func (c *Client) XReadStreams(streams ...string) *XStreamSliceCmd
- func (c *Client) XRevRange(stream, start, stop string) *XMessageSliceCmd
- func (c *Client) XRevRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *Client) XTrim(key string, maxLen int64) *IntCmd
- func (c *Client) XTrimApprox(key string, maxLen int64) *IntCmd
- func (c *Client) ZAdd(key string, members ...Z) *IntCmd
- func (c *Client) ZAddCh(key string, members ...Z) *IntCmd
- func (c *Client) ZAddNX(key string, members ...Z) *IntCmd
- func (c *Client) ZAddNXCh(key string, members ...Z) *IntCmd
- func (c *Client) ZAddXX(key string, members ...Z) *IntCmd
- func (c *Client) ZAddXXCh(key string, members ...Z) *IntCmd
- func (c *Client) ZCard(key string) *IntCmd
- func (c *Client) ZCount(key, min, max string) *IntCmd
- func (c *Client) ZIncr(key string, member Z) *FloatCmd
- func (c *Client) ZIncrBy(key string, increment float64, member string) *FloatCmd
- func (c *Client) ZIncrNX(key string, member Z) *FloatCmd
- func (c *Client) ZIncrXX(key string, member Z) *FloatCmd
- func (c *Client) ZInterStore(destination string, store ZStore, keys ...string) *IntCmd
- func (c *Client) ZLexCount(key, min, max string) *IntCmd
- func (c *Client) ZPopMax(key string, count ...int64) *ZSliceCmd
- func (c *Client) ZPopMin(key string, count ...int64) *ZSliceCmd
- func (c *Client) ZRange(key string, start, stop int64) *StringSliceCmd
- func (c *Client) ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Client) ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Client) ZRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *Client) ZRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *Client) ZRank(key, member string) *IntCmd
- func (c *Client) ZRem(key string, members ...interface{}) *IntCmd
- func (c *Client) ZRemRangeByLex(key, min, max string) *IntCmd
- func (c *Client) ZRemRangeByRank(key string, start, stop int64) *IntCmd
- func (c *Client) ZRemRangeByScore(key, min, max string) *IntCmd
- func (c *Client) ZRevRange(key string, start, stop int64) *StringSliceCmd
- func (c *Client) ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Client) ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Client) ZRevRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *Client) ZRevRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *Client) ZRevRank(key, member string) *IntCmd
- func (c *Client) ZScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Client) ZScore(key, member string) *FloatCmd
- func (c *Client) ZUnionStore(dest string, store ZStore, keys ...string) *IntCmd
- type ClusterClient
- func (c *ClusterClient) Append(key, value string) *IntCmd
- func (c *ClusterClient) BLPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *ClusterClient) BRPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *ClusterClient) BRPopLPush(source, destination string, timeout time.Duration) *StringCmd
- func (c *ClusterClient) BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *ClusterClient) BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *ClusterClient) BgRewriteAOF() *StatusCmd
- func (c *ClusterClient) BgSave() *StatusCmd
- func (c *ClusterClient) BitCount(key string, bitCount *BitCount) *IntCmd
- func (c *ClusterClient) BitOpAnd(destKey string, keys ...string) *IntCmd
- func (c *ClusterClient) BitOpNot(destKey string, key string) *IntCmd
- func (c *ClusterClient) BitOpOr(destKey string, keys ...string) *IntCmd
- func (c *ClusterClient) BitOpXor(destKey string, keys ...string) *IntCmd
- func (c *ClusterClient) BitPos(key string, bit int64, pos ...int64) *IntCmd
- func (c *ClusterClient) ClientGetName() *StringCmd
- func (c *ClusterClient) ClientID() *IntCmd
- func (c *ClusterClient) ClientKill(ipPort string) *StatusCmd
- func (c *ClusterClient) ClientKillByFilter(keys ...string) *IntCmd
- func (c *ClusterClient) ClientList() *StringCmd
- func (c *ClusterClient) ClientPause(dur time.Duration) *BoolCmd
- func (c *ClusterClient) ClientUnblock(id int64) *IntCmd
- func (c *ClusterClient) ClientUnblockWithError(id int64) *IntCmd
- func (c *ClusterClient) Close() error
- func (c *ClusterClient) ClusterAddSlots(slots ...int) *StatusCmd
- func (c *ClusterClient) ClusterAddSlotsRange(min, max int) *StatusCmd
- func (c *ClusterClient) ClusterCountFailureReports(nodeID string) *IntCmd
- func (c *ClusterClient) ClusterCountKeysInSlot(slot int) *IntCmd
- func (c *ClusterClient) ClusterDelSlots(slots ...int) *StatusCmd
- func (c *ClusterClient) ClusterDelSlotsRange(min, max int) *StatusCmd
- func (c *ClusterClient) ClusterFailover() *StatusCmd
- func (c *ClusterClient) ClusterForget(nodeID string) *StatusCmd
- func (c *ClusterClient) ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd
- func (c *ClusterClient) ClusterInfo() *StringCmd
- func (c *ClusterClient) ClusterKeySlot(key string) *IntCmd
- func (c *ClusterClient) ClusterMeet(host, port string) *StatusCmd
- func (c *ClusterClient) ClusterNodes() *StringCmd
- func (c *ClusterClient) ClusterReplicate(nodeID string) *StatusCmd
- func (c *ClusterClient) ClusterResetHard() *StatusCmd
- func (c *ClusterClient) ClusterResetSoft() *StatusCmd
- func (c *ClusterClient) ClusterSaveConfig() *StatusCmd
- func (c *ClusterClient) ClusterSlaves(nodeID string) *StringSliceCmd
- func (c *ClusterClient) ClusterSlots() *ClusterSlotsCmd
- func (c *ClusterClient) Command() *CommandsInfoCmd
- func (c *ClusterClient) ConfigGet(parameter string) *SliceCmd
- func (c *ClusterClient) ConfigResetStat() *StatusCmd
- func (c *ClusterClient) ConfigRewrite() *StatusCmd
- func (c *ClusterClient) ConfigSet(parameter, value string) *StatusCmd
- func (c *ClusterClient) Context() context.Context
- func (c *ClusterClient) DBSize() *IntCmd
- func (c *ClusterClient) DbSize() *IntCmd
- func (c *ClusterClient) DebugObject(key string) *StringCmd
- func (c *ClusterClient) Decr(key string) *IntCmd
- func (c *ClusterClient) DecrBy(key string, decrement int64) *IntCmd
- func (c *ClusterClient) Del(keys ...string) *IntCmd
- func (c *ClusterClient) Do(args ...interface{}) *Cmd
- func (c *ClusterClient) Dump(key string) *StringCmd
- func (c *ClusterClient) Echo(message interface{}) *StringCmd
- func (c *ClusterClient) Eval(script string, keys []string, args ...interface{}) *Cmd
- func (c *ClusterClient) EvalSha(sha1 string, keys []string, args ...interface{}) *Cmd
- func (c *ClusterClient) Exists(keys ...string) *IntCmd
- func (c *ClusterClient) Expire(key string, expiration time.Duration) *BoolCmd
- func (c *ClusterClient) ExpireAt(key string, tm time.Time) *BoolCmd
- func (c *ClusterClient) FlushAll() *StatusCmd
- func (c *ClusterClient) FlushAllAsync() *StatusCmd
- func (c *ClusterClient) FlushDB() *StatusCmd
- func (c *ClusterClient) FlushDBAsync() *StatusCmd
- func (c *ClusterClient) FlushDb() *StatusCmd
- func (c *ClusterClient) ForEachMaster(fn func(client *Client) error) error
- func (c *ClusterClient) ForEachNode(fn func(client *Client) error) error
- func (c *ClusterClient) ForEachSlave(fn func(client *Client) error) error
- func (c *ClusterClient) GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd
- func (c *ClusterClient) GeoDist(key string, member1, member2, unit string) *FloatCmd
- func (c *ClusterClient) GeoHash(key string, members ...string) *StringSliceCmd
- func (c *ClusterClient) GeoPos(key string, members ...string) *GeoPosCmd
- func (c *ClusterClient) GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *ClusterClient) GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *ClusterClient) GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *ClusterClient) GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *ClusterClient) Get(key string) *StringCmd
- func (c *ClusterClient) GetBit(key string, offset int64) *IntCmd
- func (c *ClusterClient) GetRange(key string, start, end int64) *StringCmd
- func (c *ClusterClient) GetSet(key string, value interface{}) *StringCmd
- func (c *ClusterClient) HDel(key string, fields ...string) *IntCmd
- func (c *ClusterClient) HExists(key, field string) *BoolCmd
- func (c *ClusterClient) HGet(key, field string) *StringCmd
- func (c *ClusterClient) HGetAll(key string) *StringStringMapCmd
- func (c *ClusterClient) HIncrBy(key, field string, incr int64) *IntCmd
- func (c *ClusterClient) HIncrByFloat(key, field string, incr float64) *FloatCmd
- func (c *ClusterClient) HKeys(key string) *StringSliceCmd
- func (c *ClusterClient) HLen(key string) *IntCmd
- func (c *ClusterClient) HMGet(key string, fields ...string) *SliceCmd
- func (c *ClusterClient) HMSet(key string, fields map[string]interface{}) *StatusCmd
- func (c *ClusterClient) HScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *ClusterClient) HSet(key, field string, value interface{}) *BoolCmd
- func (c *ClusterClient) HSetNX(key, field string, value interface{}) *BoolCmd
- func (c *ClusterClient) HVals(key string) *StringSliceCmd
- func (c *ClusterClient) Incr(key string) *IntCmd
- func (c *ClusterClient) IncrBy(key string, value int64) *IntCmd
- func (c *ClusterClient) IncrByFloat(key string, value float64) *FloatCmd
- func (c *ClusterClient) Info(section ...string) *StringCmd
- func (c *ClusterClient) Keys(pattern string) *StringSliceCmd
- func (c *ClusterClient) LIndex(key string, index int64) *StringCmd
- func (c *ClusterClient) LInsert(key, op string, pivot, value interface{}) *IntCmd
- func (c *ClusterClient) LInsertAfter(key string, pivot, value interface{}) *IntCmd
- func (c *ClusterClient) LInsertBefore(key string, pivot, value interface{}) *IntCmd
- func (c *ClusterClient) LLen(key string) *IntCmd
- func (c *ClusterClient) LPop(key string) *StringCmd
- func (c *ClusterClient) LPush(key string, values ...interface{}) *IntCmd
- func (c *ClusterClient) LPushX(key string, value interface{}) *IntCmd
- func (c *ClusterClient) LRange(key string, start, stop int64) *StringSliceCmd
- func (c *ClusterClient) LRem(key string, count int64, value interface{}) *IntCmd
- func (c *ClusterClient) LSet(key string, index int64, value interface{}) *StatusCmd
- func (c *ClusterClient) LTrim(key string, start, stop int64) *StatusCmd
- func (c *ClusterClient) LastSave() *IntCmd
- func (c *ClusterClient) MGet(keys ...string) *SliceCmd
- func (c *ClusterClient) MSet(pairs ...interface{}) *StatusCmd
- func (c *ClusterClient) MSetNX(pairs ...interface{}) *BoolCmd
- func (c *ClusterClient) MemoryUsage(key string, samples ...int) *IntCmd
- func (c *ClusterClient) Migrate(host, port, key string, db int64, timeout time.Duration) *StatusCmd
- func (c *ClusterClient) Move(key string, db int64) *BoolCmd
- func (c *ClusterClient) ObjectEncoding(key string) *StringCmd
- func (c *ClusterClient) ObjectIdleTime(key string) *DurationCmd
- func (c *ClusterClient) ObjectRefCount(key string) *IntCmd
- func (c *ClusterClient) Options() *ClusterOptions
- func (c *ClusterClient) PExpire(key string, expiration time.Duration) *BoolCmd
- func (c *ClusterClient) PExpireAt(key string, tm time.Time) *BoolCmd
- func (c *ClusterClient) PFAdd(key string, els ...interface{}) *IntCmd
- func (c *ClusterClient) PFCount(keys ...string) *IntCmd
- func (c *ClusterClient) PFMerge(dest string, keys ...string) *StatusCmd
- func (c *ClusterClient) PSubscribe(channels ...string) *PubSub
- func (c *ClusterClient) PTTL(key string) *DurationCmd
- func (c *ClusterClient) Persist(key string) *BoolCmd
- func (c *ClusterClient) Ping() *StatusCmd
- func (c *ClusterClient) Pipeline() Pipeliner
- func (c *ClusterClient) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *ClusterClient) PoolStats() *PoolStats
- func (c *ClusterClient) Process(cmd Cmder) error
- func (c *ClusterClient) PubSubChannels(pattern string) *StringSliceCmd
- func (c *ClusterClient) PubSubNumPat() *IntCmd
- func (c *ClusterClient) PubSubNumSub(channels ...string) *StringIntMapCmd
- func (c *ClusterClient) Publish(channel string, message interface{}) *IntCmd
- func (c *ClusterClient) Quit() *StatusCmd
- func (c *ClusterClient) RPop(key string) *StringCmd
- func (c *ClusterClient) RPopLPush(source, destination string) *StringCmd
- func (c *ClusterClient) RPush(key string, values ...interface{}) *IntCmd
- func (c *ClusterClient) RPushX(key string, value interface{}) *IntCmd
- func (c *ClusterClient) RandomKey() *StringCmd
- func (c *ClusterClient) ReadOnly() *StatusCmd
- func (c *ClusterClient) ReadWrite() *StatusCmd
- func (c *ClusterClient) ReloadState() error
- func (c *ClusterClient) Rename(key, newkey string) *StatusCmd
- func (c *ClusterClient) RenameNX(key, newkey string) *BoolCmd
- func (c *ClusterClient) Restore(key string, ttl time.Duration, value string) *StatusCmd
- func (c *ClusterClient) RestoreReplace(key string, ttl time.Duration, value string) *StatusCmd
- func (c *ClusterClient) SAdd(key string, members ...interface{}) *IntCmd
- func (c *ClusterClient) SCard(key string) *IntCmd
- func (c *ClusterClient) SDiff(keys ...string) *StringSliceCmd
- func (c *ClusterClient) SDiffStore(destination string, keys ...string) *IntCmd
- func (c *ClusterClient) SInter(keys ...string) *StringSliceCmd
- func (c *ClusterClient) SInterStore(destination string, keys ...string) *IntCmd
- func (c *ClusterClient) SIsMember(key string, member interface{}) *BoolCmd
- func (c *ClusterClient) SMembers(key string) *StringSliceCmd
- func (c *ClusterClient) SMembersMap(key string) *StringStructMapCmd
- func (c *ClusterClient) SMove(source, destination string, member interface{}) *BoolCmd
- func (c *ClusterClient) SPop(key string) *StringCmd
- func (c *ClusterClient) SPopN(key string, count int64) *StringSliceCmd
- func (c *ClusterClient) SRandMember(key string) *StringCmd
- func (c *ClusterClient) SRandMemberN(key string, count int64) *StringSliceCmd
- func (c *ClusterClient) SRem(key string, members ...interface{}) *IntCmd
- func (c *ClusterClient) SScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *ClusterClient) SUnion(keys ...string) *StringSliceCmd
- func (c *ClusterClient) SUnionStore(destination string, keys ...string) *IntCmd
- func (c *ClusterClient) Save() *StatusCmd
- func (c *ClusterClient) Scan(cursor uint64, match string, count int64) *ScanCmd
- func (c *ClusterClient) ScriptExists(hashes ...string) *BoolSliceCmd
- func (c *ClusterClient) ScriptFlush() *StatusCmd
- func (c *ClusterClient) ScriptKill() *StatusCmd
- func (c *ClusterClient) ScriptLoad(script string) *StringCmd
- func (c *ClusterClient) Set(key string, value interface{}, expiration time.Duration) *StatusCmd
- func (c *ClusterClient) SetBit(key string, offset int64, value int) *IntCmd
- func (c *ClusterClient) SetNX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *ClusterClient) SetRange(key string, offset int64, value string) *IntCmd
- func (c *ClusterClient) SetXX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *ClusterClient) Shutdown() *StatusCmd
- func (c *ClusterClient) ShutdownNoSave() *StatusCmd
- func (c *ClusterClient) ShutdownSave() *StatusCmd
- func (c *ClusterClient) SlaveOf(host, port string) *StatusCmd
- func (c *ClusterClient) SlowLog()
- func (c *ClusterClient) Sort(key string, sort *Sort) *StringSliceCmd
- func (c *ClusterClient) SortInterfaces(key string, sort *Sort) *SliceCmd
- func (c *ClusterClient) SortStore(key, store string, sort *Sort) *IntCmd
- func (c *ClusterClient) StrLen(key string) *IntCmd
- func (c *ClusterClient) Subscribe(channels ...string) *PubSub
- func (c *ClusterClient) Sync()
- func (c *ClusterClient) TTL(key string) *DurationCmd
- func (c *ClusterClient) Time() *TimeCmd
- func (c *ClusterClient) Touch(keys ...string) *IntCmd
- func (c *ClusterClient) TxPipeline() Pipeliner
- func (c *ClusterClient) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *ClusterClient) Type(key string) *StatusCmd
- func (c *ClusterClient) Unlink(keys ...string) *IntCmd
- func (c *ClusterClient) Wait(numSlaves int, timeout time.Duration) *IntCmd
- func (c *ClusterClient) Watch(fn func(*Tx) error, keys ...string) error
- func (c *ClusterClient) WithContext(ctx context.Context) *ClusterClient
- func (c *ClusterClient) WrapProcess(fn func(oldProcess func(Cmder) error) func(Cmder) error)
- func (c *ClusterClient) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- func (c *ClusterClient) XAck(stream, group string, ids ...string) *IntCmd
- func (c *ClusterClient) XAdd(a *XAddArgs) *StringCmd
- func (c *ClusterClient) XClaim(a *XClaimArgs) *XMessageSliceCmd
- func (c *ClusterClient) XClaimJustID(a *XClaimArgs) *StringSliceCmd
- func (c *ClusterClient) XDel(stream string, ids ...string) *IntCmd
- func (c *ClusterClient) XGroupCreate(stream, group, start string) *StatusCmd
- func (c *ClusterClient) XGroupCreateMkStream(stream, group, start string) *StatusCmd
- func (c *ClusterClient) XGroupDelConsumer(stream, group, consumer string) *IntCmd
- func (c *ClusterClient) XGroupDestroy(stream, group string) *IntCmd
- func (c *ClusterClient) XGroupSetID(stream, group, start string) *StatusCmd
- func (c *ClusterClient) XLen(stream string) *IntCmd
- func (c *ClusterClient) XPending(stream, group string) *XPendingCmd
- func (c *ClusterClient) XPendingExt(a *XPendingExtArgs) *XPendingExtCmd
- func (c *ClusterClient) XRange(stream, start, stop string) *XMessageSliceCmd
- func (c *ClusterClient) XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *ClusterClient) XRead(a *XReadArgs) *XStreamSliceCmd
- func (c *ClusterClient) XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd
- func (c *ClusterClient) XReadStreams(streams ...string) *XStreamSliceCmd
- func (c *ClusterClient) XRevRange(stream, start, stop string) *XMessageSliceCmd
- func (c *ClusterClient) XRevRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *ClusterClient) XTrim(key string, maxLen int64) *IntCmd
- func (c *ClusterClient) XTrimApprox(key string, maxLen int64) *IntCmd
- func (c *ClusterClient) ZAdd(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZAddCh(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZAddNX(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZAddNXCh(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZAddXX(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZAddXXCh(key string, members ...Z) *IntCmd
- func (c *ClusterClient) ZCard(key string) *IntCmd
- func (c *ClusterClient) ZCount(key, min, max string) *IntCmd
- func (c *ClusterClient) ZIncr(key string, member Z) *FloatCmd
- func (c *ClusterClient) ZIncrBy(key string, increment float64, member string) *FloatCmd
- func (c *ClusterClient) ZIncrNX(key string, member Z) *FloatCmd
- func (c *ClusterClient) ZIncrXX(key string, member Z) *FloatCmd
- func (c *ClusterClient) ZInterStore(destination string, store ZStore, keys ...string) *IntCmd
- func (c *ClusterClient) ZLexCount(key, min, max string) *IntCmd
- func (c *ClusterClient) ZPopMax(key string, count ...int64) *ZSliceCmd
- func (c *ClusterClient) ZPopMin(key string, count ...int64) *ZSliceCmd
- func (c *ClusterClient) ZRange(key string, start, stop int64) *StringSliceCmd
- func (c *ClusterClient) ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *ClusterClient) ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *ClusterClient) ZRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *ClusterClient) ZRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *ClusterClient) ZRank(key, member string) *IntCmd
- func (c *ClusterClient) ZRem(key string, members ...interface{}) *IntCmd
- func (c *ClusterClient) ZRemRangeByLex(key, min, max string) *IntCmd
- func (c *ClusterClient) ZRemRangeByRank(key string, start, stop int64) *IntCmd
- func (c *ClusterClient) ZRemRangeByScore(key, min, max string) *IntCmd
- func (c *ClusterClient) ZRevRange(key string, start, stop int64) *StringSliceCmd
- func (c *ClusterClient) ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *ClusterClient) ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *ClusterClient) ZRevRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *ClusterClient) ZRevRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *ClusterClient) ZRevRank(key, member string) *IntCmd
- func (c *ClusterClient) ZScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *ClusterClient) ZScore(key, member string) *FloatCmd
- func (c *ClusterClient) ZUnionStore(dest string, store ZStore, keys ...string) *IntCmd
- type ClusterNode
- type ClusterOptions
- type ClusterSlot
- type ClusterSlotsCmd
- type Cmd
- func (cmd *Cmd) Args() []interface{}
- func (cmd *Cmd) Bool() (bool, error)
- func (cmd *Cmd) Err() error
- func (cmd *Cmd) Float32() (float32, error)
- func (cmd *Cmd) Float64() (float64, error)
- func (cmd *Cmd) Int() (int, error)
- func (cmd *Cmd) Int64() (int64, error)
- func (cmd *Cmd) Name() string
- func (cmd *Cmd) Result() (interface{}, error)
- func (cmd *Cmd) String() (string, error)
- func (cmd *Cmd) Uint64() (uint64, error)
- func (cmd *Cmd) Val() interface{}
- type Cmdable
- type Cmder
- type CommandInfo
- type CommandsInfoCmd
- func (cmd *CommandsInfoCmd) Args() []interface{}
- func (cmd *CommandsInfoCmd) Err() error
- func (cmd *CommandsInfoCmd) Name() string
- func (cmd *CommandsInfoCmd) Result() (map[string]*CommandInfo, error)
- func (cmd *CommandsInfoCmd) String() string
- func (cmd *CommandsInfoCmd) Val() map[string]*CommandInfo
- type Conn
- func (c *Conn) Auth(password string) *StatusCmd
- func (c *Conn) ClientSetName(name string) *BoolCmd
- func (c *Conn) Close() error
- func (c *Conn) Do(args ...interface{}) *Cmd
- func (c *Conn) Pipeline() Pipeliner
- func (c *Conn) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Conn) Process(cmd Cmder) error
- func (c *Conn) Select(index int) *StatusCmd
- func (c *Conn) String() string
- func (c *Conn) SwapDB(index1, index2 int) *StatusCmd
- func (c *Conn) TxPipeline() Pipeliner
- func (c *Conn) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Conn) WrapProcess(fn func(oldProcess func(cmd Cmder) error) func(cmd Cmder) error)
- func (c *Conn) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- type DurationCmd
- type FailoverOptions
- type FloatCmd
- type GeoLocation
- type GeoLocationCmd
- type GeoPos
- type GeoPosCmd
- type GeoRadiusQuery
- type Hash
- type IntCmd
- type Limiter
- type Message
- type Options
- type Pipeline
- func (c *Pipeline) Auth(password string) *StatusCmd
- func (c *Pipeline) ClientSetName(name string) *BoolCmd
- func (c *Pipeline) Close() error
- func (c *Pipeline) Discard() error
- func (c *Pipeline) Do(args ...interface{}) *Cmd
- func (c *Pipeline) Exec() ([]Cmder, error)
- func (c *Pipeline) Pipeline() Pipeliner
- func (c *Pipeline) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Pipeline) Process(cmd Cmder) error
- func (c *Pipeline) Select(index int) *StatusCmd
- func (c *Pipeline) SwapDB(index1, index2 int) *StatusCmd
- func (c *Pipeline) TxPipeline() Pipeliner
- func (c *Pipeline) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- type Pipeliner
- type Pong
- type PoolStats
- type PubSub
- func (c *PubSub) Channel() <-chan *Message
- func (c *PubSub) ChannelSize(size int) <-chan *Message
- func (c *PubSub) Close() error
- func (c *PubSub) PSubscribe(patterns ...string) error
- func (c *PubSub) PUnsubscribe(patterns ...string) error
- func (c *PubSub) Ping(payload ...string) error
- func (c *PubSub) Receive() (interface{}, error)
- func (c *PubSub) ReceiveMessage() (*Message, error)
- func (c *PubSub) ReceiveTimeout(timeout time.Duration) (interface{}, error)
- func (c *PubSub) String() string
- func (c *PubSub) Subscribe(channels ...string) error
- func (c *PubSub) Unsubscribe(channels ...string) error
- type Ring
- func (c *Ring) Append(key, value string) *IntCmd
- func (c *Ring) BLPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *Ring) BRPop(timeout time.Duration, keys ...string) *StringSliceCmd
- func (c *Ring) BRPopLPush(source, destination string, timeout time.Duration) *StringCmd
- func (c *Ring) BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *Ring) BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd
- func (c *Ring) BgRewriteAOF() *StatusCmd
- func (c *Ring) BgSave() *StatusCmd
- func (c *Ring) BitCount(key string, bitCount *BitCount) *IntCmd
- func (c *Ring) BitOpAnd(destKey string, keys ...string) *IntCmd
- func (c *Ring) BitOpNot(destKey string, key string) *IntCmd
- func (c *Ring) BitOpOr(destKey string, keys ...string) *IntCmd
- func (c *Ring) BitOpXor(destKey string, keys ...string) *IntCmd
- func (c *Ring) BitPos(key string, bit int64, pos ...int64) *IntCmd
- func (c *Ring) ClientGetName() *StringCmd
- func (c *Ring) ClientID() *IntCmd
- func (c *Ring) ClientKill(ipPort string) *StatusCmd
- func (c *Ring) ClientKillByFilter(keys ...string) *IntCmd
- func (c *Ring) ClientList() *StringCmd
- func (c *Ring) ClientPause(dur time.Duration) *BoolCmd
- func (c *Ring) ClientUnblock(id int64) *IntCmd
- func (c *Ring) ClientUnblockWithError(id int64) *IntCmd
- func (c *Ring) Close() error
- func (c *Ring) ClusterAddSlots(slots ...int) *StatusCmd
- func (c *Ring) ClusterAddSlotsRange(min, max int) *StatusCmd
- func (c *Ring) ClusterCountFailureReports(nodeID string) *IntCmd
- func (c *Ring) ClusterCountKeysInSlot(slot int) *IntCmd
- func (c *Ring) ClusterDelSlots(slots ...int) *StatusCmd
- func (c *Ring) ClusterDelSlotsRange(min, max int) *StatusCmd
- func (c *Ring) ClusterFailover() *StatusCmd
- func (c *Ring) ClusterForget(nodeID string) *StatusCmd
- func (c *Ring) ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd
- func (c *Ring) ClusterInfo() *StringCmd
- func (c *Ring) ClusterKeySlot(key string) *IntCmd
- func (c *Ring) ClusterMeet(host, port string) *StatusCmd
- func (c *Ring) ClusterNodes() *StringCmd
- func (c *Ring) ClusterReplicate(nodeID string) *StatusCmd
- func (c *Ring) ClusterResetHard() *StatusCmd
- func (c *Ring) ClusterResetSoft() *StatusCmd
- func (c *Ring) ClusterSaveConfig() *StatusCmd
- func (c *Ring) ClusterSlaves(nodeID string) *StringSliceCmd
- func (c *Ring) ClusterSlots() *ClusterSlotsCmd
- func (c *Ring) Command() *CommandsInfoCmd
- func (c *Ring) ConfigGet(parameter string) *SliceCmd
- func (c *Ring) ConfigResetStat() *StatusCmd
- func (c *Ring) ConfigRewrite() *StatusCmd
- func (c *Ring) ConfigSet(parameter, value string) *StatusCmd
- func (c *Ring) Context() context.Context
- func (c *Ring) DBSize() *IntCmd
- func (c *Ring) DbSize() *IntCmd
- func (c *Ring) DebugObject(key string) *StringCmd
- func (c *Ring) Decr(key string) *IntCmd
- func (c *Ring) DecrBy(key string, decrement int64) *IntCmd
- func (c *Ring) Del(keys ...string) *IntCmd
- func (c *Ring) Do(args ...interface{}) *Cmd
- func (c *Ring) Dump(key string) *StringCmd
- func (c *Ring) Echo(message interface{}) *StringCmd
- func (c *Ring) Eval(script string, keys []string, args ...interface{}) *Cmd
- func (c *Ring) EvalSha(sha1 string, keys []string, args ...interface{}) *Cmd
- func (c *Ring) Exists(keys ...string) *IntCmd
- func (c *Ring) Expire(key string, expiration time.Duration) *BoolCmd
- func (c *Ring) ExpireAt(key string, tm time.Time) *BoolCmd
- func (c *Ring) FlushAll() *StatusCmd
- func (c *Ring) FlushAllAsync() *StatusCmd
- func (c *Ring) FlushDB() *StatusCmd
- func (c *Ring) FlushDBAsync() *StatusCmd
- func (c *Ring) FlushDb() *StatusCmd
- func (c *Ring) ForEachShard(fn func(client *Client) error) error
- func (c *Ring) GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd
- func (c *Ring) GeoDist(key string, member1, member2, unit string) *FloatCmd
- func (c *Ring) GeoHash(key string, members ...string) *StringSliceCmd
- func (c *Ring) GeoPos(key string, members ...string) *GeoPosCmd
- func (c *Ring) GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Ring) GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Ring) GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Ring) GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
- func (c *Ring) Get(key string) *StringCmd
- func (c *Ring) GetBit(key string, offset int64) *IntCmd
- func (c *Ring) GetRange(key string, start, end int64) *StringCmd
- func (c *Ring) GetSet(key string, value interface{}) *StringCmd
- func (c *Ring) HDel(key string, fields ...string) *IntCmd
- func (c *Ring) HExists(key, field string) *BoolCmd
- func (c *Ring) HGet(key, field string) *StringCmd
- func (c *Ring) HGetAll(key string) *StringStringMapCmd
- func (c *Ring) HIncrBy(key, field string, incr int64) *IntCmd
- func (c *Ring) HIncrByFloat(key, field string, incr float64) *FloatCmd
- func (c *Ring) HKeys(key string) *StringSliceCmd
- func (c *Ring) HLen(key string) *IntCmd
- func (c *Ring) HMGet(key string, fields ...string) *SliceCmd
- func (c *Ring) HMSet(key string, fields map[string]interface{}) *StatusCmd
- func (c *Ring) HScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Ring) HSet(key, field string, value interface{}) *BoolCmd
- func (c *Ring) HSetNX(key, field string, value interface{}) *BoolCmd
- func (c *Ring) HVals(key string) *StringSliceCmd
- func (c *Ring) Incr(key string) *IntCmd
- func (c *Ring) IncrBy(key string, value int64) *IntCmd
- func (c *Ring) IncrByFloat(key string, value float64) *FloatCmd
- func (c *Ring) Info(section ...string) *StringCmd
- func (c *Ring) Keys(pattern string) *StringSliceCmd
- func (c *Ring) LIndex(key string, index int64) *StringCmd
- func (c *Ring) LInsert(key, op string, pivot, value interface{}) *IntCmd
- func (c *Ring) LInsertAfter(key string, pivot, value interface{}) *IntCmd
- func (c *Ring) LInsertBefore(key string, pivot, value interface{}) *IntCmd
- func (c *Ring) LLen(key string) *IntCmd
- func (c *Ring) LPop(key string) *StringCmd
- func (c *Ring) LPush(key string, values ...interface{}) *IntCmd
- func (c *Ring) LPushX(key string, value interface{}) *IntCmd
- func (c *Ring) LRange(key string, start, stop int64) *StringSliceCmd
- func (c *Ring) LRem(key string, count int64, value interface{}) *IntCmd
- func (c *Ring) LSet(key string, index int64, value interface{}) *StatusCmd
- func (c *Ring) LTrim(key string, start, stop int64) *StatusCmd
- func (c *Ring) LastSave() *IntCmd
- func (c *Ring) Len() int
- func (c *Ring) MGet(keys ...string) *SliceCmd
- func (c *Ring) MSet(pairs ...interface{}) *StatusCmd
- func (c *Ring) MSetNX(pairs ...interface{}) *BoolCmd
- func (c *Ring) MemoryUsage(key string, samples ...int) *IntCmd
- func (c *Ring) Migrate(host, port, key string, db int64, timeout time.Duration) *StatusCmd
- func (c *Ring) Move(key string, db int64) *BoolCmd
- func (c *Ring) ObjectEncoding(key string) *StringCmd
- func (c *Ring) ObjectIdleTime(key string) *DurationCmd
- func (c *Ring) ObjectRefCount(key string) *IntCmd
- func (c *Ring) Options() *RingOptions
- func (c *Ring) PExpire(key string, expiration time.Duration) *BoolCmd
- func (c *Ring) PExpireAt(key string, tm time.Time) *BoolCmd
- func (c *Ring) PFAdd(key string, els ...interface{}) *IntCmd
- func (c *Ring) PFCount(keys ...string) *IntCmd
- func (c *Ring) PFMerge(dest string, keys ...string) *StatusCmd
- func (c *Ring) PSubscribe(channels ...string) *PubSub
- func (c *Ring) PTTL(key string) *DurationCmd
- func (c *Ring) Persist(key string) *BoolCmd
- func (c *Ring) Ping() *StatusCmd
- func (c *Ring) Pipeline() Pipeliner
- func (c *Ring) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Ring) PoolStats() *PoolStats
- func (c *Ring) Process(cmd Cmder) error
- func (c *Ring) PubSubChannels(pattern string) *StringSliceCmd
- func (c *Ring) PubSubNumPat() *IntCmd
- func (c *Ring) PubSubNumSub(channels ...string) *StringIntMapCmd
- func (c *Ring) Publish(channel string, message interface{}) *IntCmd
- func (c *Ring) Quit() *StatusCmd
- func (c *Ring) RPop(key string) *StringCmd
- func (c *Ring) RPopLPush(source, destination string) *StringCmd
- func (c *Ring) RPush(key string, values ...interface{}) *IntCmd
- func (c *Ring) RPushX(key string, value interface{}) *IntCmd
- func (c *Ring) RandomKey() *StringCmd
- func (c *Ring) ReadOnly() *StatusCmd
- func (c *Ring) ReadWrite() *StatusCmd
- func (c *Ring) Rename(key, newkey string) *StatusCmd
- func (c *Ring) RenameNX(key, newkey string) *BoolCmd
- func (c *Ring) Restore(key string, ttl time.Duration, value string) *StatusCmd
- func (c *Ring) RestoreReplace(key string, ttl time.Duration, value string) *StatusCmd
- func (c *Ring) SAdd(key string, members ...interface{}) *IntCmd
- func (c *Ring) SCard(key string) *IntCmd
- func (c *Ring) SDiff(keys ...string) *StringSliceCmd
- func (c *Ring) SDiffStore(destination string, keys ...string) *IntCmd
- func (c *Ring) SInter(keys ...string) *StringSliceCmd
- func (c *Ring) SInterStore(destination string, keys ...string) *IntCmd
- func (c *Ring) SIsMember(key string, member interface{}) *BoolCmd
- func (c *Ring) SMembers(key string) *StringSliceCmd
- func (c *Ring) SMembersMap(key string) *StringStructMapCmd
- func (c *Ring) SMove(source, destination string, member interface{}) *BoolCmd
- func (c *Ring) SPop(key string) *StringCmd
- func (c *Ring) SPopN(key string, count int64) *StringSliceCmd
- func (c *Ring) SRandMember(key string) *StringCmd
- func (c *Ring) SRandMemberN(key string, count int64) *StringSliceCmd
- func (c *Ring) SRem(key string, members ...interface{}) *IntCmd
- func (c *Ring) SScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Ring) SUnion(keys ...string) *StringSliceCmd
- func (c *Ring) SUnionStore(destination string, keys ...string) *IntCmd
- func (c *Ring) Save() *StatusCmd
- func (c *Ring) Scan(cursor uint64, match string, count int64) *ScanCmd
- func (c *Ring) ScriptExists(hashes ...string) *BoolSliceCmd
- func (c *Ring) ScriptFlush() *StatusCmd
- func (c *Ring) ScriptKill() *StatusCmd
- func (c *Ring) ScriptLoad(script string) *StringCmd
- func (c *Ring) Set(key string, value interface{}, expiration time.Duration) *StatusCmd
- func (c *Ring) SetBit(key string, offset int64, value int) *IntCmd
- func (c *Ring) SetNX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *Ring) SetRange(key string, offset int64, value string) *IntCmd
- func (c *Ring) SetXX(key string, value interface{}, expiration time.Duration) *BoolCmd
- func (c *Ring) Shutdown() *StatusCmd
- func (c *Ring) ShutdownNoSave() *StatusCmd
- func (c *Ring) ShutdownSave() *StatusCmd
- func (c *Ring) SlaveOf(host, port string) *StatusCmd
- func (c *Ring) SlowLog()
- func (c *Ring) Sort(key string, sort *Sort) *StringSliceCmd
- func (c *Ring) SortInterfaces(key string, sort *Sort) *SliceCmd
- func (c *Ring) SortStore(key, store string, sort *Sort) *IntCmd
- func (c *Ring) StrLen(key string) *IntCmd
- func (c *Ring) Subscribe(channels ...string) *PubSub
- func (c *Ring) Sync()
- func (c *Ring) TTL(key string) *DurationCmd
- func (c *Ring) Time() *TimeCmd
- func (c *Ring) Touch(keys ...string) *IntCmd
- func (c *Ring) TxPipeline() Pipeliner
- func (c *Ring) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Ring) Type(key string) *StatusCmd
- func (c *Ring) Unlink(keys ...string) *IntCmd
- func (c *Ring) Wait(numSlaves int, timeout time.Duration) *IntCmd
- func (c *Ring) Watch(fn func(*Tx) error, keys ...string) error
- func (c *Ring) WithContext(ctx context.Context) *Ring
- func (c *Ring) WrapProcess(fn func(oldProcess func(cmd Cmder) error) func(cmd Cmder) error)
- func (c *Ring) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- func (c *Ring) XAck(stream, group string, ids ...string) *IntCmd
- func (c *Ring) XAdd(a *XAddArgs) *StringCmd
- func (c *Ring) XClaim(a *XClaimArgs) *XMessageSliceCmd
- func (c *Ring) XClaimJustID(a *XClaimArgs) *StringSliceCmd
- func (c *Ring) XDel(stream string, ids ...string) *IntCmd
- func (c *Ring) XGroupCreate(stream, group, start string) *StatusCmd
- func (c *Ring) XGroupCreateMkStream(stream, group, start string) *StatusCmd
- func (c *Ring) XGroupDelConsumer(stream, group, consumer string) *IntCmd
- func (c *Ring) XGroupDestroy(stream, group string) *IntCmd
- func (c *Ring) XGroupSetID(stream, group, start string) *StatusCmd
- func (c *Ring) XLen(stream string) *IntCmd
- func (c *Ring) XPending(stream, group string) *XPendingCmd
- func (c *Ring) XPendingExt(a *XPendingExtArgs) *XPendingExtCmd
- func (c *Ring) XRange(stream, start, stop string) *XMessageSliceCmd
- func (c *Ring) XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *Ring) XRead(a *XReadArgs) *XStreamSliceCmd
- func (c *Ring) XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd
- func (c *Ring) XReadStreams(streams ...string) *XStreamSliceCmd
- func (c *Ring) XRevRange(stream, start, stop string) *XMessageSliceCmd
- func (c *Ring) XRevRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
- func (c *Ring) XTrim(key string, maxLen int64) *IntCmd
- func (c *Ring) XTrimApprox(key string, maxLen int64) *IntCmd
- func (c *Ring) ZAdd(key string, members ...Z) *IntCmd
- func (c *Ring) ZAddCh(key string, members ...Z) *IntCmd
- func (c *Ring) ZAddNX(key string, members ...Z) *IntCmd
- func (c *Ring) ZAddNXCh(key string, members ...Z) *IntCmd
- func (c *Ring) ZAddXX(key string, members ...Z) *IntCmd
- func (c *Ring) ZAddXXCh(key string, members ...Z) *IntCmd
- func (c *Ring) ZCard(key string) *IntCmd
- func (c *Ring) ZCount(key, min, max string) *IntCmd
- func (c *Ring) ZIncr(key string, member Z) *FloatCmd
- func (c *Ring) ZIncrBy(key string, increment float64, member string) *FloatCmd
- func (c *Ring) ZIncrNX(key string, member Z) *FloatCmd
- func (c *Ring) ZIncrXX(key string, member Z) *FloatCmd
- func (c *Ring) ZInterStore(destination string, store ZStore, keys ...string) *IntCmd
- func (c *Ring) ZLexCount(key, min, max string) *IntCmd
- func (c *Ring) ZPopMax(key string, count ...int64) *ZSliceCmd
- func (c *Ring) ZPopMin(key string, count ...int64) *ZSliceCmd
- func (c *Ring) ZRange(key string, start, stop int64) *StringSliceCmd
- func (c *Ring) ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Ring) ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Ring) ZRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *Ring) ZRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *Ring) ZRank(key, member string) *IntCmd
- func (c *Ring) ZRem(key string, members ...interface{}) *IntCmd
- func (c *Ring) ZRemRangeByLex(key, min, max string) *IntCmd
- func (c *Ring) ZRemRangeByRank(key string, start, stop int64) *IntCmd
- func (c *Ring) ZRemRangeByScore(key, min, max string) *IntCmd
- func (c *Ring) ZRevRange(key string, start, stop int64) *StringSliceCmd
- func (c *Ring) ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Ring) ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
- func (c *Ring) ZRevRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd
- func (c *Ring) ZRevRangeWithScores(key string, start, stop int64) *ZSliceCmd
- func (c *Ring) ZRevRank(key, member string) *IntCmd
- func (c *Ring) ZScan(key string, cursor uint64, match string, count int64) *ScanCmd
- func (c *Ring) ZScore(key, member string) *FloatCmd
- func (c *Ring) ZUnionStore(dest string, store ZStore, keys ...string) *IntCmd
- type RingOptions
- type ScanCmd
- func (cmd *ScanCmd) Args() []interface{}
- func (cmd *ScanCmd) Err() error
- func (cmd *ScanCmd) Iterator() *ScanIterator
- func (cmd *ScanCmd) Name() string
- func (cmd *ScanCmd) Result() (keys []string, cursor uint64, err error)
- func (cmd *ScanCmd) String() string
- func (cmd *ScanCmd) Val() (keys []string, cursor uint64)
- type ScanIterator
- type Script
- func (s *Script) Eval(c scripter, keys []string, args ...interface{}) *Cmd
- func (s *Script) EvalSha(c scripter, keys []string, args ...interface{}) *Cmd
- func (s *Script) Exists(c scripter) *BoolSliceCmd
- func (s *Script) Hash() string
- func (s *Script) Load(c scripter) *StringCmd
- func (s *Script) Run(c scripter, keys []string, args ...interface{}) *Cmd
- type SentinelClient
- func (c *SentinelClient) Close() error
- func (c *SentinelClient) Do(args ...interface{}) *Cmd
- func (c *SentinelClient) Failover(name string) *StatusCmd
- func (c *SentinelClient) FlushConfig() *StatusCmd
- func (c *SentinelClient) GetMasterAddrByName(name string) *StringSliceCmd
- func (c *SentinelClient) Master(name string) *StringStringMapCmd
- func (c *SentinelClient) PSubscribe(channels ...string) *PubSub
- func (c *SentinelClient) Process(cmd Cmder) error
- func (c *SentinelClient) Reset(pattern string) *IntCmd
- func (c *SentinelClient) Sentinels(name string) *SliceCmd
- func (c *SentinelClient) String() string
- func (c *SentinelClient) Subscribe(channels ...string) *PubSub
- func (c *SentinelClient) WrapProcess(fn func(oldProcess func(cmd Cmder) error) func(cmd Cmder) error)
- func (c *SentinelClient) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- type SliceCmd
- type Sort
- type StatefulCmdable
- type StatusCmd
- type StringCmd
- func (cmd *StringCmd) Args() []interface{}
- func (cmd *StringCmd) Bytes() ([]byte, error)
- func (cmd *StringCmd) Err() error
- func (cmd *StringCmd) Float32() (float32, error)
- func (cmd *StringCmd) Float64() (float64, error)
- func (cmd *StringCmd) Int() (int, error)
- func (cmd *StringCmd) Int64() (int64, error)
- func (cmd *StringCmd) Name() string
- func (cmd *StringCmd) Result() (string, error)
- func (cmd *StringCmd) Scan(val interface{}) error
- func (cmd *StringCmd) String() string
- func (cmd *StringCmd) Uint64() (uint64, error)
- func (cmd *StringCmd) Val() string
- type StringIntMapCmd
- type StringSliceCmd
- func (cmd *StringSliceCmd) Args() []interface{}
- func (cmd *StringSliceCmd) Err() error
- func (cmd *StringSliceCmd) Name() string
- func (cmd *StringSliceCmd) Result() ([]string, error)
- func (cmd *StringSliceCmd) ScanSlice(container interface{}) error
- func (cmd *StringSliceCmd) String() string
- func (cmd *StringSliceCmd) Val() []string
- type StringStringMapCmd
- func (cmd *StringStringMapCmd) Args() []interface{}
- func (cmd *StringStringMapCmd) Err() error
- func (cmd *StringStringMapCmd) Name() string
- func (cmd *StringStringMapCmd) Result() (map[string]string, error)
- func (cmd *StringStringMapCmd) String() string
- func (cmd *StringStringMapCmd) Val() map[string]string
- type StringStructMapCmd
- func (cmd *StringStructMapCmd) Args() []interface{}
- func (cmd *StringStructMapCmd) Err() error
- func (cmd *StringStructMapCmd) Name() string
- func (cmd *StringStructMapCmd) Result() (map[string]struct{}, error)
- func (cmd *StringStructMapCmd) String() string
- func (cmd *StringStructMapCmd) Val() map[string]struct{}
- type Subscription
- type TimeCmd
- type Tx
- func (c *Tx) Auth(password string) *StatusCmd
- func (c *Tx) ClientSetName(name string) *BoolCmd
- func (c *Tx) Close() error
- func (c *Tx) Do(args ...interface{}) *Cmd
- func (c *Tx) Pipeline() Pipeliner
- func (c *Tx) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Tx) Process(cmd Cmder) error
- func (c *Tx) Select(index int) *StatusCmd
- func (c *Tx) String() string
- func (c *Tx) SwapDB(index1, index2 int) *StatusCmd
- func (c *Tx) TxPipeline() Pipeliner
- func (c *Tx) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
- func (c *Tx) Unwatch(keys ...string) *StatusCmd
- func (c *Tx) Watch(keys ...string) *StatusCmd
- func (c *Tx) WrapProcess(fn func(oldProcess func(cmd Cmder) error) func(cmd Cmder) error)
- func (c *Tx) WrapProcessPipeline(fn func(oldProcess func([]Cmder) error) func([]Cmder) error)
- type UniversalClient
- type UniversalOptions
- type XAddArgs
- type XClaimArgs
- type XMessage
- type XMessageSliceCmd
- type XPending
- type XPendingCmd
- type XPendingExt
- type XPendingExtArgs
- type XPendingExtCmd
- type XReadArgs
- type XReadGroupArgs
- type XStream
- type XStreamSliceCmd
- type Z
- type ZRangeBy
- type ZSliceCmd
- type ZStore
- type ZWithKey
- type ZWithKeyCmd
Examples ¶
- Package (CustomCommand)
- Package (CustomCommand2)
- Package (Instrumentation)
- Client
- Client.BLPop
- Client.Incr
- Client.Pipeline
- Client.Pipelined
- Client.Scan
- Client.Set
- Client.TxPipeline
- Client.TxPipelined
- Client.Watch
- NewClient
- NewClusterClient
- NewClusterClient (ManualSetup)
- NewFailoverClient
- NewRing
- NewUniversalClient (Cluster)
- NewUniversalClient (Failover)
- NewUniversalClient (Simple)
- ParseURL
- Pipeline (Instrumentation)
- PubSub
- PubSub.Receive
- ScanCmd.Iterator
- ScanIterator
- Script
Constants ¶
const Nil = proto.Nil
Nil reply Redis returns when key does not exist.
const TxFailedErr = proto.RedisError("redis: transaction failed")
TxFailedErr transaction redis failed.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BoolCmd ¶
type BoolCmd struct {
// contains filtered or unexported fields
}
func NewBoolCmd ¶
func NewBoolCmd(args ...interface{}) *BoolCmd
func NewBoolResult ¶
NewBoolResult returns a BoolCmd initialised with val and err for testing
type BoolSliceCmd ¶
type BoolSliceCmd struct {
// contains filtered or unexported fields
}
func NewBoolSliceCmd ¶
func NewBoolSliceCmd(args ...interface{}) *BoolSliceCmd
func NewBoolSliceResult ¶
func NewBoolSliceResult(val []bool, err error) *BoolSliceCmd
NewBoolSliceResult returns a BoolSliceCmd initialised with val and err for testing
func (*BoolSliceCmd) Result ¶
func (cmd *BoolSliceCmd) Result() ([]bool, error)
func (*BoolSliceCmd) String ¶
func (cmd *BoolSliceCmd) String() string
func (*BoolSliceCmd) Val ¶
func (cmd *BoolSliceCmd) Val() []bool
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Redis client representing a pool of zero or more underlying connections. It's safe for concurrent use by multiple goroutines.
Example ¶
package main import ( "fmt" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { err := redisdb.Set("key", "value", 0).Err() if err != nil { panic(err) } val, err := redisdb.Get("key").Result() if err != nil { panic(err) } fmt.Println("key", val) val2, err := redisdb.Get("missing_key").Result() if err == redis.Nil { fmt.Println("missing_key does not exist") } else if err != nil { panic(err) } else { fmt.Println("missing_key", val2) } }
Output: key value missing_key does not exist
func NewClient ¶
NewClient returns a client to the Redis Server specified by Options.
Example ¶
package main import ( "fmt" "github.com/go-redis/redis" ) func main() { redisdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", // use default Addr Password: "", // no password set DB: 0, // use default DB }) pong, err := redisdb.Ping().Result() fmt.Println(pong, err) }
Output: PONG <nil>
func NewFailoverClient ¶
func NewFailoverClient(failoverOpt *FailoverOptions) *Client
NewFailoverClient returns a Redis client that uses Redis Sentinel for automatic failover. It's safe for concurrent use by multiple goroutines.
Example ¶
package main import ( "github.com/go-redis/redis" ) func main() { // See http://redis.io/topics/sentinel for instructions how to // setup Redis Sentinel. redisdb := redis.NewFailoverClient(&redis.FailoverOptions{ MasterName: "master", SentinelAddrs: []string{":26379"}, }) redisdb.Ping() }
Output:
func (*Client) BLPop ¶
func (c *Client) BLPop(timeout time.Duration, keys ...string) *StringSliceCmd
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { if err := redisdb.RPush("queue", "message").Err(); err != nil { panic(err) } // use `redisdb.BLPop(0, "queue")` for infinite waiting time result, err := redisdb.BLPop(1*time.Second, "queue").Result() if err != nil { panic(err) } fmt.Println(result[0], result[1]) }
Output: queue message
func (*Client) BRPop ¶
func (c *Client) BRPop(timeout time.Duration, keys ...string) *StringSliceCmd
func (*Client) BRPopLPush ¶
func (*Client) BZPopMax ¶
func (c *Client) BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd
Redis `BZPOPMAX key [key ...] timeout` command.
func (*Client) BZPopMin ¶
func (c *Client) BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd
Redis `BZPOPMIN key [key ...] timeout` command.
func (*Client) BgRewriteAOF ¶
func (c *Client) BgRewriteAOF() *StatusCmd
func (*Client) ClientGetName ¶
func (c *Client) ClientGetName() *StringCmd
ClientGetName returns the name of the connection.
func (*Client) ClientKill ¶
func (*Client) ClientKillByFilter ¶
ClientKillByFilter is new style synx, while the ClientKill is old CLIENT KILL <option> [value] ... <option> [value]
func (*Client) ClientList ¶
func (c *Client) ClientList() *StringCmd
func (*Client) ClientPause ¶
func (*Client) ClientUnblock ¶
func (*Client) ClientUnblockWithError ¶
func (*Client) Close ¶
func (c *Client) Close() error
Close closes the client, releasing any open resources.
It is rare to Close a Client, as the Client is meant to be long-lived and shared between many goroutines.
func (*Client) ClusterAddSlots ¶
func (*Client) ClusterAddSlotsRange ¶
func (*Client) ClusterCountFailureReports ¶
func (*Client) ClusterCountKeysInSlot ¶
func (*Client) ClusterDelSlots ¶
func (*Client) ClusterDelSlotsRange ¶
func (*Client) ClusterFailover ¶
func (c *Client) ClusterFailover() *StatusCmd
func (*Client) ClusterForget ¶
func (*Client) ClusterGetKeysInSlot ¶
func (c *Client) ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd
func (*Client) ClusterInfo ¶
func (c *Client) ClusterInfo() *StringCmd
func (*Client) ClusterKeySlot ¶
func (*Client) ClusterMeet ¶
func (*Client) ClusterNodes ¶
func (c *Client) ClusterNodes() *StringCmd
func (*Client) ClusterReplicate ¶
func (*Client) ClusterResetHard ¶
func (c *Client) ClusterResetHard() *StatusCmd
func (*Client) ClusterResetSoft ¶
func (c *Client) ClusterResetSoft() *StatusCmd
func (*Client) ClusterSaveConfig ¶
func (c *Client) ClusterSaveConfig() *StatusCmd
func (*Client) ClusterSlaves ¶
func (c *Client) ClusterSlaves(nodeID string) *StringSliceCmd
func (*Client) ClusterSlots ¶
func (c *Client) ClusterSlots() *ClusterSlotsCmd
func (*Client) Command ¶
func (c *Client) Command() *CommandsInfoCmd
func (*Client) ConfigResetStat ¶
func (c *Client) ConfigResetStat() *StatusCmd
func (*Client) ConfigRewrite ¶
func (c *Client) ConfigRewrite() *StatusCmd
func (*Client) DebugObject ¶
func (*Client) Do ¶
func (c *Client) Do(args ...interface{}) *Cmd
Do creates a Cmd from the args and processes the cmd.
func (*Client) FlushAllAsync ¶
func (c *Client) FlushAllAsync() *StatusCmd
func (*Client) FlushDBAsync ¶
func (c *Client) FlushDBAsync() *StatusCmd
func (*Client) GeoAdd ¶
func (c *Client) GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd
func (*Client) GeoHash ¶
func (c *Client) GeoHash(key string, members ...string) *StringSliceCmd
func (*Client) GeoRadius ¶
func (c *Client) GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
func (*Client) GeoRadiusByMember ¶
func (c *Client) GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
func (*Client) GeoRadiusByMemberRO ¶
func (c *Client) GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
func (*Client) GeoRadiusRO ¶
func (c *Client) GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
func (*Client) HGetAll ¶
func (c *Client) HGetAll(key string) *StringStringMapCmd
func (*Client) HIncrByFloat ¶
func (*Client) HKeys ¶
func (c *Client) HKeys(key string) *StringSliceCmd
func (*Client) HVals ¶
func (c *Client) HVals(key string) *StringSliceCmd
func (*Client) Incr ¶
Example ¶
package main import ( "fmt" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { result, err := redisdb.Incr("counter").Result() if err != nil { panic(err) } fmt.Println(result) }
Output: 1
func (*Client) IncrByFloat ¶
func (*Client) Keys ¶
func (c *Client) Keys(pattern string) *StringSliceCmd
func (*Client) LInsertAfter ¶
func (*Client) LInsertBefore ¶
func (*Client) LRange ¶
func (c *Client) LRange(key string, start, stop int64) *StringSliceCmd
func (*Client) MemoryUsage ¶
func (*Client) ObjectEncoding ¶
func (*Client) ObjectIdleTime ¶
func (c *Client) ObjectIdleTime(key string) *DurationCmd
func (*Client) ObjectRefCount ¶
func (*Client) PSubscribe ¶
PSubscribe subscribes the client to the given patterns. Patterns can be omitted to create empty subscription.
func (*Client) PTTL ¶
func (c *Client) PTTL(key string) *DurationCmd
func (*Client) Pipeline ¶
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { pipe := redisdb.Pipeline() incr := pipe.Incr("pipeline_counter") pipe.Expire("pipeline_counter", time.Hour) // Execute // // INCR pipeline_counter // EXPIRE pipeline_counts 3600 // // using one redisdb-server roundtrip. _, err := pipe.Exec() fmt.Println(incr.Val(), err) }
Output: 1 <nil>
func (*Client) Pipelined ¶
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { var incr *redis.IntCmd _, err := redisdb.Pipelined(func(pipe redis.Pipeliner) error { incr = pipe.Incr("pipelined_counter") pipe.Expire("pipelined_counter", time.Hour) return nil }) fmt.Println(incr.Val(), err) }
Output: 1 <nil>
func (*Client) PubSubChannels ¶
func (c *Client) PubSubChannels(pattern string) *StringSliceCmd
func (*Client) PubSubNumPat ¶
func (c *Client) PubSubNumPat() *IntCmd
func (*Client) PubSubNumSub ¶
func (c *Client) PubSubNumSub(channels ...string) *StringIntMapCmd
func (*Client) RestoreReplace ¶
func (*Client) SDiff ¶
func (c *Client) SDiff(keys ...string) *StringSliceCmd
func (*Client) SDiffStore ¶
func (*Client) SInter ¶
func (c *Client) SInter(keys ...string) *StringSliceCmd
func (*Client) SInterStore ¶
func (*Client) SMembers ¶
func (c *Client) SMembers(key string) *StringSliceCmd
Redis `SMEMBERS key` command output as a slice
func (*Client) SMembersMap ¶
func (c *Client) SMembersMap(key string) *StringStructMapCmd
Redis `SMEMBERS key` command output as a map
func (*Client) SPopN ¶
func (c *Client) SPopN(key string, count int64) *StringSliceCmd
Redis `SPOP key count` command.
func (*Client) SRandMember ¶
Redis `SRANDMEMBER key` command.
func (*Client) SRandMemberN ¶
func (c *Client) SRandMemberN(key string, count int64) *StringSliceCmd
Redis `SRANDMEMBER key count` command.
func (*Client) SUnion ¶
func (c *Client) SUnion(keys ...string) *StringSliceCmd
func (*Client) SUnionStore ¶
func (*Client) Scan ¶
Example ¶
package main import ( "fmt" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { redisdb.FlushDB() for i := 0; i < 33; i++ { err := redisdb.Set(fmt.Sprintf("key%d", i), "value", 0).Err() if err != nil { panic(err) } } var cursor uint64 var n int for { var keys []string var err error keys, cursor, err = redisdb.Scan(cursor, "key*", 10).Result() if err != nil { panic(err) } n += len(keys) if cursor == 0 { break } } fmt.Printf("found %d keys\n", n) }
Output: found 33 keys
func (*Client) ScriptExists ¶
func (c *Client) ScriptExists(hashes ...string) *BoolSliceCmd
func (*Client) ScriptFlush ¶
func (c *Client) ScriptFlush() *StatusCmd
func (*Client) ScriptKill ¶
func (c *Client) ScriptKill() *StatusCmd
func (*Client) ScriptLoad ¶
func (*Client) Set ¶
Redis `SET key value [expiration]` command.
Use expiration for `SETEX`-like behavior. Zero expiration means the key has no expiration time.
Example ¶
package main import ( "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { // Last argument is expiration. Zero means the key has no // expiration time. err := redisdb.Set("key", "value", 0).Err() if err != nil { panic(err) } // key2 will expire in an hour. err = redisdb.Set("key2", "value", time.Hour).Err() if err != nil { panic(err) } }
Output:
func (*Client) SetLimiter ¶
func (*Client) SetNX ¶
Redis `SET key value [expiration] NX` command.
Zero expiration means the key has no expiration time.
func (*Client) SetXX ¶
Redis `SET key value [expiration] XX` command.
Zero expiration means the key has no expiration time.
func (*Client) ShutdownNoSave ¶
func (c *Client) ShutdownNoSave() *StatusCmd
func (*Client) ShutdownSave ¶
func (c *Client) ShutdownSave() *StatusCmd
func (*Client) Sort ¶
func (c *Client) Sort(key string, sort *Sort) *StringSliceCmd
func (*Client) SortInterfaces ¶
func (*Client) Subscribe ¶
Subscribe subscribes the client to the specified channels. Channels can be omitted to create empty subscription. Note that this method does not wait on a response from Redis, so the subscription may not be active immediately. To force the connection to wait, you may call the Receive() method on the returned *PubSub like so:
sub := client.Subscribe(queryResp) iface, err := sub.Receive() if err != nil { // handle error } // Should be *Subscription, but others are possible if other actions have been // taken on sub since it was created. switch iface.(type) { case *Subscription: // subscribe succeeded case *Message: // received first message case *Pong: // pong received default: // handle error } ch := sub.Channel()
func (*Client) TTL ¶
func (c *Client) TTL(key string) *DurationCmd
func (*Client) TxPipeline ¶
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { pipe := redisdb.TxPipeline() incr := pipe.Incr("tx_pipeline_counter") pipe.Expire("tx_pipeline_counter", time.Hour) // Execute // // MULTI // INCR pipeline_counter // EXPIRE pipeline_counts 3600 // EXEC // // using one redisdb-server roundtrip. _, err := pipe.Exec() fmt.Println(incr.Val(), err) }
Output: 1 <nil>
func (*Client) TxPipelined ¶
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func main() { var incr *redis.IntCmd _, err := redisdb.TxPipelined(func(pipe redis.Pipeliner) error { incr = pipe.Incr("tx_pipelined_counter") pipe.Expire("tx_pipelined_counter", time.Hour) return nil }) fmt.Println(incr.Val(), err) }
Output: 1 <nil>
func (*Client) Watch ¶
Watch prepares a transaction and marks the keys to be watched for conditional execution if there are any keys.
The transaction is automatically closed when fn exits.
Example ¶
package main import ( "errors" "fmt" "sync" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func init() { redisdb = redis.NewClient(&redis.Options{ Addr: ":6379", DialTimeout: 10 * time.Second, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, PoolSize: 10, PoolTimeout: 30 * time.Second, }) } func main() { const routineCount = 100 // Transactionally increments key using GET and SET commands. increment := func(key string) error { txf := func(tx *redis.Tx) error { // get current value or zero n, err := tx.Get(key).Int() if err != nil && err != redis.Nil { return err } // actual opperation (local in optimistic lock) n++ // runs only if the watched keys remain unchanged _, err = tx.Pipelined(func(pipe redis.Pipeliner) error { // pipe handles the error case pipe.Set(key, n, 0) return nil }) return err } for retries := routineCount; retries > 0; retries-- { err := redisdb.Watch(txf, key) if err != redis.TxFailedErr { return err } // optimistic lock lost } return errors.New("increment reached maximum number of retries") } var wg sync.WaitGroup wg.Add(routineCount) for i := 0; i < routineCount; i++ { go func() { defer wg.Done() if err := increment("counter3"); err != nil { fmt.Println("increment error:", err) } }() } wg.Wait() n, err := redisdb.Get("counter3").Int() fmt.Println("ended with", n, err) }
Output: ended with 100 <nil>
func (*Client) WrapProcess ¶
WrapProcess wraps function that processes Redis commands.
func (*Client) WrapProcessPipeline ¶
func (*Client) XClaim ¶
func (c *Client) XClaim(a *XClaimArgs) *XMessageSliceCmd
func (*Client) XClaimJustID ¶
func (c *Client) XClaimJustID(a *XClaimArgs) *StringSliceCmd
func (*Client) XGroupCreate ¶
func (*Client) XGroupCreateMkStream ¶
func (*Client) XGroupDelConsumer ¶
func (*Client) XGroupDestroy ¶
func (*Client) XGroupSetID ¶
func (*Client) XPending ¶
func (c *Client) XPending(stream, group string) *XPendingCmd
func (*Client) XPendingExt ¶
func (c *Client) XPendingExt(a *XPendingExtArgs) *XPendingExtCmd
func (*Client) XRange ¶
func (c *Client) XRange(stream, start, stop string) *XMessageSliceCmd
func (*Client) XRangeN ¶
func (c *Client) XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
func (*Client) XRead ¶
func (c *Client) XRead(a *XReadArgs) *XStreamSliceCmd
func (*Client) XReadGroup ¶
func (c *Client) XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd
func (*Client) XReadStreams ¶
func (c *Client) XReadStreams(streams ...string) *XStreamSliceCmd
func (*Client) XRevRange ¶
func (c *Client) XRevRange(stream, start, stop string) *XMessageSliceCmd
func (*Client) XRevRangeN ¶
func (c *Client) XRevRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
func (*Client) XTrimApprox ¶
func (*Client) ZInterStore ¶
func (*Client) ZRange ¶
func (c *Client) ZRange(key string, start, stop int64) *StringSliceCmd
func (*Client) ZRangeByLex ¶
func (c *Client) ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
func (*Client) ZRangeByScore ¶
func (c *Client) ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
func (*Client) ZRangeByScoreWithScores ¶
func (*Client) ZRangeWithScores ¶
func (*Client) ZRemRangeByLex ¶
func (*Client) ZRemRangeByRank ¶
func (*Client) ZRemRangeByScore ¶
func (*Client) ZRevRange ¶
func (c *Client) ZRevRange(key string, start, stop int64) *StringSliceCmd
func (*Client) ZRevRangeByLex ¶
func (c *Client) ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
func (*Client) ZRevRangeByScore ¶
func (c *Client) ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
func (*Client) ZRevRangeByScoreWithScores ¶
func (*Client) ZRevRangeWithScores ¶
type ClusterClient ¶
type ClusterClient struct {
// contains filtered or unexported fields
}
ClusterClient is a Redis Cluster client representing a pool of zero or more underlying connections. It's safe for concurrent use by multiple goroutines.
func NewClusterClient ¶
func NewClusterClient(opt *ClusterOptions) *ClusterClient
NewClusterClient returns a Redis Cluster client as described in http://redis.io/topics/cluster-spec.
Example ¶
package main import ( "github.com/go-redis/redis" ) func main() { // See http://redis.io/topics/cluster-tutorial for instructions // how to setup Redis Cluster. redisdb := redis.NewClusterClient(&redis.ClusterOptions{ Addrs: []string{":7000", ":7001", ":7002", ":7003", ":7004", ":7005"}, }) redisdb.Ping() }
Output:
Example (ManualSetup) ¶
Following example creates a cluster from 2 master nodes and 2 slave nodes without using cluster mode or Redis Sentinel.
package main import ( "github.com/go-redis/redis" ) func main() { // clusterSlots returns cluster slots information. // It can use service like ZooKeeper to maintain configuration information // and Cluster.ReloadState to manually trigger state reloading. clusterSlots := func() ([]redis.ClusterSlot, error) { slots := []redis.ClusterSlot{ // First node with 1 master and 1 slave. { Start: 0, End: 8191, Nodes: []redis.ClusterNode{{ Addr: ":7000", // master }, { Addr: ":8000", // 1st slave }}, }, // Second node with 1 master and 1 slave. { Start: 8192, End: 16383, Nodes: []redis.ClusterNode{{ Addr: ":7001", // master }, { Addr: ":8001", // 1st slave }}, }, } return slots, nil } redisdb := redis.NewClusterClient(&redis.ClusterOptions{ ClusterSlots: clusterSlots, RouteRandomly: true, }) redisdb.Ping() // ReloadState reloads cluster state. It calls ClusterSlots func // to get cluster slots information. err := redisdb.ReloadState() if err != nil { panic(err) } }
Output:
func (*ClusterClient) BLPop ¶
func (c *ClusterClient) BLPop(timeout time.Duration, keys ...string) *StringSliceCmd
func (*ClusterClient) BRPop ¶
func (c *ClusterClient) BRPop(timeout time.Duration, keys ...string) *StringSliceCmd
func (*ClusterClient) BRPopLPush ¶
func (*ClusterClient) BZPopMax ¶
func (c *ClusterClient) BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd
Redis `BZPOPMAX key [key ...] timeout` command.
func (*ClusterClient) BZPopMin ¶
func (c *ClusterClient) BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd
Redis `BZPOPMIN key [key ...] timeout` command.
func (*ClusterClient) BgRewriteAOF ¶
func (c *ClusterClient) BgRewriteAOF() *StatusCmd
func (*ClusterClient) ClientGetName ¶
func (c *ClusterClient) ClientGetName() *StringCmd
ClientGetName returns the name of the connection.
func (*ClusterClient) ClientKill ¶
func (*ClusterClient) ClientKillByFilter ¶
ClientKillByFilter is new style synx, while the ClientKill is old CLIENT KILL <option> [value] ... <option> [value]
func (*ClusterClient) ClientList ¶
func (c *ClusterClient) ClientList() *StringCmd
func (*ClusterClient) ClientPause ¶
func (*ClusterClient) ClientUnblock ¶
func (*ClusterClient) ClientUnblockWithError ¶
func (*ClusterClient) Close ¶
func (c *ClusterClient) Close() error
Close closes the cluster client, releasing any open resources.
It is rare to Close a ClusterClient, as the ClusterClient is meant to be long-lived and shared between many goroutines.
func (*ClusterClient) ClusterAddSlots ¶
func (*ClusterClient) ClusterAddSlotsRange ¶
func (*ClusterClient) ClusterCountFailureReports ¶
func (*ClusterClient) ClusterCountKeysInSlot ¶
func (*ClusterClient) ClusterDelSlots ¶
func (*ClusterClient) ClusterDelSlotsRange ¶
func (*ClusterClient) ClusterFailover ¶
func (c *ClusterClient) ClusterFailover() *StatusCmd
func (*ClusterClient) ClusterForget ¶
func (*ClusterClient) ClusterGetKeysInSlot ¶
func (c *ClusterClient) ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd
func (*ClusterClient) ClusterInfo ¶
func (c *ClusterClient) ClusterInfo() *StringCmd
func (*ClusterClient) ClusterKeySlot ¶
func (*ClusterClient) ClusterMeet ¶
func (*ClusterClient) ClusterNodes ¶
func (c *ClusterClient) ClusterNodes() *StringCmd
func (*ClusterClient) ClusterReplicate ¶
func (*ClusterClient) ClusterResetHard ¶
func (c *ClusterClient) ClusterResetHard() *StatusCmd
func (*ClusterClient) ClusterResetSoft ¶
func (c *ClusterClient) ClusterResetSoft() *StatusCmd
func (*ClusterClient) ClusterSaveConfig ¶
func (c *ClusterClient) ClusterSaveConfig() *StatusCmd
func (*ClusterClient) ClusterSlaves ¶
func (c *ClusterClient) ClusterSlaves(nodeID string) *StringSliceCmd
func (*ClusterClient) ClusterSlots ¶
func (c *ClusterClient) ClusterSlots() *ClusterSlotsCmd
func (*ClusterClient) Command ¶
func (c *ClusterClient) Command() *CommandsInfoCmd
func (*ClusterClient) ConfigResetStat ¶
func (c *ClusterClient) ConfigResetStat() *StatusCmd
func (*ClusterClient) ConfigRewrite ¶
func (c *ClusterClient) ConfigRewrite() *StatusCmd
func (*ClusterClient) Context ¶
func (c *ClusterClient) Context() context.Context
func (*ClusterClient) DBSize ¶
func (c *ClusterClient) DBSize() *IntCmd
func (*ClusterClient) DbSize ¶
func (c *ClusterClient) DbSize() *IntCmd
Deperecated. Use DBSize instead.
func (*ClusterClient) DebugObject ¶
func (*ClusterClient) Do ¶
func (c *ClusterClient) Do(args ...interface{}) *Cmd
Do creates a Cmd from the args and processes the cmd.
func (*ClusterClient) FlushAllAsync ¶
func (c *ClusterClient) FlushAllAsync() *StatusCmd
func (*ClusterClient) FlushDBAsync ¶
func (c *ClusterClient) FlushDBAsync() *StatusCmd
func (*ClusterClient) FlushDb ¶
func (c *ClusterClient) FlushDb() *StatusCmd
Deprecated. Use FlushDB instead.
func (*ClusterClient) ForEachMaster ¶
func (c *ClusterClient) ForEachMaster(fn func(client *Client) error) error
ForEachMaster concurrently calls the fn on each master node in the cluster. It returns the first error if any.
func (*ClusterClient) ForEachNode ¶
func (c *ClusterClient) ForEachNode(fn func(client *Client) error) error
ForEachNode concurrently calls the fn on each known node in the cluster. It returns the first error if any.
func (*ClusterClient) ForEachSlave ¶
func (c *ClusterClient) ForEachSlave(fn func(client *Client) error) error
ForEachSlave concurrently calls the fn on each slave node in the cluster. It returns the first error if any.
func (*ClusterClient) GeoAdd ¶
func (c *ClusterClient) GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd
func (*ClusterClient) GeoHash ¶
func (c *ClusterClient) GeoHash(key string, members ...string) *StringSliceCmd
func (*ClusterClient) GeoRadius ¶
func (c *ClusterClient) GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
func (*ClusterClient) GeoRadiusByMember ¶
func (c *ClusterClient) GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
func (*ClusterClient) GeoRadiusByMemberRO ¶
func (c *ClusterClient) GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd
func (*ClusterClient) GeoRadiusRO ¶
func (c *ClusterClient) GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
func (*ClusterClient) Get ¶
Redis `GET key` command. It returns redis.Nil error when key does not exist.
func (*ClusterClient) HGetAll ¶
func (c *ClusterClient) HGetAll(key string) *StringStringMapCmd
func (*ClusterClient) HIncrByFloat ¶
func (*ClusterClient) HKeys ¶
func (c *ClusterClient) HKeys(key string) *StringSliceCmd
func (*ClusterClient) HVals ¶
func (c *ClusterClient) HVals(key string) *StringSliceCmd
func (*ClusterClient) IncrByFloat ¶
func (*ClusterClient) Keys ¶
func (c *ClusterClient) Keys(pattern string) *StringSliceCmd
func (*ClusterClient) LInsertAfter ¶
func (*ClusterClient) LInsertBefore ¶
func (*ClusterClient) LRange ¶
func (c *ClusterClient) LRange(key string, start, stop int64) *StringSliceCmd
func (*ClusterClient) MemoryUsage ¶
func (*ClusterClient) ObjectEncoding ¶
func (*ClusterClient) ObjectIdleTime ¶
func (c *ClusterClient) ObjectIdleTime(key string) *DurationCmd
func (*ClusterClient) ObjectRefCount ¶
func (*ClusterClient) Options ¶
func (c *ClusterClient) Options() *ClusterOptions
Options returns read-only Options that were used to create the client.
func (*ClusterClient) PSubscribe ¶
func (c *ClusterClient) PSubscribe(channels ...string) *PubSub
PSubscribe subscribes the client to the given patterns. Patterns can be omitted to create empty subscription.
func (*ClusterClient) PTTL ¶
func (c *ClusterClient) PTTL(key string) *DurationCmd
func (*ClusterClient) Pipeline ¶
func (c *ClusterClient) Pipeline() Pipeliner
func (*ClusterClient) Pipelined ¶
func (c *ClusterClient) Pipelined(fn func(Pipeliner) error) ([]Cmder, error)
func (*ClusterClient) PoolStats ¶
func (c *ClusterClient) PoolStats() *PoolStats
PoolStats returns accumulated connection pool stats.
func (*ClusterClient) Process ¶
func (c *ClusterClient) Process(cmd Cmder) error
func (*ClusterClient) PubSubChannels ¶
func (c *ClusterClient) PubSubChannels(pattern string) *StringSliceCmd
func (*ClusterClient) PubSubNumPat ¶
func (c *ClusterClient) PubSubNumPat() *IntCmd
func (*ClusterClient) PubSubNumSub ¶
func (c *ClusterClient) PubSubNumSub(channels ...string) *StringIntMapCmd
func (*ClusterClient) ReloadState ¶
func (c *ClusterClient) ReloadState() error
ReloadState reloads cluster state. If available it calls ClusterSlots func to get cluster slots information.
func (*ClusterClient) RestoreReplace ¶
func (*ClusterClient) SDiff ¶
func (c *ClusterClient) SDiff(keys ...string) *StringSliceCmd
func (*ClusterClient) SDiffStore ¶
func (*ClusterClient) SInter ¶
func (c *ClusterClient) SInter(keys ...string) *StringSliceCmd
func (*ClusterClient) SInterStore ¶
func (*ClusterClient) SMembers ¶
func (c *ClusterClient) SMembers(key string) *StringSliceCmd
Redis `SMEMBERS key` command output as a slice
func (*ClusterClient) SMembersMap ¶
func (c *ClusterClient) SMembersMap(key string) *StringStructMapCmd
Redis `SMEMBERS key` command output as a map
func (*ClusterClient) SPopN ¶
func (c *ClusterClient) SPopN(key string, count int64) *StringSliceCmd
Redis `SPOP key count` command.
func (*ClusterClient) SRandMember ¶
Redis `SRANDMEMBER key` command.
func (*ClusterClient) SRandMemberN ¶
func (c *ClusterClient) SRandMemberN(key string, count int64) *StringSliceCmd
Redis `SRANDMEMBER key count` command.
func (*ClusterClient) SUnion ¶
func (c *ClusterClient) SUnion(keys ...string) *StringSliceCmd
func (*ClusterClient) SUnionStore ¶
func (*ClusterClient) ScriptExists ¶
func (c *ClusterClient) ScriptExists(hashes ...string) *BoolSliceCmd
func (*ClusterClient) ScriptFlush ¶
func (c *ClusterClient) ScriptFlush() *StatusCmd
func (*ClusterClient) ScriptKill ¶
func (c *ClusterClient) ScriptKill() *StatusCmd
func (*ClusterClient) ScriptLoad ¶
func (*ClusterClient) Set ¶
Redis `SET key value [expiration]` command.
Use expiration for `SETEX`-like behavior. Zero expiration means the key has no expiration time.
func (*ClusterClient) SetNX ¶
Redis `SET key value [expiration] NX` command.
Zero expiration means the key has no expiration time.
func (*ClusterClient) SetXX ¶
Redis `SET key value [expiration] XX` command.
Zero expiration means the key has no expiration time.
func (*ClusterClient) ShutdownNoSave ¶
func (c *ClusterClient) ShutdownNoSave() *StatusCmd
func (*ClusterClient) ShutdownSave ¶
func (c *ClusterClient) ShutdownSave() *StatusCmd
func (*ClusterClient) Sort ¶
func (c *ClusterClient) Sort(key string, sort *Sort) *StringSliceCmd
func (*ClusterClient) SortInterfaces ¶
func (*ClusterClient) Subscribe ¶
func (c *ClusterClient) Subscribe(channels ...string) *PubSub
Subscribe subscribes the client to the specified channels. Channels can be omitted to create empty subscription.
func (*ClusterClient) TTL ¶
func (c *ClusterClient) TTL(key string) *DurationCmd
func (*ClusterClient) TxPipeline ¶
func (c *ClusterClient) TxPipeline() Pipeliner
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
func (*ClusterClient) TxPipelined ¶
func (c *ClusterClient) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error)
func (*ClusterClient) Watch ¶
func (c *ClusterClient) Watch(fn func(*Tx) error, keys ...string) error
func (*ClusterClient) WithContext ¶
func (c *ClusterClient) WithContext(ctx context.Context) *ClusterClient
func (*ClusterClient) WrapProcess ¶
func (c *ClusterClient) WrapProcess( fn func(oldProcess func(Cmder) error) func(Cmder) error, )
func (*ClusterClient) WrapProcessPipeline ¶
func (c *ClusterClient) WrapProcessPipeline( fn func(oldProcess func([]Cmder) error) func([]Cmder) error, )
func (*ClusterClient) XClaim ¶
func (c *ClusterClient) XClaim(a *XClaimArgs) *XMessageSliceCmd
func (*ClusterClient) XClaimJustID ¶
func (c *ClusterClient) XClaimJustID(a *XClaimArgs) *StringSliceCmd
func (*ClusterClient) XGroupCreate ¶
func (*ClusterClient) XGroupCreateMkStream ¶
func (*ClusterClient) XGroupDelConsumer ¶
func (*ClusterClient) XGroupDestroy ¶
func (*ClusterClient) XGroupSetID ¶
func (*ClusterClient) XPending ¶
func (c *ClusterClient) XPending(stream, group string) *XPendingCmd
func (*ClusterClient) XPendingExt ¶
func (c *ClusterClient) XPendingExt(a *XPendingExtArgs) *XPendingExtCmd
func (*ClusterClient) XRange ¶
func (c *ClusterClient) XRange(stream, start, stop string) *XMessageSliceCmd
func (*ClusterClient) XRangeN ¶
func (c *ClusterClient) XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
func (*ClusterClient) XRead ¶
func (c *ClusterClient) XRead(a *XReadArgs) *XStreamSliceCmd
func (*ClusterClient) XReadGroup ¶
func (c *ClusterClient) XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd
func (*ClusterClient) XReadStreams ¶
func (c *ClusterClient) XReadStreams(streams ...string) *XStreamSliceCmd
func (*ClusterClient) XRevRange ¶
func (c *ClusterClient) XRevRange(stream, start, stop string) *XMessageSliceCmd
func (*ClusterClient) XRevRangeN ¶
func (c *ClusterClient) XRevRangeN(stream, start, stop string, count int64) *XMessageSliceCmd
func (*ClusterClient) XTrimApprox ¶
func (*ClusterClient) ZInterStore ¶
func (*ClusterClient) ZRange ¶
func (c *ClusterClient) ZRange(key string, start, stop int64) *StringSliceCmd
func (*ClusterClient) ZRangeByLex ¶
func (c *ClusterClient) ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
func (*ClusterClient) ZRangeByScore ¶
func (c *ClusterClient) ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
func (*ClusterClient) ZRangeByScoreWithScores ¶
func (*ClusterClient) ZRangeWithScores ¶
func (*ClusterClient) ZRemRangeByLex ¶
func (*ClusterClient) ZRemRangeByRank ¶
func (*ClusterClient) ZRemRangeByScore ¶
func (*ClusterClient) ZRevRange ¶
func (c *ClusterClient) ZRevRange(key string, start, stop int64) *StringSliceCmd
func (*ClusterClient) ZRevRangeByLex ¶
func (c *ClusterClient) ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd
func (*ClusterClient) ZRevRangeByScore ¶
func (c *ClusterClient) ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd
func (*ClusterClient) ZRevRangeByScoreWithScores ¶
func (*ClusterClient) ZRevRangeWithScores ¶
type ClusterNode ¶
type ClusterOptions ¶
type ClusterOptions struct { // A seed list of host:port addresses of cluster nodes. Addrs []string // The maximum number of retries before giving up. Command is retried // on network errors and MOVED/ASK redirects. // Default is 8 retries. MaxRedirects int // Enables read-only commands on slave nodes. ReadOnly bool // Allows routing read-only commands to the closest master or slave node. // It automatically enables ReadOnly. RouteByLatency bool // Allows routing read-only commands to the random master or slave node. // It automatically enables ReadOnly. RouteRandomly bool // Optional function that returns cluster slots information. // It is useful to manually create cluster of standalone Redis servers // and load-balance read/write operations between master and slaves. // It can use service like ZooKeeper to maintain configuration information // and Cluster.ReloadState to manually trigger state reloading. ClusterSlots func() ([]ClusterSlot, error) // Optional hook that is called when a new node is created. OnNewNode func(*Client) OnConnect func(*Conn) error Password string MaxRetries int MinRetryBackoff time.Duration MaxRetryBackoff time.Duration DialTimeout time.Duration ReadTimeout time.Duration WriteTimeout time.Duration // PoolSize applies per cluster node and not for the whole cluster. PoolSize int MinIdleConns int MaxConnAge time.Duration PoolTimeout time.Duration IdleTimeout time.Duration IdleCheckFrequency time.Duration TLSConfig *tls.Config }
ClusterOptions are used to configure a cluster client and should be passed to NewClusterClient.
type ClusterSlot ¶
type ClusterSlot struct { Start int End int Nodes []ClusterNode }
type ClusterSlotsCmd ¶
type ClusterSlotsCmd struct {
// contains filtered or unexported fields
}
func NewClusterSlotsCmd ¶
func NewClusterSlotsCmd(args ...interface{}) *ClusterSlotsCmd
func NewClusterSlotsCmdResult ¶
func NewClusterSlotsCmdResult(val []ClusterSlot, err error) *ClusterSlotsCmd
NewClusterSlotsCmdResult returns a ClusterSlotsCmd initialised with val and err for testing
func (*ClusterSlotsCmd) Result ¶
func (cmd *ClusterSlotsCmd) Result() ([]ClusterSlot, error)
func (*ClusterSlotsCmd) String ¶
func (cmd *ClusterSlotsCmd) String() string
func (*ClusterSlotsCmd) Val ¶
func (cmd *ClusterSlotsCmd) Val() []ClusterSlot
type Cmd ¶
type Cmd struct {
// contains filtered or unexported fields
}
func NewCmdResult ¶
NewCmdResult returns a Cmd initialised with val and err for testing
type Cmdable ¶
type Cmdable interface { Pipeline() Pipeliner Pipelined(fn func(Pipeliner) error) ([]Cmder, error) TxPipelined(fn func(Pipeliner) error) ([]Cmder, error) TxPipeline() Pipeliner Command() *CommandsInfoCmd ClientGetName() *StringCmd Echo(message interface{}) *StringCmd Ping() *StatusCmd Quit() *StatusCmd Del(keys ...string) *IntCmd Unlink(keys ...string) *IntCmd Dump(key string) *StringCmd Exists(keys ...string) *IntCmd Expire(key string, expiration time.Duration) *BoolCmd ExpireAt(key string, tm time.Time) *BoolCmd Keys(pattern string) *StringSliceCmd Migrate(host, port, key string, db int64, timeout time.Duration) *StatusCmd Move(key string, db int64) *BoolCmd ObjectRefCount(key string) *IntCmd ObjectEncoding(key string) *StringCmd ObjectIdleTime(key string) *DurationCmd Persist(key string) *BoolCmd PExpire(key string, expiration time.Duration) *BoolCmd PExpireAt(key string, tm time.Time) *BoolCmd PTTL(key string) *DurationCmd RandomKey() *StringCmd Rename(key, newkey string) *StatusCmd RenameNX(key, newkey string) *BoolCmd Restore(key string, ttl time.Duration, value string) *StatusCmd RestoreReplace(key string, ttl time.Duration, value string) *StatusCmd Sort(key string, sort *Sort) *StringSliceCmd SortStore(key, store string, sort *Sort) *IntCmd SortInterfaces(key string, sort *Sort) *SliceCmd Touch(keys ...string) *IntCmd TTL(key string) *DurationCmd Type(key string) *StatusCmd Scan(cursor uint64, match string, count int64) *ScanCmd SScan(key string, cursor uint64, match string, count int64) *ScanCmd HScan(key string, cursor uint64, match string, count int64) *ScanCmd ZScan(key string, cursor uint64, match string, count int64) *ScanCmd Append(key, value string) *IntCmd BitCount(key string, bitCount *BitCount) *IntCmd BitOpAnd(destKey string, keys ...string) *IntCmd BitOpOr(destKey string, keys ...string) *IntCmd BitOpXor(destKey string, keys ...string) *IntCmd BitOpNot(destKey string, key string) *IntCmd BitPos(key string, bit int64, pos ...int64) *IntCmd Decr(key string) *IntCmd DecrBy(key string, decrement int64) *IntCmd Get(key string) *StringCmd GetBit(key string, offset int64) *IntCmd GetRange(key string, start, end int64) *StringCmd GetSet(key string, value interface{}) *StringCmd Incr(key string) *IntCmd IncrBy(key string, value int64) *IntCmd IncrByFloat(key string, value float64) *FloatCmd MGet(keys ...string) *SliceCmd MSet(pairs ...interface{}) *StatusCmd MSetNX(pairs ...interface{}) *BoolCmd Set(key string, value interface{}, expiration time.Duration) *StatusCmd SetBit(key string, offset int64, value int) *IntCmd SetNX(key string, value interface{}, expiration time.Duration) *BoolCmd SetXX(key string, value interface{}, expiration time.Duration) *BoolCmd SetRange(key string, offset int64, value string) *IntCmd StrLen(key string) *IntCmd HDel(key string, fields ...string) *IntCmd HExists(key, field string) *BoolCmd HGet(key, field string) *StringCmd HGetAll(key string) *StringStringMapCmd HIncrBy(key, field string, incr int64) *IntCmd HIncrByFloat(key, field string, incr float64) *FloatCmd HKeys(key string) *StringSliceCmd HLen(key string) *IntCmd HMGet(key string, fields ...string) *SliceCmd HMSet(key string, fields map[string]interface{}) *StatusCmd HSet(key, field string, value interface{}) *BoolCmd HSetNX(key, field string, value interface{}) *BoolCmd HVals(key string) *StringSliceCmd BLPop(timeout time.Duration, keys ...string) *StringSliceCmd BRPop(timeout time.Duration, keys ...string) *StringSliceCmd BRPopLPush(source, destination string, timeout time.Duration) *StringCmd LIndex(key string, index int64) *StringCmd LInsert(key, op string, pivot, value interface{}) *IntCmd LInsertBefore(key string, pivot, value interface{}) *IntCmd LInsertAfter(key string, pivot, value interface{}) *IntCmd LLen(key string) *IntCmd LPop(key string) *StringCmd LPush(key string, values ...interface{}) *IntCmd LPushX(key string, value interface{}) *IntCmd LRange(key string, start, stop int64) *StringSliceCmd LRem(key string, count int64, value interface{}) *IntCmd LSet(key string, index int64, value interface{}) *StatusCmd LTrim(key string, start, stop int64) *StatusCmd RPop(key string) *StringCmd RPopLPush(source, destination string) *StringCmd RPush(key string, values ...interface{}) *IntCmd RPushX(key string, value interface{}) *IntCmd SAdd(key string, members ...interface{}) *IntCmd SCard(key string) *IntCmd SDiff(keys ...string) *StringSliceCmd SDiffStore(destination string, keys ...string) *IntCmd SInter(keys ...string) *StringSliceCmd SInterStore(destination string, keys ...string) *IntCmd SIsMember(key string, member interface{}) *BoolCmd SMembers(key string) *StringSliceCmd SMembersMap(key string) *StringStructMapCmd SMove(source, destination string, member interface{}) *BoolCmd SPop(key string) *StringCmd SPopN(key string, count int64) *StringSliceCmd SRandMember(key string) *StringCmd SRandMemberN(key string, count int64) *StringSliceCmd SRem(key string, members ...interface{}) *IntCmd SUnion(keys ...string) *StringSliceCmd SUnionStore(destination string, keys ...string) *IntCmd XAdd(a *XAddArgs) *StringCmd XDel(stream string, ids ...string) *IntCmd XLen(stream string) *IntCmd XRange(stream, start, stop string) *XMessageSliceCmd XRangeN(stream, start, stop string, count int64) *XMessageSliceCmd XRevRange(stream string, start, stop string) *XMessageSliceCmd XRevRangeN(stream string, start, stop string, count int64) *XMessageSliceCmd XRead(a *XReadArgs) *XStreamSliceCmd XReadStreams(streams ...string) *XStreamSliceCmd XGroupCreate(stream, group, start string) *StatusCmd XGroupCreateMkStream(stream, group, start string) *StatusCmd XGroupSetID(stream, group, start string) *StatusCmd XGroupDestroy(stream, group string) *IntCmd XGroupDelConsumer(stream, group, consumer string) *IntCmd XReadGroup(a *XReadGroupArgs) *XStreamSliceCmd XAck(stream, group string, ids ...string) *IntCmd XPending(stream, group string) *XPendingCmd XPendingExt(a *XPendingExtArgs) *XPendingExtCmd XClaim(a *XClaimArgs) *XMessageSliceCmd XClaimJustID(a *XClaimArgs) *StringSliceCmd XTrim(key string, maxLen int64) *IntCmd XTrimApprox(key string, maxLen int64) *IntCmd BZPopMax(timeout time.Duration, keys ...string) *ZWithKeyCmd BZPopMin(timeout time.Duration, keys ...string) *ZWithKeyCmd ZAdd(key string, members ...Z) *IntCmd ZAddNX(key string, members ...Z) *IntCmd ZAddXX(key string, members ...Z) *IntCmd ZAddCh(key string, members ...Z) *IntCmd ZAddNXCh(key string, members ...Z) *IntCmd ZAddXXCh(key string, members ...Z) *IntCmd ZIncr(key string, member Z) *FloatCmd ZIncrNX(key string, member Z) *FloatCmd ZIncrXX(key string, member Z) *FloatCmd ZCard(key string) *IntCmd ZCount(key, min, max string) *IntCmd ZLexCount(key, min, max string) *IntCmd ZIncrBy(key string, increment float64, member string) *FloatCmd ZInterStore(destination string, store ZStore, keys ...string) *IntCmd ZPopMax(key string, count ...int64) *ZSliceCmd ZPopMin(key string, count ...int64) *ZSliceCmd ZRange(key string, start, stop int64) *StringSliceCmd ZRangeWithScores(key string, start, stop int64) *ZSliceCmd ZRangeByScore(key string, opt ZRangeBy) *StringSliceCmd ZRangeByLex(key string, opt ZRangeBy) *StringSliceCmd ZRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd ZRank(key, member string) *IntCmd ZRem(key string, members ...interface{}) *IntCmd ZRemRangeByRank(key string, start, stop int64) *IntCmd ZRemRangeByScore(key, min, max string) *IntCmd ZRemRangeByLex(key, min, max string) *IntCmd ZRevRange(key string, start, stop int64) *StringSliceCmd ZRevRangeWithScores(key string, start, stop int64) *ZSliceCmd ZRevRangeByScore(key string, opt ZRangeBy) *StringSliceCmd ZRevRangeByLex(key string, opt ZRangeBy) *StringSliceCmd ZRevRangeByScoreWithScores(key string, opt ZRangeBy) *ZSliceCmd ZRevRank(key, member string) *IntCmd ZScore(key, member string) *FloatCmd ZUnionStore(dest string, store ZStore, keys ...string) *IntCmd PFAdd(key string, els ...interface{}) *IntCmd PFCount(keys ...string) *IntCmd PFMerge(dest string, keys ...string) *StatusCmd BgRewriteAOF() *StatusCmd BgSave() *StatusCmd ClientKill(ipPort string) *StatusCmd ClientKillByFilter(keys ...string) *IntCmd ClientList() *StringCmd ClientPause(dur time.Duration) *BoolCmd ClientID() *IntCmd ConfigGet(parameter string) *SliceCmd ConfigResetStat() *StatusCmd ConfigSet(parameter, value string) *StatusCmd ConfigRewrite() *StatusCmd DBSize() *IntCmd FlushAll() *StatusCmd FlushAllAsync() *StatusCmd FlushDB() *StatusCmd FlushDBAsync() *StatusCmd Info(section ...string) *StringCmd LastSave() *IntCmd Save() *StatusCmd Shutdown() *StatusCmd ShutdownSave() *StatusCmd ShutdownNoSave() *StatusCmd SlaveOf(host, port string) *StatusCmd Time() *TimeCmd Eval(script string, keys []string, args ...interface{}) *Cmd EvalSha(sha1 string, keys []string, args ...interface{}) *Cmd ScriptExists(hashes ...string) *BoolSliceCmd ScriptFlush() *StatusCmd ScriptKill() *StatusCmd ScriptLoad(script string) *StringCmd DebugObject(key string) *StringCmd Publish(channel string, message interface{}) *IntCmd PubSubChannels(pattern string) *StringSliceCmd PubSubNumSub(channels ...string) *StringIntMapCmd PubSubNumPat() *IntCmd ClusterSlots() *ClusterSlotsCmd ClusterNodes() *StringCmd ClusterMeet(host, port string) *StatusCmd ClusterForget(nodeID string) *StatusCmd ClusterReplicate(nodeID string) *StatusCmd ClusterResetSoft() *StatusCmd ClusterResetHard() *StatusCmd ClusterInfo() *StringCmd ClusterKeySlot(key string) *IntCmd ClusterGetKeysInSlot(slot int, count int) *StringSliceCmd ClusterCountFailureReports(nodeID string) *IntCmd ClusterCountKeysInSlot(slot int) *IntCmd ClusterDelSlots(slots ...int) *StatusCmd ClusterDelSlotsRange(min, max int) *StatusCmd ClusterSaveConfig() *StatusCmd ClusterSlaves(nodeID string) *StringSliceCmd ClusterFailover() *StatusCmd ClusterAddSlots(slots ...int) *StatusCmd ClusterAddSlotsRange(min, max int) *StatusCmd GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmd GeoPos(key string, members ...string) *GeoPosCmd GeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd GeoRadiusRO(key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd GeoRadiusByMember(key, member string, query *GeoRadiusQuery) *GeoLocationCmd GeoRadiusByMemberRO(key, member string, query *GeoRadiusQuery) *GeoLocationCmd GeoDist(key string, member1, member2, unit string) *FloatCmd GeoHash(key string, members ...string) *StringSliceCmd ReadOnly() *StatusCmd ReadWrite() *StatusCmd MemoryUsage(key string, samples ...int) *IntCmd }
type CommandInfo ¶
type CommandsInfoCmd ¶
type CommandsInfoCmd struct {
// contains filtered or unexported fields
}
func NewCommandsInfoCmd ¶
func NewCommandsInfoCmd(args ...interface{}) *CommandsInfoCmd
func NewCommandsInfoCmdResult ¶
func NewCommandsInfoCmdResult(val map[string]*CommandInfo, err error) *CommandsInfoCmd
NewCommandsInfoCmdResult returns a CommandsInfoCmd initialised with val and err for testing
func (*CommandsInfoCmd) Result ¶
func (cmd *CommandsInfoCmd) Result() (map[string]*CommandInfo, error)
func (*CommandsInfoCmd) String ¶
func (cmd *CommandsInfoCmd) String() string
func (*CommandsInfoCmd) Val ¶
func (cmd *CommandsInfoCmd) Val() map[string]*CommandInfo
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn is like Client, but its pool contains single connection.
func (*Conn) ClientSetName ¶
ClientSetName assigns a name to the connection.
func (*Conn) Close ¶
func (c *Conn) Close() error
Close closes the client, releasing any open resources.
It is rare to Close a Client, as the Client is meant to be long-lived and shared between many goroutines.
func (*Conn) Do ¶
func (c *Conn) Do(args ...interface{}) *Cmd
Do creates a Cmd from the args and processes the cmd.
func (*Conn) TxPipeline ¶
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
func (*Conn) WrapProcess ¶
WrapProcess wraps function that processes Redis commands.
type DurationCmd ¶
type DurationCmd struct {
// contains filtered or unexported fields
}
func NewDurationCmd ¶
func NewDurationCmd(precision time.Duration, args ...interface{}) *DurationCmd
func NewDurationResult ¶
func NewDurationResult(val time.Duration, err error) *DurationCmd
NewDurationResult returns a DurationCmd initialised with val and err for testing
func (*DurationCmd) String ¶
func (cmd *DurationCmd) String() string
func (*DurationCmd) Val ¶
func (cmd *DurationCmd) Val() time.Duration
type FailoverOptions ¶
type FailoverOptions struct { // The master name. MasterName string // A seed list of host:port addresses of sentinel nodes. SentinelAddrs []string OnConnect func(*Conn) error Password string DB int MaxRetries int MinRetryBackoff time.Duration MaxRetryBackoff time.Duration DialTimeout time.Duration ReadTimeout time.Duration WriteTimeout time.Duration PoolSize int MinIdleConns int MaxConnAge time.Duration PoolTimeout time.Duration IdleTimeout time.Duration IdleCheckFrequency time.Duration TLSConfig *tls.Config }
FailoverOptions are used to configure a failover client and should be passed to NewFailoverClient.
type FloatCmd ¶
type FloatCmd struct {
// contains filtered or unexported fields
}
func NewFloatCmd ¶
func NewFloatCmd(args ...interface{}) *FloatCmd
func NewFloatResult ¶
NewFloatResult returns a FloatCmd initialised with val and err for testing
type GeoLocation ¶
GeoLocation is used with GeoAdd to add geospatial location.
type GeoLocationCmd ¶
type GeoLocationCmd struct {
// contains filtered or unexported fields
}
func NewGeoLocationCmd ¶
func NewGeoLocationCmd(q *GeoRadiusQuery, args ...interface{}) *GeoLocationCmd
func NewGeoLocationCmdResult ¶
func NewGeoLocationCmdResult(val []GeoLocation, err error) *GeoLocationCmd
NewGeoLocationCmdResult returns a GeoLocationCmd initialised with val and err for testing
func (*GeoLocationCmd) Result ¶
func (cmd *GeoLocationCmd) Result() ([]GeoLocation, error)
func (*GeoLocationCmd) String ¶
func (cmd *GeoLocationCmd) String() string
func (*GeoLocationCmd) Val ¶
func (cmd *GeoLocationCmd) Val() []GeoLocation
type GeoPosCmd ¶
type GeoPosCmd struct {
// contains filtered or unexported fields
}
func NewGeoPosCmd ¶
func NewGeoPosCmd(args ...interface{}) *GeoPosCmd
type GeoRadiusQuery ¶
type GeoRadiusQuery struct { Radius float64 // Can be m, km, ft, or mi. Default is km. Unit string WithCoord bool WithDist bool WithGeoHash bool Count int // Can be ASC or DESC. Default is no sort order. Sort string Store string StoreDist string }
GeoRadiusQuery is used with GeoRadius to query geospatial index.
type IntCmd ¶
type IntCmd struct {
// contains filtered or unexported fields
}
func NewIntResult ¶
NewIntResult returns an IntCmd initialised with val and err for testing
type Limiter ¶
type Limiter interface { // Allow returns a nil if operation is allowed or an error otherwise. // If operation is allowed client must report the result of operation // whether is a success or a failure. Allow() error // ReportResult reports the result of previously allowed operation. // nil indicates a success, non-nil error indicates a failure. ReportResult(result error) }
Limiter is the interface of a rate limiter or a circuit breaker.
type Options ¶
type Options struct { // The network type, either tcp or unix. // Default is tcp. Network string // host:port address. Addr string // Dialer creates new network connection and has priority over // Network and Addr options. Dialer func() (net.Conn, error) // Hook that is called when new connection is established. OnConnect func(*Conn) error // Optional password. Must match the password specified in the // requirepass server configuration option. Password string // Database to be selected after connecting to the server. DB int // Maximum number of retries before giving up. // Default is to not retry failed commands. MaxRetries int // Minimum backoff between each retry. // Default is 8 milliseconds; -1 disables backoff. MinRetryBackoff time.Duration // Maximum backoff between each retry. // Default is 512 milliseconds; -1 disables backoff. MaxRetryBackoff time.Duration // Dial timeout for establishing new connections. // Default is 5 seconds. DialTimeout time.Duration // Timeout for socket reads. If reached, commands will fail // with a timeout instead of blocking. Use value -1 for no timeout and 0 for default. // Default is 3 seconds. ReadTimeout time.Duration // Timeout for socket writes. If reached, commands will fail // with a timeout instead of blocking. // Default is ReadTimeout. WriteTimeout time.Duration // Maximum number of socket connections. // Default is 10 connections per every CPU as reported by runtime.NumCPU. PoolSize int // Minimum number of idle connections which is useful when establishing // new connection is slow. MinIdleConns int // Connection age at which client retires (closes) the connection. // Default is to not close aged connections. MaxConnAge time.Duration // Amount of time client waits for connection if all connections // are busy before returning an error. // Default is ReadTimeout + 1 second. PoolTimeout time.Duration // Amount of time after which client closes idle connections. // Should be less than server's timeout. // Default is 5 minutes. -1 disables idle timeout check. IdleTimeout time.Duration // Frequency of idle checks made by idle connections reaper. // Default is 1 minute. -1 disables idle connections reaper, // but idle connections are still discarded by the client // if IdleTimeout is set. IdleCheckFrequency time.Duration // TLS Config to use. When set TLS will be negotiated. TLSConfig *tls.Config // contains filtered or unexported fields }
func ParseURL ¶
ParseURL parses an URL into Options that can be used to connect to Redis.
Example ¶
package main import ( "fmt" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client func init() { redisdb = redis.NewClient(&redis.Options{ Addr: ":6379", DialTimeout: 10 * time.Second, ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, PoolSize: 10, PoolTimeout: 30 * time.Second, }) } func main() { opt, err := redis.ParseURL("redis://:qwerty@localhost:6379/1") if err != nil { panic(err) } fmt.Println("addr is", opt.Addr) fmt.Println("db is", opt.DB) fmt.Println("password is", opt.Password) // Create client as usually. _ = redis.NewClient(opt) }
Output: addr is localhost:6379 db is 1 password is qwerty
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline implements pipelining as described in http://redis.io/topics/pipelining. It's safe for concurrent use by multiple goroutines.
Example (Instrumentation) ¶
package main import ( "fmt" "github.com/go-redis/redis" ) func main() { redisdb := redis.NewClient(&redis.Options{ Addr: ":6379", }) redisdb.WrapProcessPipeline(func(old func([]redis.Cmder) error) func([]redis.Cmder) error { return func(cmds []redis.Cmder) error { fmt.Printf("pipeline starting processing: %v\n", cmds) err := old(cmds) fmt.Printf("pipeline finished processing: %v\n", cmds) return err } }) redisdb.Pipelined(func(pipe redis.Pipeliner) error { pipe.Ping() pipe.Ping() return nil }) }
Output: pipeline starting processing: [ping: ping: ] pipeline finished processing: [ping: PONG ping: PONG]
func (*Pipeline) ClientSetName ¶
ClientSetName assigns a name to the connection.
func (*Pipeline) Exec ¶
Exec executes all previously queued commands using one client-server roundtrip.
Exec always returns list of commands and error of the first failed command if any.
func (*Pipeline) TxPipeline ¶
type Pipeliner ¶
type Pipeliner interface { StatefulCmdable Do(args ...interface{}) *Cmd Process(cmd Cmder) error Close() error Discard() error Exec() ([]Cmder, error) }
Pipeliner is an mechanism to realise Redis Pipeline technique.
Pipelining is a technique to extremely speed up processing by packing operations to batches, send them at once to Redis and read a replies in a singe step. See https://redis.io/topics/pipelining
Pay attention, that Pipeline is not a transaction, so you can get unexpected results in case of big pipelines and small read/write timeouts. Redis client has retransmission logic in case of timeouts, pipeline can be retransmitted and commands can be executed more then once. To avoid this: it is good idea to use reasonable bigger read/write timeouts depends of your batch size and/or use TxPipeline.