redis

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2024 License: BSD-2-Clause Imports: 31 Imported by: 1

README

Valkey client for Go

About

A fork of Redis Go SDK to support Valkey.io

Documentation

Resources

Ecosystem

This client also works with Kvrocks, a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol.

Features

Installation

go-redis supports 2 last Go versions and requires a Go version with modules support. So make sure to initialize a Go module:

go mod init github.com/my/repo

Then install go-valkey:

go get github.com/Desquaredp/go-valkey

Quickstart

import (
    "context"
    "fmt"

    "github.com/Desquaredp/go-valkey"
)

var ctx = context.Background()

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

    err := rdb.Set(ctx, "key", "value", 0).Err()
    if err != nil {
        panic(err)
    }

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

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

The above can be modified to specify the version of the RESP protocol by adding the protocol option to the Options struct:

    rdb := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
        Protocol: 3, // specify 2 for RESP 2 or 3 for RESP 3
    })

Connecting via a redis url

go-redis also supports connecting via the redis uri specification. The example below demonstrates how the connection can easily be configured using a string, adhering to this specification.

import (
    "context"
    "fmt"

    "github.com/Desquaredp/go-valkey"
)

func ExampleClient() *redis.Client {
    url := "redis://user:password@localhost:6379/0?protocol=3"
    opts, err := redis.ParseURL(url)
    if err != nil {
        panic(err)
    }

    return redis.NewClient(opts)
}

Advanced Configuration

go-redis supports extending the client identification phase to allow projects to send their own custom client identification.

Default Client Identification

By default, go-redis automatically sends the client library name and version during the connection process. This feature is available in redis-server as of version 7.2. As a result, the command is "fire and forget", meaning it should fail silently, in the case that the redis server does not support this feature.

Disabling Identity Verification

When connection identity verification is not required or needs to be explicitly disabled, a DisableIndentity configuration option exists. In V10 of this library, DisableIndentity will become DisableIdentity in order to fix the associated typo.

To disable verification, set the DisableIndentity option to true in the Redis client options:

rdb := redis.NewClient(&redis.Options{
    Addr:            "localhost:6379",
    Password:        "",
    DB:              0,
    DisableIndentity: true, // Disable set-info on connect
})

Look and feel

Some corner cases:

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

// SET key value keepttl NX
set, err := rdb.SetNX(ctx, "key", "value", redis.KeepTTL).Result()

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

// ZRANGEBYSCORE zset -inf +inf WITHSCORES LIMIT 0 2
vals, err := rdb.ZRangeByScoreWithScores(ctx, "zset", &redis.ZRangeBy{
    Min: "-inf",
    Max: "+inf",
    Offset: 0,
    Count: 2,
}).Result()

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

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

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

Run the test

go-redis will start a redis-server and run the test cases.

The paths of redis-server bin file and redis config file are defined in main_test.go:

var (
	redisServerBin, _  = filepath.Abs(filepath.Join("testdata", "redis", "src", "redis-server"))
	redisServerConf, _ = filepath.Abs(filepath.Join("testdata", "redis", "redis.conf"))
)

For local testing, you can change the variables to refer to your local files, or create a soft link to the corresponding folder for redis-server and copy the config file to testdata/redis/:

ln -s /usr/bin/redis-server ./go-redis/testdata/redis/src
cp ./go-redis/testdata/redis.conf ./go-redis/testdata/redis/

Lastly, run:

go test

Another option is to run your specific tests with an already running redis. The example below, tests against a redis running on port 9999.:

REDIS_PORT=9999 go test <your options>

Contributors

Thanks to all the people who already contributed!

Documentation

Overview

Package redis implements a Redis client.

Example (CustomCommand)
Get := func(ctx context.Context, rdb *redis.Client, key string) *redis.StringCmd {
	cmd := redis.NewStringCmd(ctx, "get", key)
	rdb.Process(ctx, cmd)
	return cmd
}

v, err := Get(ctx, rdb, "key_does_not_exist").Result()
fmt.Printf("%q %s", v, err)
Output:

"" redis: nil
Example (CustomCommand2)
v, err := rdb.Do(ctx, "get", "key_does_not_exist").Text()
fmt.Printf("%q %s", v, err)
Output:

"" redis: nil
Example (Instrumentation)
rdb := redis.NewClient(&redis.Options{
	Addr: ":6379",
})
rdb.AddHook(redisHook{})

rdb.Ping(ctx)
Output:

starting processing: <ping: >
dialing tcp :6379
finished dialing tcp :6379
finished processing: <ping: PONG>

Index

Examples

Constants

View Source
const (
	Invalid = Aggregator(iota)
	Avg
	Sum
	Min
	Max
	Range
	Count
	First
	Last
	StdP
	StdS
	VarP
	VarS
	Twa
)
View Source
const BitCountIndexBit string = "BIT"
View Source
const BitCountIndexByte string = "BYTE"
View Source
const KeepTTL = -1

KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error. For example:

rdb.Set(ctx, key, value, redis.KeepTTL)
View Source
const Nil = proto.Nil

Nil reply returned by Redis when key does not exist.

View Source
const TxFailedErr = proto.RedisError("redis: transaction failed")

TxFailedErr transaction redis failed.

Variables

View Source
var ErrClosed = pool.ErrClosed

ErrClosed performs any operation on the closed client will return this error.

Functions

func HasErrorPrefix

func HasErrorPrefix(err error, prefix string) bool

HasErrorPrefix checks if the err is a Redis error and the message contains a prefix.

func NewDialer

func NewDialer(opt *Options) func(context.Context, string, string) (net.Conn, error)

NewDialer returns a function that will be used as the default dialer when none is specified in Options.Dialer.

func SetLogger

func SetLogger(logger internal.Logging)

SetLogger set custom log

func Version

func Version() string

Version is the current release version.

Types

type ACLCmdable

type ACLCmdable interface {
	ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
	ACLLog(ctx context.Context, count int64) *ACLLogCmd
	ACLLogReset(ctx context.Context) *StatusCmd
}

type ACLLogCmd

type ACLLogCmd struct {
	// contains filtered or unexported fields
}

func NewACLLogCmd

func NewACLLogCmd(ctx context.Context, args ...interface{}) *ACLLogCmd

func (*ACLLogCmd) Args

func (cmd *ACLLogCmd) Args() []interface{}

func (*ACLLogCmd) Err

func (cmd *ACLLogCmd) Err() error

func (*ACLLogCmd) FullName

func (cmd *ACLLogCmd) FullName() string

func (*ACLLogCmd) Name

func (cmd *ACLLogCmd) Name() string

func (*ACLLogCmd) Result

func (cmd *ACLLogCmd) Result() ([]*ACLLogEntry, error)

func (*ACLLogCmd) SetErr

func (cmd *ACLLogCmd) SetErr(e error)

func (*ACLLogCmd) SetFirstKeyPos

func (cmd *ACLLogCmd) SetFirstKeyPos(keyPos int8)

func (*ACLLogCmd) SetVal

func (cmd *ACLLogCmd) SetVal(val []*ACLLogEntry)

func (*ACLLogCmd) String

func (cmd *ACLLogCmd) String() string

func (*ACLLogCmd) Val

func (cmd *ACLLogCmd) Val() []*ACLLogEntry

type ACLLogEntry

type ACLLogEntry struct {
	Count                int64
	Reason               string
	Context              string
	Object               string
	Username             string
	AgeSeconds           float64
	ClientInfo           *ClientInfo
	EntryID              int64
	TimestampCreated     int64
	TimestampLastUpdated int64
}

type Aggregator

type Aggregator int

func (Aggregator) String

func (a Aggregator) String() string

type BFInfo

type BFInfo struct {
	Capacity      int64
	Size          int64
	Filters       int64
	ItemsInserted int64
	ExpansionRate int64
}

type BFInfoCmd

type BFInfoCmd struct {
	// contains filtered or unexported fields
}

func NewBFInfoCmd

func NewBFInfoCmd(ctx context.Context, args ...interface{}) *BFInfoCmd

func (*BFInfoCmd) Args

func (cmd *BFInfoCmd) Args() []interface{}

func (*BFInfoCmd) Err

func (cmd *BFInfoCmd) Err() error

func (*BFInfoCmd) FullName

func (cmd *BFInfoCmd) FullName() string

func (*BFInfoCmd) Name

func (cmd *BFInfoCmd) Name() string

func (*BFInfoCmd) Result

func (cmd *BFInfoCmd) Result() (BFInfo, error)

func (*BFInfoCmd) SetErr

func (cmd *BFInfoCmd) SetErr(e error)

func (*BFInfoCmd) SetFirstKeyPos

func (cmd *BFInfoCmd) SetFirstKeyPos(keyPos int8)

func (*BFInfoCmd) SetVal

func (cmd *BFInfoCmd) SetVal(val BFInfo)

func (*BFInfoCmd) String

func (cmd *BFInfoCmd) String() string

func (*BFInfoCmd) Val

func (cmd *BFInfoCmd) Val() BFInfo

type BFInsertOptions

type BFInsertOptions struct {
	Capacity   int64
	Error      float64
	Expansion  int64
	NonScaling bool
	NoCreate   bool
}

type BFReserveOptions

type BFReserveOptions struct {
	Capacity   int64
	Error      float64
	Expansion  int64
	NonScaling bool
}

type BitCount

type BitCount struct {
	Start, End int64
	Unit       string // BYTE(default) | BIT
}

type BitMapCmdable

type BitMapCmdable interface {
	GetBit(ctx context.Context, key string, offset int64) *IntCmd
	SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
	BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
	BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
	BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
	BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
	BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
	BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd
	BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd
	BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
}

type BoolCmd

type BoolCmd struct {
	// contains filtered or unexported fields
}

func NewBoolCmd

func NewBoolCmd(ctx context.Context, args ...interface{}) *BoolCmd

func NewBoolResult

func NewBoolResult(val bool, err error) *BoolCmd

NewBoolResult returns a BoolCmd initialised with val and err for testing.

func (*BoolCmd) Args

func (cmd *BoolCmd) Args() []interface{}

func (*BoolCmd) Err

func (cmd *BoolCmd) Err() error

func (*BoolCmd) FullName

func (cmd *BoolCmd) FullName() string

func (*BoolCmd) Name

func (cmd *BoolCmd) Name() string

func (*BoolCmd) Result

func (cmd *BoolCmd) Result() (bool, error)

func (*BoolCmd) SetErr

func (cmd *BoolCmd) SetErr(e error)

func (*BoolCmd) SetFirstKeyPos

func (cmd *BoolCmd) SetFirstKeyPos(keyPos int8)

func (*BoolCmd) SetVal

func (cmd *BoolCmd) SetVal(val bool)

func (*BoolCmd) String

func (cmd *BoolCmd) String() string

func (*BoolCmd) Val

func (cmd *BoolCmd) Val() bool

type BoolSliceCmd

type BoolSliceCmd struct {
	// contains filtered or unexported fields
}

func NewBoolSliceCmd

func NewBoolSliceCmd(ctx context.Context, 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) Args

func (cmd *BoolSliceCmd) Args() []interface{}

func (*BoolSliceCmd) Err

func (cmd *BoolSliceCmd) Err() error

func (*BoolSliceCmd) FullName

func (cmd *BoolSliceCmd) FullName() string

func (*BoolSliceCmd) Name

func (cmd *BoolSliceCmd) Name() string

func (*BoolSliceCmd) Result

func (cmd *BoolSliceCmd) Result() ([]bool, error)

func (*BoolSliceCmd) SetErr

func (cmd *BoolSliceCmd) SetErr(e error)

func (*BoolSliceCmd) SetFirstKeyPos

func (cmd *BoolSliceCmd) SetFirstKeyPos(keyPos int8)

func (*BoolSliceCmd) SetVal

func (cmd *BoolSliceCmd) SetVal(val []bool)

func (*BoolSliceCmd) String

func (cmd *BoolSliceCmd) String() string

func (*BoolSliceCmd) Val

func (cmd *BoolSliceCmd) Val() []bool

type CFInfo

type CFInfo struct {
	Size             int64
	NumBuckets       int64
	NumFilters       int64
	NumItemsInserted int64
	NumItemsDeleted  int64
	BucketSize       int64
	ExpansionRate    int64
	MaxIteration     int64
}

type CFInfoCmd

type CFInfoCmd struct {
	// contains filtered or unexported fields
}

func NewCFInfoCmd

func NewCFInfoCmd(ctx context.Context, args ...interface{}) *CFInfoCmd

func (*CFInfoCmd) Args

func (cmd *CFInfoCmd) Args() []interface{}

func (*CFInfoCmd) Err

func (cmd *CFInfoCmd) Err() error

func (*CFInfoCmd) FullName

func (cmd *CFInfoCmd) FullName() string

func (*CFInfoCmd) Name

func (cmd *CFInfoCmd) Name() string

func (*CFInfoCmd) Result

func (cmd *CFInfoCmd) Result() (CFInfo, error)

func (*CFInfoCmd) SetErr

func (cmd *CFInfoCmd) SetErr(e error)

func (*CFInfoCmd) SetFirstKeyPos

func (cmd *CFInfoCmd) SetFirstKeyPos(keyPos int8)

func (*CFInfoCmd) SetVal

func (cmd *CFInfoCmd) SetVal(val CFInfo)

func (*CFInfoCmd) String

func (cmd *CFInfoCmd) String() string

func (*CFInfoCmd) Val

func (cmd *CFInfoCmd) Val() CFInfo

type CFInsertOptions

type CFInsertOptions struct {
	Capacity int64
	NoCreate bool
}

type CFReserveOptions

type CFReserveOptions struct {
	Capacity      int64
	BucketSize    int64
	MaxIterations int64
	Expansion     int64
}

type CMSInfo

type CMSInfo struct {
	Width int64
	Depth int64
	Count int64
}

type CMSInfoCmd

type CMSInfoCmd struct {
	// contains filtered or unexported fields
}

func NewCMSInfoCmd

func NewCMSInfoCmd(ctx context.Context, args ...interface{}) *CMSInfoCmd

func (*CMSInfoCmd) Args

func (cmd *CMSInfoCmd) Args() []interface{}

func (*CMSInfoCmd) Err

func (cmd *CMSInfoCmd) Err() error

func (*CMSInfoCmd) FullName

func (cmd *CMSInfoCmd) FullName() string

func (*CMSInfoCmd) Name

func (cmd *CMSInfoCmd) Name() string

func (*CMSInfoCmd) Result

func (cmd *CMSInfoCmd) Result() (CMSInfo, error)

func (*CMSInfoCmd) SetErr

func (cmd *CMSInfoCmd) SetErr(e error)

func (*CMSInfoCmd) SetFirstKeyPos

func (cmd *CMSInfoCmd) SetFirstKeyPos(keyPos int8)

func (*CMSInfoCmd) SetVal

func (cmd *CMSInfoCmd) SetVal(val CMSInfo)

func (*CMSInfoCmd) String

func (cmd *CMSInfoCmd) String() string

func (*CMSInfoCmd) Val

func (cmd *CMSInfoCmd) Val() CMSInfo

type ChannelOption

type ChannelOption func(c *channel)

func WithChannelHealthCheckInterval

func WithChannelHealthCheckInterval(d time.Duration) ChannelOption

WithChannelHealthCheckInterval specifies the health check interval. PubSub will ping Redis Server if it does not receive any messages within the interval. To disable health check, use zero interval.

The default is 3 seconds.

func WithChannelSendTimeout

func WithChannelSendTimeout(d time.Duration) ChannelOption

WithChannelSendTimeout specifies the channel send timeout after which the message is dropped.

The default is 60 seconds.

func WithChannelSize

func WithChannelSize(size int) ChannelOption

WithChannelSize specifies the Go chan size that is used to buffer incoming messages.

The default is 100 messages.

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.

Client creates and frees connections automatically; it also maintains a free pool of idle connections. You can control the pool size with Config.PoolSize option.

Example
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
	panic(err)
}

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

val2, err := rdb.Get(ctx, "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

func NewClient(opt *Options) *Client

NewClient returns a client to the Redis Server specified by Options.

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

pong, err := rdb.Ping(ctx).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
// See http://redis.io/topics/sentinel for instructions how to
// setup Redis Sentinel.
rdb := redis.NewFailoverClient(&redis.FailoverOptions{
	MasterName:    "master",
	SentinelAddrs: []string{":26379"},
})
rdb.Ping(ctx)
Output:

func (Client) ACLDryRun

func (c Client) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (Client) ACLLog

func (c Client) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (Client) ACLLogReset

func (c Client) ACLLogReset(ctx context.Context) *StatusCmd

func (*Client) AddHook

func (hs *Client) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (Client) Append

func (c Client) Append(ctx context.Context, key, value string) *IntCmd

func (Client) BFAdd

func (c Client) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (Client) BFCard

func (c Client) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (Client) BFExists

func (c Client) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (Client) BFInfo

func (c Client) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoArg

func (c Client) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoCapacity

func (c Client) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoExpansion

func (c Client) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoFilters

func (c Client) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoItems

func (c Client) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInfoSize

func (c Client) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Client) BFInsert

func (c Client) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (Client) BFLoadChunk

func (c Client) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (Client) BFMAdd

func (c Client) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (Client) BFMExists

func (c Client) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (Client) BFReserve

func (c Client) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (Client) BFReserveExpansion

func (c Client) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (Client) BFReserveNonScaling

func (c Client) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (Client) BFReserveWithArgs

func (c Client) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (Client) BFScanDump

func (c Client) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (Client) BLMPop

func (c Client) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (Client) BLMove

func (c Client) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (Client) BLPop

func (c Client) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
Example
if err := rdb.RPush(ctx, "queue", "message").Err(); err != nil {
	panic(err)
}

// use `rdb.BLPop(ctx, 0, "queue")` for infinite waiting time
result, err := rdb.BLPop(ctx, 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(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Client) BRPopLPush

func (c Client) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (Client) BZMPop

func (c Client) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (Client) BZPopMax

func (c Client) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (Client) BZPopMin

func (c Client) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (Client) BgRewriteAOF

func (c Client) BgRewriteAOF(ctx context.Context) *StatusCmd

func (Client) BgSave

func (c Client) BgSave(ctx context.Context) *StatusCmd

func (Client) BitCount

func (c Client) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (Client) BitField

func (c Client) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (Client) BitFieldRO

func (c Client) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (Client) BitOpAnd

func (c Client) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Client) BitOpNot

func (c Client) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (Client) BitOpOr

func (c Client) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Client) BitOpXor

func (c Client) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Client) BitPos

func (c Client) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (Client) BitPosSpan

func (c Client) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (Client) CFAdd

func (c Client) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (Client) CFAddNX

func (c Client) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (Client) CFCount

func (c Client) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (Client) CFDel

func (c Client) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (Client) CFExists

func (c Client) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (Client) CFInfo

func (c Client) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (Client) CFInsert

func (c Client) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (Client) CFInsertNX

func (c Client) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (Client) CFLoadChunk

func (c Client) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (Client) CFMExists

func (c Client) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (Client) CFReserve

func (c Client) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (Client) CFReserveBucketSize

func (c Client) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (Client) CFReserveExpansion

func (c Client) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (Client) CFReserveMaxIterations

func (c Client) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Client) CFReserveWithArgs

func (c Client) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Client) CFScanDump

func (c Client) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (Client) CMSIncrBy

func (c Client) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (Client) CMSInfo

func (c Client) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (Client) CMSInitByDim

func (c Client) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (Client) CMSInitByProb

func (c Client) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (Client) CMSMerge

func (c Client) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Client) CMSMergeWithWeight

func (c Client) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Client) CMSQuery

func (c Client) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (Client) ClientGetName

func (c Client) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (Client) ClientID

func (c Client) ClientID(ctx context.Context) *IntCmd

func (Client) ClientInfo

func (c Client) ClientInfo(ctx context.Context) *ClientInfoCmd

func (Client) ClientKill

func (c Client) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (Client) ClientKillByFilter

func (c Client) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (Client) ClientList

func (c Client) ClientList(ctx context.Context) *StringCmd

func (Client) ClientPause

func (c Client) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (Client) ClientUnblock

func (c Client) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (Client) ClientUnblockWithError

func (c Client) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (Client) ClientUnpause

func (c Client) ClientUnpause(ctx context.Context) *BoolCmd

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 (c Client) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (Client) ClusterAddSlotsRange

func (c Client) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Client) ClusterCountFailureReports

func (c Client) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (Client) ClusterCountKeysInSlot

func (c Client) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (Client) ClusterDelSlots

func (c Client) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (Client) ClusterDelSlotsRange

func (c Client) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Client) ClusterFailover

func (c Client) ClusterFailover(ctx context.Context) *StatusCmd

func (Client) ClusterForget

func (c Client) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (Client) ClusterGetKeysInSlot

func (c Client) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (Client) ClusterInfo

func (c Client) ClusterInfo(ctx context.Context) *StringCmd

func (Client) ClusterKeySlot

func (c Client) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Client) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (Client) ClusterMeet

func (c Client) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (Client) ClusterMyShardID

func (c Client) ClusterMyShardID(ctx context.Context) *StringCmd

func (Client) ClusterNodes

func (c Client) ClusterNodes(ctx context.Context) *StringCmd

func (Client) ClusterReplicate

func (c Client) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (Client) ClusterResetHard

func (c Client) ClusterResetHard(ctx context.Context) *StatusCmd

func (Client) ClusterResetSoft

func (c Client) ClusterResetSoft(ctx context.Context) *StatusCmd

func (Client) ClusterSaveConfig

func (c Client) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (Client) ClusterShards

func (c Client) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (Client) ClusterSlaves

func (c Client) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (Client) ClusterSlots

func (c Client) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (Client) Command

func (c Client) Command(ctx context.Context) *CommandsInfoCmd

func (Client) CommandGetKeys

func (c Client) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (Client) CommandGetKeysAndFlags

func (c Client) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (Client) CommandList

func (c Client) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (Client) ConfigGet

func (c Client) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (Client) ConfigResetStat

func (c Client) ConfigResetStat(ctx context.Context) *StatusCmd

func (Client) ConfigRewrite

func (c Client) ConfigRewrite(ctx context.Context) *StatusCmd

func (Client) ConfigSet

func (c Client) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (*Client) Conn

func (c *Client) Conn() *Conn

func (Client) Copy

func (c Client) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (Client) DBSize

func (c Client) DBSize(ctx context.Context) *IntCmd

func (Client) DebugObject

func (c Client) DebugObject(ctx context.Context, key string) *StringCmd

func (Client) Decr

func (c Client) Decr(ctx context.Context, key string) *IntCmd

func (Client) DecrBy

func (c Client) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (Client) Del

func (c Client) Del(ctx context.Context, keys ...string) *IntCmd

func (*Client) Do

func (c *Client) Do(ctx context.Context, args ...interface{}) *Cmd

Do create a Cmd from the args and processes the cmd.

func (Client) Dump

func (c Client) Dump(ctx context.Context, key string) *StringCmd

func (Client) Echo

func (c Client) Echo(ctx context.Context, message interface{}) *StringCmd

func (Client) Eval

func (c Client) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Client) EvalRO

func (c Client) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Client) EvalSha

func (c Client) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Client) EvalShaRO

func (c Client) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Client) Exists

func (c Client) Exists(ctx context.Context, keys ...string) *IntCmd

func (Client) Expire

func (c Client) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) ExpireAt

func (c Client) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Client) ExpireGT

func (c Client) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) ExpireLT

func (c Client) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) ExpireNX

func (c Client) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) ExpireTime

func (c Client) ExpireTime(ctx context.Context, key string) *DurationCmd

func (Client) ExpireXX

func (c Client) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) FCall

func (c Client) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Client) FCallRO

func (c Client) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Client) FCallRo

func (c Client) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (Client) FlushAll

func (c Client) FlushAll(ctx context.Context) *StatusCmd

func (Client) FlushAllAsync

func (c Client) FlushAllAsync(ctx context.Context) *StatusCmd

func (Client) FlushDB

func (c Client) FlushDB(ctx context.Context) *StatusCmd

func (Client) FlushDBAsync

func (c Client) FlushDBAsync(ctx context.Context) *StatusCmd

func (Client) FunctionDelete

func (c Client) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (Client) FunctionDump

func (c Client) FunctionDump(ctx context.Context) *StringCmd

func (Client) FunctionFlush

func (c Client) FunctionFlush(ctx context.Context) *StringCmd

func (Client) FunctionFlushAsync

func (c Client) FunctionFlushAsync(ctx context.Context) *StringCmd

func (Client) FunctionKill

func (c Client) FunctionKill(ctx context.Context) *StringCmd

func (Client) FunctionList

func (c Client) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (Client) FunctionLoad

func (c Client) FunctionLoad(ctx context.Context, code string) *StringCmd

func (Client) FunctionLoadReplace

func (c Client) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (Client) FunctionRestore

func (c Client) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (Client) FunctionStats

func (c Client) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (Client) GeoAdd

func (c Client) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (Client) GeoDist

func (c Client) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (Client) GeoHash

func (c Client) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (Client) GeoPos

func (c Client) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (Client) GeoRadius

func (c Client) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (Client) GeoRadiusByMember

func (c Client) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (Client) GeoRadiusByMemberStore

func (c Client) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (Client) GeoRadiusStore

func (c Client) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (Client) GeoSearch

func (c Client) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (Client) GeoSearchLocation

func (c Client) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (Client) GeoSearchStore

func (c Client) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (Client) Get

func (c Client) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (Client) GetBit

func (c Client) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (Client) GetDel

func (c Client) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (Client) GetEx

func (c Client) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (Client) GetRange

func (c Client) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (Client) GetSet

func (c Client) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (Client) HDel

func (c Client) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (Client) HExists

func (c Client) HExists(ctx context.Context, key, field string) *BoolCmd

func (Client) HGet

func (c Client) HGet(ctx context.Context, key, field string) *StringCmd

func (Client) HGetAll

func (c Client) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (Client) HIncrBy

func (c Client) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (Client) HIncrByFloat

func (c Client) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (Client) HKeys

func (c Client) HKeys(ctx context.Context, key string) *StringSliceCmd

func (Client) HLen

func (c Client) HLen(ctx context.Context, key string) *IntCmd

func (Client) HMGet

func (c Client) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (Client) HMSet

func (c Client) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (Client) HRandField

func (c Client) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (Client) HRandFieldWithValues

func (c Client) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (Client) HScan

func (c Client) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Client) HSet

func (c Client) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

Example
// Set "redis" tag for hash key
type ExampleUser struct {
	Name string `redis:"name"`
	Age  int    `redis:"age"`
}

items := ExampleUser{"jane", 22}

err := rdb.HSet(ctx, "user:1", items).Err()
if err != nil {
	panic(err)
}
Output:

func (Client) HSetNX

func (c Client) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (Client) HVals

func (c Client) HVals(ctx context.Context, key string) *StringSliceCmd

func (Client) Incr

func (c Client) Incr(ctx context.Context, key string) *IntCmd
Example
result, err := rdb.Incr(ctx, "counter").Result()
if err != nil {
	panic(err)
}

fmt.Println(result)
Output:

1

func (Client) IncrBy

func (c Client) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (Client) IncrByFloat

func (c Client) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (Client) Info

func (c Client) Info(ctx context.Context, sections ...string) *StringCmd

func (Client) InfoMap

func (c Client) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (Client) JSONArrAppend

func (c Client) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (Client) JSONArrIndex

func (c Client) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (Client) JSONArrIndexWithArgs

func (c Client) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (Client) JSONArrInsert

func (c Client) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (Client) JSONArrLen

func (c Client) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (Client) JSONArrPop

func (c Client) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (Client) JSONArrTrim

func (c Client) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Client) JSONArrTrimWithArgs

func (c Client) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Client) JSONClear

func (c Client) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (Client) JSONDebugMemory

func (c Client) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (Client) JSONDel

func (c Client) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (Client) JSONForget

func (c Client) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (Client) JSONGet

func (c Client) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (Client) JSONGetWithArgs

func (c Client) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (Client) JSONMGet

func (c Client) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (Client) JSONMSet

func (c Client) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (Client) JSONMSetArgs

func (c Client) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (Client) JSONMerge

func (c Client) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (Client) JSONNumIncrBy

func (c Client) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (Client) JSONObjKeys

func (c Client) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (Client) JSONObjLen

func (c Client) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (Client) JSONSet

func (c Client) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Client) JSONSetMode

func (c Client) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Client) JSONStrAppend

func (c Client) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (Client) JSONStrLen

func (c Client) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (Client) JSONToggle

func (c Client) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (Client) JSONType

func (c Client) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (Client) Keys

func (c Client) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (Client) LCS

func (c Client) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (Client) LIndex

func (c Client) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (Client) LInsert

func (c Client) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (Client) LInsertAfter

func (c Client) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Client) LInsertBefore

func (c Client) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Client) LLen

func (c Client) LLen(ctx context.Context, key string) *IntCmd

func (Client) LMPop

func (c Client) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (Client) LMove

func (c Client) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (Client) LPop

func (c Client) LPop(ctx context.Context, key string) *StringCmd

func (Client) LPopCount

func (c Client) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Client) LPos

func (c Client) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (Client) LPosCount

func (c Client) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (Client) LPush

func (c Client) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Client) LPushX

func (c Client) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Client) LRange

func (c Client) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Client) LRem

func (c Client) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (Client) LSet

func (c Client) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (Client) LTrim

func (c Client) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (Client) LastSave

func (c Client) LastSave(ctx context.Context) *IntCmd

func (Client) MGet

func (c Client) MGet(ctx context.Context, keys ...string) *SliceCmd

func (Client) MSet

func (c Client) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (Client) MSetNX

func (c Client) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (Client) MemoryUsage

func (c Client) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (Client) Migrate

func (c Client) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (Client) ModuleLoadex

func (c Client) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (Client) Monitor

func (c Client) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (Client) Move

func (c Client) Move(ctx context.Context, key string, db int) *BoolCmd

func (Client) ObjectEncoding

func (c Client) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (Client) ObjectFreq

func (c Client) ObjectFreq(ctx context.Context, key string) *IntCmd

func (Client) ObjectIdleTime

func (c Client) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (Client) ObjectRefCount

func (c Client) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (*Client) Options

func (c *Client) Options() *Options

Options returns read-only Options that were used to create the client.

func (Client) PExpire

func (c Client) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Client) PExpireAt

func (c Client) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Client) PExpireTime

func (c Client) PExpireTime(ctx context.Context, key string) *DurationCmd

func (Client) PFAdd

func (c Client) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (Client) PFCount

func (c Client) PFCount(ctx context.Context, keys ...string) *IntCmd

func (Client) PFMerge

func (c Client) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (*Client) PSubscribe

func (c *Client) PSubscribe(ctx context.Context, channels ...string) *PubSub

PSubscribe subscribes the client to the given patterns. Patterns can be omitted to create empty subscription.

func (Client) PTTL

func (c Client) PTTL(ctx context.Context, key string) *DurationCmd

func (Client) Persist

func (c Client) Persist(ctx context.Context, key string) *BoolCmd

func (Client) Ping

func (c Client) Ping(ctx context.Context) *StatusCmd

func (*Client) Pipeline

func (c *Client) Pipeline() Pipeliner
Example
pipe := rdb.Pipeline()

incr := pipe.Incr(ctx, "pipeline_counter")
pipe.Expire(ctx, "pipeline_counter", time.Hour)

// Execute
//
//     INCR pipeline_counter
//     EXPIRE pipeline_counts 3600
//
// using one rdb-server roundtrip.
_, err := pipe.Exec(ctx)
fmt.Println(incr.Val(), err)
Output:

1 <nil>

func (*Client) Pipelined

func (c *Client) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
Example
var incr *redis.IntCmd
_, err := rdb.Pipelined(ctx, func(pipe redis.Pipeliner) error {
	incr = pipe.Incr(ctx, "pipelined_counter")
	pipe.Expire(ctx, "pipelined_counter", time.Hour)
	return nil
})
fmt.Println(incr.Val(), err)
Output:

1 <nil>

func (*Client) PoolStats

func (c *Client) PoolStats() *PoolStats

PoolStats returns connection pool stats.

func (*Client) Process

func (c *Client) Process(ctx context.Context, cmd Cmder) error

func (Client) PubSubChannels

func (c Client) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Client) PubSubNumPat

func (c Client) PubSubNumPat(ctx context.Context) *IntCmd

func (Client) PubSubNumSub

func (c Client) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Client) PubSubShardChannels

func (c Client) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Client) PubSubShardNumSub

func (c Client) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Client) Publish

func (c Client) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (Client) Quit

func (c Client) Quit(_ context.Context) *StatusCmd

func (Client) RPop

func (c Client) RPop(ctx context.Context, key string) *StringCmd

func (Client) RPopCount

func (c Client) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Client) RPopLPush

func (c Client) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (Client) RPush

func (c Client) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Client) RPushX

func (c Client) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Client) RandomKey

func (c Client) RandomKey(ctx context.Context) *StringCmd

func (Client) ReadOnly

func (c Client) ReadOnly(ctx context.Context) *StatusCmd

func (Client) ReadWrite

func (c Client) ReadWrite(ctx context.Context) *StatusCmd

func (Client) Rename

func (c Client) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (Client) RenameNX

func (c Client) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (Client) Restore

func (c Client) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Client) RestoreReplace

func (c Client) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Client) SAdd

func (c Client) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Client) SCard

func (c Client) SCard(ctx context.Context, key string) *IntCmd

func (Client) SDiff

func (c Client) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (Client) SDiffStore

func (c Client) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Client) SInter

func (c Client) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (Client) SInterCard

func (c Client) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Client) SInterStore

func (c Client) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Client) SIsMember

func (c Client) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (Client) SMIsMember

func (c Client) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (Client) SMembers

func (c Client) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (Client) SMembersMap

func (c Client) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (Client) SMove

func (c Client) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (Client) SPop

func (c Client) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (Client) SPopN

func (c Client) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (Client) SPublish

func (c Client) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (Client) SRandMember

func (c Client) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (Client) SRandMemberN

func (c Client) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (Client) SRem

func (c Client) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Client) SScan

func (c Client) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (*Client) SSubscribe

func (c *Client) SSubscribe(ctx context.Context, channels ...string) *PubSub

SSubscribe Subscribes the client to the specified shard channels. Channels can be omitted to create empty subscription.

func (Client) SUnion

func (c Client) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (Client) SUnionStore

func (c Client) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Client) Save

func (c Client) Save(ctx context.Context) *StatusCmd

func (Client) Scan

func (c Client) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
Example
rdb.FlushDB(ctx)
for i := 0; i < 33; i++ {
	err := rdb.Set(ctx, 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 = rdb.Scan(ctx, 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) ScanType

func (c Client) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
Example
rdb.FlushDB(ctx)
for i := 0; i < 33; i++ {
	err := rdb.Set(ctx, 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 = rdb.ScanType(ctx, cursor, "key*", 10, "string").Result()
	if err != nil {
		panic(err)
	}
	n += len(keys)
	if cursor == 0 {
		break
	}
}

fmt.Printf("found %d keys\n", n)
Output:

found 33 keys
Example (HashType)

ExampleClient_ScanType_hashType uses the keyType "hash".

rdb.FlushDB(ctx)
for i := 0; i < 33; i++ {
	err := rdb.HSet(context.TODO(), fmt.Sprintf("key%d", i), "value", "foo").Err()
	if err != nil {
		panic(err)
	}
}

var allKeys []string
var cursor uint64
var err error

for {
	var keysFromScan []string
	keysFromScan, cursor, err = rdb.ScanType(context.TODO(), cursor, "key*", 10, "hash").Result()
	if err != nil {
		panic(err)
	}
	allKeys = append(allKeys, keysFromScan...)
	if cursor == 0 {
		break
	}
}
fmt.Printf("%d keys ready for use", len(allKeys))
Output:

33 keys ready for use

func (Client) ScriptExists

func (c Client) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (Client) ScriptFlush

func (c Client) ScriptFlush(ctx context.Context) *StatusCmd

func (Client) ScriptKill

func (c Client) ScriptKill(ctx context.Context) *StatusCmd

func (Client) ScriptLoad

func (c Client) ScriptLoad(ctx context.Context, script string) *StringCmd

func (Client) Set

func (c Client) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

Example
// Last argument is expiration. Zero means the key has no
// expiration time.
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
	panic(err)
}

// key2 will expire in an hour.
err = rdb.Set(ctx, "key2", "value", time.Hour).Err()
if err != nil {
	panic(err)
}
Output:

func (Client) SetArgs

func (c Client) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (Client) SetBit

func (c Client) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (Client) SetEx

func (c Client) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

Example
err := rdb.SetEx(ctx, "key", "value", time.Hour).Err()
if err != nil {
	panic(err)
}
Output:

func (Client) SetNX

func (c Client) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Client) SetRange

func (c Client) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (Client) SetXX

func (c Client) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Client) Shutdown

func (c Client) Shutdown(ctx context.Context) *StatusCmd

func (Client) ShutdownNoSave

func (c Client) ShutdownNoSave(ctx context.Context) *StatusCmd

func (Client) ShutdownSave

func (c Client) ShutdownSave(ctx context.Context) *StatusCmd

func (Client) SlaveOf

func (c Client) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (Client) SlowLogGet

func (c Client) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
Example
if RECluster {
	// skip slowlog test for cluster
	fmt.Println(2)
	return
}
const key = "slowlog-log-slower-than"

old := rdb.ConfigGet(ctx, key).Val()
rdb.ConfigSet(ctx, key, "0")
defer rdb.ConfigSet(ctx, key, old[key])

if err := rdb.Do(ctx, "slowlog", "reset").Err(); err != nil {
	panic(err)
}

rdb.Set(ctx, "test", "true", 0)

result, err := rdb.SlowLogGet(ctx, -1).Result()
if err != nil {
	panic(err)
}
fmt.Println(len(result))
Output:

2

func (Client) Sort

func (c Client) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Client) SortInterfaces

func (c Client) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (Client) SortRO

func (c Client) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Client) SortStore

func (c Client) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (Client) StrLen

func (c Client) StrLen(ctx context.Context, key string) *IntCmd

func (Client) String

func (c Client) String() string

func (*Client) Subscribe

func (c *Client) Subscribe(ctx context.Context, channels ...string) *PubSub

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) Sync

func (c Client) Sync(_ context.Context)

func (Client) TDigestAdd

func (c Client) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (Client) TDigestByRank

func (c Client) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (Client) TDigestByRevRank

func (c Client) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (Client) TDigestCDF

func (c Client) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (Client) TDigestCreate

func (c Client) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Client) TDigestCreateWithCompression

func (c Client) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Client) TDigestInfo

func (c Client) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (Client) TDigestMax

func (c Client) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (Client) TDigestMerge

func (c Client) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (Client) TDigestMin

func (c Client) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (Client) TDigestQuantile

func (c Client) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (Client) TDigestRank

func (c Client) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (Client) TDigestReset

func (c Client) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (Client) TDigestRevRank

func (c Client) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (Client) TDigestTrimmedMean

func (c Client) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (Client) TFCall

func (c Client) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (Client) TFCallASYNC

func (c Client) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (Client) TFCallASYNCArgs

func (c Client) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Client) TFCallArgs

func (c Client) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Client) TFunctionDelete

func (c Client) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (Client) TFunctionList

func (c Client) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (Client) TFunctionListArgs

func (c Client) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (Client) TFunctionLoad

func (c Client) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (Client) TFunctionLoadArgs

func (c Client) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (Client) TSAdd

func (c Client) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (Client) TSAddWithArgs

func (c Client) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (Client) TSAlter

func (c Client) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (Client) TSCreate

func (c Client) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (Client) TSCreateRule

func (c Client) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (Client) TSCreateRuleWithArgs

func (c Client) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (Client) TSCreateWithArgs

func (c Client) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (Client) TSDecrBy

func (c Client) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (Client) TSDecrByWithArgs

func (c Client) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (Client) TSDel

func (c Client) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (Client) TSDeleteRule

func (c Client) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (Client) TSGet

func (c Client) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (Client) TSGetWithArgs

func (c Client) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (Client) TSIncrBy

func (c Client) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (Client) TSIncrByWithArgs

func (c Client) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (Client) TSInfo

func (c Client) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (Client) TSInfoWithArgs

func (c Client) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (Client) TSMAdd

func (c Client) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (Client) TSMGet

func (c Client) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (Client) TSMGetWithArgs

func (c Client) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (Client) TSMRange

func (c Client) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (Client) TSMRangeWithArgs

func (c Client) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (Client) TSMRevRange

func (c Client) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (Client) TSMRevRangeWithArgs

func (c Client) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (Client) TSQueryIndex

func (c Client) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (Client) TSRange

func (c Client) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (Client) TSRangeWithArgs

func (c Client) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (Client) TSRevRange

func (c Client) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (Client) TSRevRangeWithArgs

func (c Client) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (Client) TTL

func (c Client) TTL(ctx context.Context, key string) *DurationCmd

func (Client) Time

func (c Client) Time(ctx context.Context) *TimeCmd

func (Client) TopKAdd

func (c Client) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (Client) TopKCount

func (c Client) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (Client) TopKIncrBy

func (c Client) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (Client) TopKInfo

func (c Client) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (Client) TopKList

func (c Client) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (Client) TopKListWithCount

func (c Client) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (Client) TopKQuery

func (c Client) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (Client) TopKReserve

func (c Client) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (Client) TopKReserveWithOptions

func (c Client) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (Client) Touch

func (c Client) Touch(ctx context.Context, keys ...string) *IntCmd

func (*Client) TxPipeline

func (c *Client) TxPipeline() Pipeliner

TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.

Example
pipe := rdb.TxPipeline()

incr := pipe.Incr(ctx, "tx_pipeline_counter")
pipe.Expire(ctx, "tx_pipeline_counter", time.Hour)

// Execute
//
//     MULTI
//     INCR pipeline_counter
//     EXPIRE pipeline_counts 3600
//     EXEC
//
// using one rdb-server roundtrip.
_, err := pipe.Exec(ctx)
fmt.Println(incr.Val(), err)
Output:

1 <nil>

func (*Client) TxPipelined

func (c *Client) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
Example
var incr *redis.IntCmd
_, err := rdb.TxPipelined(ctx, func(pipe redis.Pipeliner) error {
	incr = pipe.Incr(ctx, "tx_pipelined_counter")
	pipe.Expire(ctx, "tx_pipelined_counter", time.Hour)
	return nil
})
fmt.Println(incr.Val(), err)
Output:

1 <nil>

func (Client) Type

func (c Client) Type(ctx context.Context, key string) *StatusCmd
func (c Client) Unlink(ctx context.Context, keys ...string) *IntCmd

func (Client) Wait

func (c Client) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (Client) WaitAOF

func (c Client) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (*Client) Watch

func (c *Client) Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error

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
const maxRetries = 10000

// Increment transactionally increments key using GET and SET commands.
increment := func(key string) error {
	// Transactional function.
	txf := func(tx *redis.Tx) error {
		// Get current value or zero.
		n, err := tx.Get(ctx, key).Int()
		if err != nil && err != redis.Nil {
			return err
		}

		// Actual opperation (local in optimistic lock).
		n++

		// Operation is committed only if the watched keys remain unchanged.
		_, err = tx.TxPipelined(ctx, func(pipe redis.Pipeliner) error {
			pipe.Set(ctx, key, n, 0)
			return nil
		})
		return err
	}

	for i := 0; i < maxRetries; i++ {
		err := rdb.Watch(ctx, txf, key)
		if err == nil {
			// Success.
			return nil
		}
		if err == redis.TxFailedErr {
			// Optimistic lock lost. Retry.
			continue
		}
		// Return any other error.
		return err
	}

	return errors.New("increment reached maximum number of retries")
}

var wg sync.WaitGroup
for i := 0; i < 100; i++ {
	wg.Add(1)
	go func() {
		defer wg.Done()

		if err := increment("counter3"); err != nil {
			fmt.Println("increment error:", err)
		}
	}()
}
wg.Wait()

n, err := rdb.Get(ctx, "counter3").Int()
fmt.Println("ended with", n, err)
Output:

ended with 100 <nil>
Example (Instrumentation)
rdb := redis.NewClient(&redis.Options{
	Addr: ":6379",
})
rdb.AddHook(redisHook{})

rdb.Watch(ctx, func(tx *redis.Tx) error {
	tx.Ping(ctx)
	tx.Ping(ctx)
	return nil
}, "foo")
Output:

starting processing: <watch foo: >
dialing tcp :6379
finished dialing tcp :6379
finished processing: <watch foo: OK>
starting processing: <ping: >
finished processing: <ping: PONG>
starting processing: <ping: >
finished processing: <ping: PONG>
starting processing: <unwatch: >
finished processing: <unwatch: OK>

func (*Client) WithTimeout

func (c *Client) WithTimeout(timeout time.Duration) *Client

func (Client) XAck

func (c Client) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (Client) XAdd

func (c Client) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (Client) XAutoClaim

func (c Client) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (Client) XAutoClaimJustID

func (c Client) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (Client) XClaim

func (c Client) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (Client) XClaimJustID

func (c Client) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (Client) XDel

func (c Client) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (Client) XGroupCreate

func (c Client) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (Client) XGroupCreateConsumer

func (c Client) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Client) XGroupCreateMkStream

func (c Client) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (Client) XGroupDelConsumer

func (c Client) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Client) XGroupDestroy

func (c Client) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (Client) XGroupSetID

func (c Client) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (Client) XInfoConsumers

func (c Client) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (Client) XInfoGroups

func (c Client) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (Client) XInfoStream

func (c Client) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (Client) XInfoStreamFull

func (c Client) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (Client) XLen

func (c Client) XLen(ctx context.Context, stream string) *IntCmd

func (Client) XPending

func (c Client) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (Client) XPendingExt

func (c Client) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (Client) XRange

func (c Client) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Client) XRangeN

func (c Client) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Client) XRead

func (c Client) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (Client) XReadGroup

func (c Client) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (Client) XReadStreams

func (c Client) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (Client) XRevRange

func (c Client) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Client) XRevRangeN

func (c Client) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Client) XTrimMaxLen

func (c Client) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (Client) XTrimMaxLenApprox

func (c Client) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (Client) XTrimMinID

func (c Client) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (Client) XTrimMinIDApprox

func (c Client) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (Client) ZAdd

func (c Client) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (Client) ZAddArgs

func (c Client) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (Client) ZAddArgsIncr

func (c Client) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (Client) ZAddGT

func (c Client) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (Client) ZAddLT

func (c Client) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (Client) ZAddNX

func (c Client) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (Client) ZAddXX

func (c Client) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (Client) ZCard

func (c Client) ZCard(ctx context.Context, key string) *IntCmd

func (Client) ZCount

func (c Client) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (Client) ZDiff

func (c Client) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (Client) ZDiffStore

func (c Client) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (Client) ZDiffWithScores

func (c Client) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (Client) ZIncrBy

func (c Client) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (Client) ZInter

func (c Client) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (Client) ZInterCard

func (c Client) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Client) ZInterStore

func (c Client) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (Client) ZInterWithScores

func (c Client) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (Client) ZLexCount

func (c Client) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (Client) ZMPop

func (c Client) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (Client) ZMScore

func (c Client) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (Client) ZPopMax

func (c Client) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Client) ZPopMin

func (c Client) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Client) ZRandMember

func (c Client) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (Client) ZRandMemberWithScores

func (c Client) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (Client) ZRange

func (c Client) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Client) ZRangeArgs

func (c Client) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (Client) ZRangeArgsWithScores

func (c Client) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (Client) ZRangeByLex

func (c Client) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Client) ZRangeByScore

func (c Client) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Client) ZRangeByScoreWithScores

func (c Client) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Client) ZRangeStore

func (c Client) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (Client) ZRangeWithScores

func (c Client) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (Client) ZRank

func (c Client) ZRank(ctx context.Context, key, member string) *IntCmd

func (Client) ZRankWithScore

func (c Client) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Client) ZRem

func (c Client) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Client) ZRemRangeByLex

func (c Client) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (Client) ZRemRangeByRank

func (c Client) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (Client) ZRemRangeByScore

func (c Client) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (Client) ZRevRange

func (c Client) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Client) ZRevRangeByLex

func (c Client) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Client) ZRevRangeByScore

func (c Client) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Client) ZRevRangeByScoreWithScores

func (c Client) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Client) ZRevRangeWithScores

func (c Client) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Client) ZRevRank

func (c Client) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (Client) ZRevRankWithScore

func (c Client) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (Client) ZScan

func (c Client) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Client) ZScore

func (c Client) ZScore(ctx context.Context, key, member string) *FloatCmd

func (Client) ZUnion

func (c Client) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (Client) ZUnionStore

func (c Client) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (Client) ZUnionWithScores

func (c Client) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type ClientFlags

type ClientFlags uint64

ClientFlags is redis-server client flags, copy from redis/src/server.h (redis 7.0)

const (
	ClientSlave            ClientFlags = 1 << 0  /* This client is a replica */
	ClientMaster           ClientFlags = 1 << 1  /* This client is a master */
	ClientMonitor          ClientFlags = 1 << 2  /* This client is a slave monitor, see MONITOR */
	ClientMulti            ClientFlags = 1 << 3  /* This client is in a MULTI context */
	ClientBlocked          ClientFlags = 1 << 4  /* The client is waiting in a blocking operation */
	ClientDirtyCAS         ClientFlags = 1 << 5  /* Watched keys modified. EXEC will fail. */
	ClientCloseAfterReply  ClientFlags = 1 << 6  /* Close after writing entire reply. */
	ClientUnBlocked        ClientFlags = 1 << 7  /* This client was unblocked and is stored in server.unblocked_clients */
	ClientScript           ClientFlags = 1 << 8  /* This is a non-connected client used by Lua */
	ClientAsking           ClientFlags = 1 << 9  /* Client issued the ASKING command */
	ClientCloseASAP        ClientFlags = 1 << 10 /* Close this client ASAP */
	ClientUnixSocket       ClientFlags = 1 << 11 /* Client connected via Unix domain socket */
	ClientDirtyExec        ClientFlags = 1 << 12 /* EXEC will fail for errors while queueing */
	ClientMasterForceReply ClientFlags = 1 << 13 /* Queue replies even if is master */
	ClientForceAOF         ClientFlags = 1 << 14 /* Force AOF propagation of current cmd. */
	ClientForceRepl        ClientFlags = 1 << 15 /* Force replication of current cmd. */
	ClientPrePSync         ClientFlags = 1 << 16 /* Instance don't understand PSYNC. */
	ClientReadOnly         ClientFlags = 1 << 17 /* Cluster client is in read-only state. */
	ClientPubSub           ClientFlags = 1 << 18 /* Client is in Pub/Sub mode. */
	ClientPreventAOFProp   ClientFlags = 1 << 19 /* Don't propagate to AOF. */
	ClientPreventReplProp  ClientFlags = 1 << 20 /* Don't propagate to slaves. */
	ClientPreventProp      ClientFlags = ClientPreventAOFProp | ClientPreventReplProp
	ClientPendingWrite     ClientFlags = 1 << 21 /* Client has output to send but a-write handler is yet not installed. */
	ClientReplyOff         ClientFlags = 1 << 22 /* Don't send replies to client. */
	ClientReplySkipNext    ClientFlags = 1 << 23 /* Set ClientREPLY_SKIP for next cmd */
	ClientReplySkip        ClientFlags = 1 << 24 /* Don't send just this reply. */
	ClientLuaDebug         ClientFlags = 1 << 25 /* Run EVAL in debug mode. */
	ClientLuaDebugSync     ClientFlags = 1 << 26 /* EVAL debugging without fork() */
	ClientModule           ClientFlags = 1 << 27 /* Non connected client used by some module. */
	ClientProtected        ClientFlags = 1 << 28 /* Client should not be freed for now. */
	ClientExecutingCommand ClientFlags = 1 << 29 /* Indicates that the client is currently in the process of handling
	   a command. usually this will be marked only during call()
	   however, blocked clients might have this flag kept until they
	   will try to reprocess the command. */
	ClientPendingCommand      ClientFlags = 1 << 30 /* Indicates the client has a fully * parsed command ready for execution. */
	ClientTracking            ClientFlags = 1 << 31 /* Client enabled keys tracking in order to perform client side caching. */
	ClientTrackingBrokenRedir ClientFlags = 1 << 32 /* Target client is invalid. */
	ClientTrackingBCAST       ClientFlags = 1 << 33 /* Tracking in BCAST mode. */
	ClientTrackingOptIn       ClientFlags = 1 << 34 /* Tracking in opt-in mode. */
	ClientTrackingOptOut      ClientFlags = 1 << 35 /* Tracking in opt-out mode. */
	ClientTrackingCaching     ClientFlags = 1 << 36 /* CACHING yes/no was given, depending on optin/optout mode. */
	ClientTrackingNoLoop      ClientFlags = 1 << 37 /* Don't send invalidation messages about writes performed by myself.*/
	ClientInTimeoutTable      ClientFlags = 1 << 38 /* This client is in the timeout table. */
	ClientProtocolError       ClientFlags = 1 << 39 /* Protocol error chatting with it. */
	ClientCloseAfterCommand   ClientFlags = 1 << 40 /* Close after executing commands * and writing entire reply. */
	ClientDenyBlocking        ClientFlags = 1 << 41 /* Indicate that the client should not be blocked. currently, turned on inside MULTI, Lua, RM_Call, and AOF client */
	ClientReplRDBOnly         ClientFlags = 1 << 42 /* This client is a replica that only wants RDB without replication buffer. */
	ClientNoEvict             ClientFlags = 1 << 43 /* This client is protected against client memory eviction. */
	ClientAllowOOM            ClientFlags = 1 << 44 /* Client used by RM_Call is allowed to fully execute scripts even when in OOM */
	ClientNoTouch             ClientFlags = 1 << 45 /* This client will not touch LFU/LRU stats. */
	ClientPushing             ClientFlags = 1 << 46 /* This client is pushing notifications. */
)

type ClientInfo

type ClientInfo struct {
	ID                 int64         // redis version 2.8.12, a unique 64-bit client ID
	Addr               string        // address/port of the client
	LAddr              string        // address/port of local address client connected to (bind address)
	FD                 int64         // file descriptor corresponding to the socket
	Name               string        // the name set by the client with CLIENT SETNAME
	Age                time.Duration // total duration of the connection in seconds
	Idle               time.Duration // idle time of the connection in seconds
	Flags              ClientFlags   // client flags (see below)
	DB                 int           // current database ID
	Sub                int           // number of channel subscriptions
	PSub               int           // number of pattern matching subscriptions
	SSub               int           // redis version 7.0.3, number of shard channel subscriptions
	Multi              int           // number of commands in a MULTI/EXEC context
	QueryBuf           int           // qbuf, query buffer length (0 means no query pending)
	QueryBufFree       int           // qbuf-free, free space of the query buffer (0 means the buffer is full)
	ArgvMem            int           // incomplete arguments for the next command (already extracted from query buffer)
	MultiMem           int           // redis version 7.0, memory is used up by buffered multi commands
	BufferSize         int           // rbs, usable size of buffer
	BufferPeak         int           // rbp, peak used size of buffer in last 5 sec interval
	OutputBufferLength int           // obl, output buffer length
	OutputListLength   int           // oll, output list length (replies are queued in this list when the buffer is full)
	OutputMemory       int           // omem, output buffer memory usage
	TotalMemory        int           // tot-mem, total memory consumed by this client in its various buffers
	Events             string        // file descriptor events (see below)
	LastCmd            string        // cmd, last command played
	User               string        // the authenticated username of the client
	Redir              int64         // client id of current client tracking redirection
	Resp               int           // redis version 7.0, client RESP protocol version
	LibName            string        // redis version 7.2, client library name
	LibVer             string        // redis version 7.2, client library version
}

ClientInfo is redis-server ClientInfo, not go-redis *Client

type ClientInfoCmd

type ClientInfoCmd struct {
	// contains filtered or unexported fields
}

func NewClientInfoCmd

func NewClientInfoCmd(ctx context.Context, args ...interface{}) *ClientInfoCmd

func (*ClientInfoCmd) Args

func (cmd *ClientInfoCmd) Args() []interface{}

func (*ClientInfoCmd) Err

func (cmd *ClientInfoCmd) Err() error

func (*ClientInfoCmd) FullName

func (cmd *ClientInfoCmd) FullName() string

func (*ClientInfoCmd) Name

func (cmd *ClientInfoCmd) Name() string

func (*ClientInfoCmd) Result

func (cmd *ClientInfoCmd) Result() (*ClientInfo, error)

func (*ClientInfoCmd) SetErr

func (cmd *ClientInfoCmd) SetErr(e error)

func (*ClientInfoCmd) SetFirstKeyPos

func (cmd *ClientInfoCmd) SetFirstKeyPos(keyPos int8)

func (*ClientInfoCmd) SetVal

func (cmd *ClientInfoCmd) SetVal(val *ClientInfo)

func (*ClientInfoCmd) String

func (cmd *ClientInfoCmd) String() string

func (*ClientInfoCmd) Val

func (cmd *ClientInfoCmd) Val() *ClientInfo

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
// See http://redis.io/topics/cluster-tutorial for instructions
// how to setup Redis Cluster.
rdb := redis.NewClusterClient(&redis.ClusterOptions{
	Addrs: []string{":7000", ":7001", ":7002", ":7003", ":7004", ":7005"},
})
rdb.Ping(ctx)
Output:

Example (ManualSetup)

Following example creates a cluster from 2 master nodes and 2 slave nodes without using cluster mode or Redis Sentinel.

// 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(ctx context.Context) ([]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
}

rdb := redis.NewClusterClient(&redis.ClusterOptions{
	ClusterSlots:  clusterSlots,
	RouteRandomly: true,
})
rdb.Ping(ctx)

// ReloadState reloads cluster state. It calls ClusterSlots func
// to get cluster slots information.
rdb.ReloadState(ctx)
Output:

func NewFailoverClusterClient

func NewFailoverClusterClient(failoverOpt *FailoverOptions) *ClusterClient

NewFailoverClusterClient returns a client that supports routing read-only commands to a replica node.

func (ClusterClient) ACLDryRun

func (c ClusterClient) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (ClusterClient) ACLLog

func (c ClusterClient) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (ClusterClient) ACLLogReset

func (c ClusterClient) ACLLogReset(ctx context.Context) *StatusCmd

func (*ClusterClient) AddHook

func (hs *ClusterClient) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (ClusterClient) Append

func (c ClusterClient) Append(ctx context.Context, key, value string) *IntCmd

func (ClusterClient) BFAdd

func (c ClusterClient) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (ClusterClient) BFCard

func (c ClusterClient) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (ClusterClient) BFExists

func (c ClusterClient) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (ClusterClient) BFInfo

func (c ClusterClient) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoArg

func (c ClusterClient) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoCapacity

func (c ClusterClient) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoExpansion

func (c ClusterClient) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoFilters

func (c ClusterClient) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoItems

func (c ClusterClient) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInfoSize

func (c ClusterClient) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (ClusterClient) BFInsert

func (c ClusterClient) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (ClusterClient) BFLoadChunk

func (c ClusterClient) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (ClusterClient) BFMAdd

func (c ClusterClient) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (ClusterClient) BFMExists

func (c ClusterClient) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (ClusterClient) BFReserve

func (c ClusterClient) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (ClusterClient) BFReserveExpansion

func (c ClusterClient) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (ClusterClient) BFReserveNonScaling

func (c ClusterClient) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (ClusterClient) BFReserveWithArgs

func (c ClusterClient) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (ClusterClient) BFScanDump

func (c ClusterClient) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (ClusterClient) BLMPop

func (c ClusterClient) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (ClusterClient) BLMove

func (c ClusterClient) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (ClusterClient) BLPop

func (c ClusterClient) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (ClusterClient) BRPop

func (c ClusterClient) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (ClusterClient) BRPopLPush

func (c ClusterClient) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (ClusterClient) BZMPop

func (c ClusterClient) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (ClusterClient) BZPopMax

func (c ClusterClient) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (ClusterClient) BZPopMin

func (c ClusterClient) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (ClusterClient) BgRewriteAOF

func (c ClusterClient) BgRewriteAOF(ctx context.Context) *StatusCmd

func (ClusterClient) BgSave

func (c ClusterClient) BgSave(ctx context.Context) *StatusCmd

func (ClusterClient) BitCount

func (c ClusterClient) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (ClusterClient) BitField

func (c ClusterClient) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (ClusterClient) BitFieldRO

func (c ClusterClient) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (ClusterClient) BitOpAnd

func (c ClusterClient) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (ClusterClient) BitOpNot

func (c ClusterClient) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (ClusterClient) BitOpOr

func (c ClusterClient) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (ClusterClient) BitOpXor

func (c ClusterClient) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (ClusterClient) BitPos

func (c ClusterClient) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (ClusterClient) BitPosSpan

func (c ClusterClient) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (ClusterClient) CFAdd

func (c ClusterClient) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (ClusterClient) CFAddNX

func (c ClusterClient) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (ClusterClient) CFCount

func (c ClusterClient) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (ClusterClient) CFDel

func (c ClusterClient) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (ClusterClient) CFExists

func (c ClusterClient) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (ClusterClient) CFInfo

func (c ClusterClient) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (ClusterClient) CFInsert

func (c ClusterClient) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (ClusterClient) CFInsertNX

func (c ClusterClient) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (ClusterClient) CFLoadChunk

func (c ClusterClient) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (ClusterClient) CFMExists

func (c ClusterClient) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (ClusterClient) CFReserve

func (c ClusterClient) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (ClusterClient) CFReserveBucketSize

func (c ClusterClient) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (ClusterClient) CFReserveExpansion

func (c ClusterClient) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (ClusterClient) CFReserveMaxIterations

func (c ClusterClient) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (ClusterClient) CFReserveWithArgs

func (c ClusterClient) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (ClusterClient) CFScanDump

func (c ClusterClient) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (ClusterClient) CMSIncrBy

func (c ClusterClient) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (ClusterClient) CMSInfo

func (c ClusterClient) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (ClusterClient) CMSInitByDim

func (c ClusterClient) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (ClusterClient) CMSInitByProb

func (c ClusterClient) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (ClusterClient) CMSMerge

func (c ClusterClient) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (ClusterClient) CMSMergeWithWeight

func (c ClusterClient) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (ClusterClient) CMSQuery

func (c ClusterClient) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (ClusterClient) ClientGetName

func (c ClusterClient) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (ClusterClient) ClientID

func (c ClusterClient) ClientID(ctx context.Context) *IntCmd

func (ClusterClient) ClientInfo

func (c ClusterClient) ClientInfo(ctx context.Context) *ClientInfoCmd

func (ClusterClient) ClientKill

func (c ClusterClient) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (ClusterClient) ClientKillByFilter

func (c ClusterClient) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (ClusterClient) ClientList

func (c ClusterClient) ClientList(ctx context.Context) *StringCmd

func (ClusterClient) ClientPause

func (c ClusterClient) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (ClusterClient) ClientUnblock

func (c ClusterClient) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (ClusterClient) ClientUnblockWithError

func (c ClusterClient) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (ClusterClient) ClientUnpause

func (c ClusterClient) ClientUnpause(ctx context.Context) *BoolCmd

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 (c ClusterClient) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (ClusterClient) ClusterAddSlotsRange

func (c ClusterClient) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (ClusterClient) ClusterCountFailureReports

func (c ClusterClient) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (ClusterClient) ClusterCountKeysInSlot

func (c ClusterClient) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (ClusterClient) ClusterDelSlots

func (c ClusterClient) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (ClusterClient) ClusterDelSlotsRange

func (c ClusterClient) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (ClusterClient) ClusterFailover

func (c ClusterClient) ClusterFailover(ctx context.Context) *StatusCmd

func (ClusterClient) ClusterForget

func (c ClusterClient) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (ClusterClient) ClusterGetKeysInSlot

func (c ClusterClient) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (ClusterClient) ClusterInfo

func (c ClusterClient) ClusterInfo(ctx context.Context) *StringCmd

func (ClusterClient) ClusterKeySlot

func (c ClusterClient) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c ClusterClient) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (ClusterClient) ClusterMeet

func (c ClusterClient) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (ClusterClient) ClusterMyShardID

func (c ClusterClient) ClusterMyShardID(ctx context.Context) *StringCmd

func (ClusterClient) ClusterNodes

func (c ClusterClient) ClusterNodes(ctx context.Context) *StringCmd

func (ClusterClient) ClusterReplicate

func (c ClusterClient) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (ClusterClient) ClusterResetHard

func (c ClusterClient) ClusterResetHard(ctx context.Context) *StatusCmd

func (ClusterClient) ClusterResetSoft

func (c ClusterClient) ClusterResetSoft(ctx context.Context) *StatusCmd

func (ClusterClient) ClusterSaveConfig

func (c ClusterClient) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (ClusterClient) ClusterShards

func (c ClusterClient) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (ClusterClient) ClusterSlaves

func (c ClusterClient) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (ClusterClient) ClusterSlots

func (c ClusterClient) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (ClusterClient) Command

func (c ClusterClient) Command(ctx context.Context) *CommandsInfoCmd

func (ClusterClient) CommandGetKeys

func (c ClusterClient) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (ClusterClient) CommandGetKeysAndFlags

func (c ClusterClient) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (ClusterClient) CommandList

func (c ClusterClient) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (ClusterClient) ConfigGet

func (c ClusterClient) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (ClusterClient) ConfigResetStat

func (c ClusterClient) ConfigResetStat(ctx context.Context) *StatusCmd

func (ClusterClient) ConfigRewrite

func (c ClusterClient) ConfigRewrite(ctx context.Context) *StatusCmd

func (ClusterClient) ConfigSet

func (c ClusterClient) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (ClusterClient) Copy

func (c ClusterClient) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (*ClusterClient) DBSize

func (c *ClusterClient) DBSize(ctx context.Context) *IntCmd

func (ClusterClient) DebugObject

func (c ClusterClient) DebugObject(ctx context.Context, key string) *StringCmd

func (ClusterClient) Decr

func (c ClusterClient) Decr(ctx context.Context, key string) *IntCmd

func (ClusterClient) DecrBy

func (c ClusterClient) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (ClusterClient) Del

func (c ClusterClient) Del(ctx context.Context, keys ...string) *IntCmd

func (*ClusterClient) Do

func (c *ClusterClient) Do(ctx context.Context, args ...interface{}) *Cmd

Do create a Cmd from the args and processes the cmd.

func (ClusterClient) Dump

func (c ClusterClient) Dump(ctx context.Context, key string) *StringCmd

func (ClusterClient) Echo

func (c ClusterClient) Echo(ctx context.Context, message interface{}) *StringCmd

func (ClusterClient) Eval

func (c ClusterClient) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) EvalRO

func (c ClusterClient) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) EvalSha

func (c ClusterClient) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) EvalShaRO

func (c ClusterClient) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) Exists

func (c ClusterClient) Exists(ctx context.Context, keys ...string) *IntCmd

func (ClusterClient) Expire

func (c ClusterClient) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) ExpireAt

func (c ClusterClient) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (ClusterClient) ExpireGT

func (c ClusterClient) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) ExpireLT

func (c ClusterClient) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) ExpireNX

func (c ClusterClient) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) ExpireTime

func (c ClusterClient) ExpireTime(ctx context.Context, key string) *DurationCmd

func (ClusterClient) ExpireXX

func (c ClusterClient) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) FCall

func (c ClusterClient) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) FCallRO

func (c ClusterClient) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (ClusterClient) FCallRo

func (c ClusterClient) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (ClusterClient) FlushAll

func (c ClusterClient) FlushAll(ctx context.Context) *StatusCmd

func (ClusterClient) FlushAllAsync

func (c ClusterClient) FlushAllAsync(ctx context.Context) *StatusCmd

func (ClusterClient) FlushDB

func (c ClusterClient) FlushDB(ctx context.Context) *StatusCmd

func (ClusterClient) FlushDBAsync

func (c ClusterClient) FlushDBAsync(ctx context.Context) *StatusCmd

func (*ClusterClient) ForEachMaster

func (c *ClusterClient) ForEachMaster(
	ctx context.Context,
	fn func(ctx context.Context, 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) ForEachShard

func (c *ClusterClient) ForEachShard(
	ctx context.Context,
	fn func(ctx context.Context, client *Client) error,
) error

ForEachShard 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(
	ctx context.Context,
	fn func(ctx context.Context, 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) FunctionDelete

func (c ClusterClient) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (ClusterClient) FunctionDump

func (c ClusterClient) FunctionDump(ctx context.Context) *StringCmd

func (ClusterClient) FunctionFlush

func (c ClusterClient) FunctionFlush(ctx context.Context) *StringCmd

func (ClusterClient) FunctionFlushAsync

func (c ClusterClient) FunctionFlushAsync(ctx context.Context) *StringCmd

func (ClusterClient) FunctionKill

func (c ClusterClient) FunctionKill(ctx context.Context) *StringCmd

func (ClusterClient) FunctionList

func (c ClusterClient) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (ClusterClient) FunctionLoad

func (c ClusterClient) FunctionLoad(ctx context.Context, code string) *StringCmd

func (ClusterClient) FunctionLoadReplace

func (c ClusterClient) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (ClusterClient) FunctionRestore

func (c ClusterClient) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (ClusterClient) FunctionStats

func (c ClusterClient) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (ClusterClient) GeoAdd

func (c ClusterClient) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (ClusterClient) GeoDist

func (c ClusterClient) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (ClusterClient) GeoHash

func (c ClusterClient) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (ClusterClient) GeoPos

func (c ClusterClient) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (ClusterClient) GeoRadius

func (c ClusterClient) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (ClusterClient) GeoRadiusByMember

func (c ClusterClient) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (ClusterClient) GeoRadiusByMemberStore

func (c ClusterClient) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (ClusterClient) GeoRadiusStore

func (c ClusterClient) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (ClusterClient) GeoSearch

func (c ClusterClient) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (ClusterClient) GeoSearchLocation

func (c ClusterClient) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (ClusterClient) GeoSearchStore

func (c ClusterClient) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (ClusterClient) Get

func (c ClusterClient) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (ClusterClient) GetBit

func (c ClusterClient) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (ClusterClient) GetDel

func (c ClusterClient) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (ClusterClient) GetEx

func (c ClusterClient) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (ClusterClient) GetRange

func (c ClusterClient) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (ClusterClient) GetSet

func (c ClusterClient) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (ClusterClient) HDel

func (c ClusterClient) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (ClusterClient) HExists

func (c ClusterClient) HExists(ctx context.Context, key, field string) *BoolCmd

func (ClusterClient) HGet

func (c ClusterClient) HGet(ctx context.Context, key, field string) *StringCmd

func (ClusterClient) HGetAll

func (c ClusterClient) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (ClusterClient) HIncrBy

func (c ClusterClient) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (ClusterClient) HIncrByFloat

func (c ClusterClient) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (ClusterClient) HKeys

func (c ClusterClient) HKeys(ctx context.Context, key string) *StringSliceCmd

func (ClusterClient) HLen

func (c ClusterClient) HLen(ctx context.Context, key string) *IntCmd

func (ClusterClient) HMGet

func (c ClusterClient) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (ClusterClient) HMSet

func (c ClusterClient) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (ClusterClient) HRandField

func (c ClusterClient) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (ClusterClient) HRandFieldWithValues

func (c ClusterClient) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (ClusterClient) HScan

func (c ClusterClient) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (ClusterClient) HSet

func (c ClusterClient) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

func (ClusterClient) HSetNX

func (c ClusterClient) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (ClusterClient) HVals

func (c ClusterClient) HVals(ctx context.Context, key string) *StringSliceCmd

func (ClusterClient) Incr

func (c ClusterClient) Incr(ctx context.Context, key string) *IntCmd

func (ClusterClient) IncrBy

func (c ClusterClient) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (ClusterClient) IncrByFloat

func (c ClusterClient) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (ClusterClient) Info

func (c ClusterClient) Info(ctx context.Context, sections ...string) *StringCmd

func (ClusterClient) InfoMap

func (c ClusterClient) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (ClusterClient) JSONArrAppend

func (c ClusterClient) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (ClusterClient) JSONArrIndex

func (c ClusterClient) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (ClusterClient) JSONArrIndexWithArgs

func (c ClusterClient) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (ClusterClient) JSONArrInsert

func (c ClusterClient) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (ClusterClient) JSONArrLen

func (c ClusterClient) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (ClusterClient) JSONArrPop

func (c ClusterClient) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (ClusterClient) JSONArrTrim

func (c ClusterClient) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (ClusterClient) JSONArrTrimWithArgs

func (c ClusterClient) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (ClusterClient) JSONClear

func (c ClusterClient) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (ClusterClient) JSONDebugMemory

func (c ClusterClient) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (ClusterClient) JSONDel

func (c ClusterClient) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (ClusterClient) JSONForget

func (c ClusterClient) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (ClusterClient) JSONGet

func (c ClusterClient) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (ClusterClient) JSONGetWithArgs

func (c ClusterClient) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (ClusterClient) JSONMGet

func (c ClusterClient) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (ClusterClient) JSONMSet

func (c ClusterClient) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (ClusterClient) JSONMSetArgs

func (c ClusterClient) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (ClusterClient) JSONMerge

func (c ClusterClient) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (ClusterClient) JSONNumIncrBy

func (c ClusterClient) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (ClusterClient) JSONObjKeys

func (c ClusterClient) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (ClusterClient) JSONObjLen

func (c ClusterClient) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (ClusterClient) JSONSet

func (c ClusterClient) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (ClusterClient) JSONSetMode

func (c ClusterClient) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (ClusterClient) JSONStrAppend

func (c ClusterClient) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (ClusterClient) JSONStrLen

func (c ClusterClient) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (ClusterClient) JSONToggle

func (c ClusterClient) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (ClusterClient) JSONType

func (c ClusterClient) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (ClusterClient) Keys

func (c ClusterClient) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (ClusterClient) LCS

func (c ClusterClient) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (ClusterClient) LIndex

func (c ClusterClient) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (ClusterClient) LInsert

func (c ClusterClient) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (ClusterClient) LInsertAfter

func (c ClusterClient) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (ClusterClient) LInsertBefore

func (c ClusterClient) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (ClusterClient) LLen

func (c ClusterClient) LLen(ctx context.Context, key string) *IntCmd

func (ClusterClient) LMPop

func (c ClusterClient) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (ClusterClient) LMove

func (c ClusterClient) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (ClusterClient) LPop

func (c ClusterClient) LPop(ctx context.Context, key string) *StringCmd

func (ClusterClient) LPopCount

func (c ClusterClient) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (ClusterClient) LPos

func (c ClusterClient) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (ClusterClient) LPosCount

func (c ClusterClient) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (ClusterClient) LPush

func (c ClusterClient) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (ClusterClient) LPushX

func (c ClusterClient) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (ClusterClient) LRange

func (c ClusterClient) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (ClusterClient) LRem

func (c ClusterClient) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (ClusterClient) LSet

func (c ClusterClient) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (ClusterClient) LTrim

func (c ClusterClient) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (ClusterClient) LastSave

func (c ClusterClient) LastSave(ctx context.Context) *IntCmd

func (ClusterClient) MGet

func (c ClusterClient) MGet(ctx context.Context, keys ...string) *SliceCmd

func (ClusterClient) MSet

func (c ClusterClient) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (ClusterClient) MSetNX

func (c ClusterClient) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (*ClusterClient) MasterForKey

func (c *ClusterClient) MasterForKey(ctx context.Context, key string) (*Client, error)

MasterForKey return a client to the master node for a particular key.

func (ClusterClient) MemoryUsage

func (c ClusterClient) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (ClusterClient) Migrate

func (c ClusterClient) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (ClusterClient) ModuleLoadex

func (c ClusterClient) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (ClusterClient) Monitor

func (c ClusterClient) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (ClusterClient) Move

func (c ClusterClient) Move(ctx context.Context, key string, db int) *BoolCmd

func (ClusterClient) ObjectEncoding

func (c ClusterClient) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (ClusterClient) ObjectFreq

func (c ClusterClient) ObjectFreq(ctx context.Context, key string) *IntCmd

func (ClusterClient) ObjectIdleTime

func (c ClusterClient) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (ClusterClient) ObjectRefCount

func (c ClusterClient) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (*ClusterClient) OnNewNode

func (c *ClusterClient) OnNewNode(fn func(rdb *Client))

func (*ClusterClient) Options

func (c *ClusterClient) Options() *ClusterOptions

Options returns read-only Options that were used to create the client.

func (ClusterClient) PExpire

func (c ClusterClient) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (ClusterClient) PExpireAt

func (c ClusterClient) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (ClusterClient) PExpireTime

func (c ClusterClient) PExpireTime(ctx context.Context, key string) *DurationCmd

func (ClusterClient) PFAdd

func (c ClusterClient) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (ClusterClient) PFCount

func (c ClusterClient) PFCount(ctx context.Context, keys ...string) *IntCmd

func (ClusterClient) PFMerge

func (c ClusterClient) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (*ClusterClient) PSubscribe

func (c *ClusterClient) PSubscribe(ctx context.Context, 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(ctx context.Context, key string) *DurationCmd

func (ClusterClient) Persist

func (c ClusterClient) Persist(ctx context.Context, key string) *BoolCmd

func (ClusterClient) Ping

func (c ClusterClient) Ping(ctx context.Context) *StatusCmd

func (*ClusterClient) Pipeline

func (c *ClusterClient) Pipeline() Pipeliner

func (*ClusterClient) Pipelined

func (c *ClusterClient) Pipelined(ctx context.Context, 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(ctx context.Context, cmd Cmder) error

func (ClusterClient) PubSubChannels

func (c ClusterClient) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (ClusterClient) PubSubNumPat

func (c ClusterClient) PubSubNumPat(ctx context.Context) *IntCmd

func (ClusterClient) PubSubNumSub

func (c ClusterClient) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (ClusterClient) PubSubShardChannels

func (c ClusterClient) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (ClusterClient) PubSubShardNumSub

func (c ClusterClient) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (ClusterClient) Publish

func (c ClusterClient) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (ClusterClient) Quit

func (c ClusterClient) Quit(_ context.Context) *StatusCmd

func (ClusterClient) RPop

func (c ClusterClient) RPop(ctx context.Context, key string) *StringCmd

func (ClusterClient) RPopCount

func (c ClusterClient) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (ClusterClient) RPopLPush

func (c ClusterClient) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (ClusterClient) RPush

func (c ClusterClient) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (ClusterClient) RPushX

func (c ClusterClient) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (ClusterClient) RandomKey

func (c ClusterClient) RandomKey(ctx context.Context) *StringCmd

func (ClusterClient) ReadOnly

func (c ClusterClient) ReadOnly(ctx context.Context) *StatusCmd

func (ClusterClient) ReadWrite

func (c ClusterClient) ReadWrite(ctx context.Context) *StatusCmd

func (*ClusterClient) ReloadState

func (c *ClusterClient) ReloadState(ctx context.Context)

ReloadState reloads cluster state. If available it calls ClusterSlots func to get cluster slots information.

func (ClusterClient) Rename

func (c ClusterClient) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (ClusterClient) RenameNX

func (c ClusterClient) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (ClusterClient) Restore

func (c ClusterClient) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (ClusterClient) RestoreReplace

func (c ClusterClient) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (ClusterClient) SAdd

func (c ClusterClient) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (ClusterClient) SCard

func (c ClusterClient) SCard(ctx context.Context, key string) *IntCmd

func (ClusterClient) SDiff

func (c ClusterClient) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (ClusterClient) SDiffStore

func (c ClusterClient) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (ClusterClient) SInter

func (c ClusterClient) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (ClusterClient) SInterCard

func (c ClusterClient) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (ClusterClient) SInterStore

func (c ClusterClient) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (ClusterClient) SIsMember

func (c ClusterClient) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (ClusterClient) SMIsMember

func (c ClusterClient) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (ClusterClient) SMembers

func (c ClusterClient) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (ClusterClient) SMembersMap

func (c ClusterClient) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (ClusterClient) SMove

func (c ClusterClient) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (ClusterClient) SPop

func (c ClusterClient) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (ClusterClient) SPopN

func (c ClusterClient) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (ClusterClient) SPublish

func (c ClusterClient) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (ClusterClient) SRandMember

func (c ClusterClient) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (ClusterClient) SRandMemberN

func (c ClusterClient) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (ClusterClient) SRem

func (c ClusterClient) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (ClusterClient) SScan

func (c ClusterClient) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (*ClusterClient) SSubscribe

func (c *ClusterClient) SSubscribe(ctx context.Context, channels ...string) *PubSub

SSubscribe Subscribes the client to the specified shard channels.

func (ClusterClient) SUnion

func (c ClusterClient) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (ClusterClient) SUnionStore

func (c ClusterClient) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (ClusterClient) Save

func (c ClusterClient) Save(ctx context.Context) *StatusCmd

func (ClusterClient) Scan

func (c ClusterClient) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd

func (ClusterClient) ScanType

func (c ClusterClient) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd

func (*ClusterClient) ScriptExists

func (c *ClusterClient) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (*ClusterClient) ScriptFlush

func (c *ClusterClient) ScriptFlush(ctx context.Context) *StatusCmd

func (ClusterClient) ScriptKill

func (c ClusterClient) ScriptKill(ctx context.Context) *StatusCmd

func (*ClusterClient) ScriptLoad

func (c *ClusterClient) ScriptLoad(ctx context.Context, script string) *StringCmd

func (ClusterClient) Set

func (c ClusterClient) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (ClusterClient) SetArgs

func (c ClusterClient) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (ClusterClient) SetBit

func (c ClusterClient) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (ClusterClient) SetEx

func (c ClusterClient) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

func (ClusterClient) SetNX

func (c ClusterClient) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (ClusterClient) SetRange

func (c ClusterClient) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (ClusterClient) SetXX

func (c ClusterClient) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (ClusterClient) Shutdown

func (c ClusterClient) Shutdown(ctx context.Context) *StatusCmd

func (ClusterClient) ShutdownNoSave

func (c ClusterClient) ShutdownNoSave(ctx context.Context) *StatusCmd

func (ClusterClient) ShutdownSave

func (c ClusterClient) ShutdownSave(ctx context.Context) *StatusCmd

func (*ClusterClient) SlaveForKey

func (c *ClusterClient) SlaveForKey(ctx context.Context, key string) (*Client, error)

SlaveForKey gets a client for a replica node to run any command on it. This is especially useful if we want to run a particular lua script which has only read only commands on the replica. This is because other redis commands generally have a flag that points that they are read only and automatically run on the replica nodes if ClusterOptions.ReadOnly flag is set to true.

func (ClusterClient) SlaveOf

func (c ClusterClient) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (ClusterClient) SlowLogGet

func (c ClusterClient) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd

func (ClusterClient) Sort

func (c ClusterClient) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (ClusterClient) SortInterfaces

func (c ClusterClient) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (ClusterClient) SortRO

func (c ClusterClient) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (ClusterClient) SortStore

func (c ClusterClient) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (ClusterClient) StrLen

func (c ClusterClient) StrLen(ctx context.Context, key string) *IntCmd

func (*ClusterClient) Subscribe

func (c *ClusterClient) Subscribe(ctx context.Context, channels ...string) *PubSub

Subscribe subscribes the client to the specified channels. Channels can be omitted to create empty subscription.

func (ClusterClient) Sync

func (c ClusterClient) Sync(_ context.Context)

func (ClusterClient) TDigestAdd

func (c ClusterClient) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (ClusterClient) TDigestByRank

func (c ClusterClient) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (ClusterClient) TDigestByRevRank

func (c ClusterClient) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (ClusterClient) TDigestCDF

func (c ClusterClient) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (ClusterClient) TDigestCreate

func (c ClusterClient) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (ClusterClient) TDigestCreateWithCompression

func (c ClusterClient) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (ClusterClient) TDigestInfo

func (c ClusterClient) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (ClusterClient) TDigestMax

func (c ClusterClient) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (ClusterClient) TDigestMerge

func (c ClusterClient) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (ClusterClient) TDigestMin

func (c ClusterClient) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (ClusterClient) TDigestQuantile

func (c ClusterClient) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (ClusterClient) TDigestRank

func (c ClusterClient) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (ClusterClient) TDigestReset

func (c ClusterClient) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (ClusterClient) TDigestRevRank

func (c ClusterClient) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (ClusterClient) TDigestTrimmedMean

func (c ClusterClient) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (ClusterClient) TFCall

func (c ClusterClient) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (ClusterClient) TFCallASYNC

func (c ClusterClient) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (ClusterClient) TFCallASYNCArgs

func (c ClusterClient) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (ClusterClient) TFCallArgs

func (c ClusterClient) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (ClusterClient) TFunctionDelete

func (c ClusterClient) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (ClusterClient) TFunctionList

func (c ClusterClient) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (ClusterClient) TFunctionListArgs

func (c ClusterClient) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (ClusterClient) TFunctionLoad

func (c ClusterClient) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (ClusterClient) TFunctionLoadArgs

func (c ClusterClient) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (ClusterClient) TSAdd

func (c ClusterClient) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (ClusterClient) TSAddWithArgs

func (c ClusterClient) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (ClusterClient) TSAlter

func (c ClusterClient) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (ClusterClient) TSCreate

func (c ClusterClient) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (ClusterClient) TSCreateRule

func (c ClusterClient) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (ClusterClient) TSCreateRuleWithArgs

func (c ClusterClient) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (ClusterClient) TSCreateWithArgs

func (c ClusterClient) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (ClusterClient) TSDecrBy

func (c ClusterClient) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (ClusterClient) TSDecrByWithArgs

func (c ClusterClient) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (ClusterClient) TSDel

func (c ClusterClient) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (ClusterClient) TSDeleteRule

func (c ClusterClient) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (ClusterClient) TSGet

func (c ClusterClient) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (ClusterClient) TSGetWithArgs

func (c ClusterClient) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (ClusterClient) TSIncrBy

func (c ClusterClient) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (ClusterClient) TSIncrByWithArgs

func (c ClusterClient) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (ClusterClient) TSInfo

func (c ClusterClient) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (ClusterClient) TSInfoWithArgs

func (c ClusterClient) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (ClusterClient) TSMAdd

func (c ClusterClient) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (ClusterClient) TSMGet

func (c ClusterClient) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (ClusterClient) TSMGetWithArgs

func (c ClusterClient) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (ClusterClient) TSMRange

func (c ClusterClient) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (ClusterClient) TSMRangeWithArgs

func (c ClusterClient) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (ClusterClient) TSMRevRange

func (c ClusterClient) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (ClusterClient) TSMRevRangeWithArgs

func (c ClusterClient) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (ClusterClient) TSQueryIndex

func (c ClusterClient) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (ClusterClient) TSRange

func (c ClusterClient) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (ClusterClient) TSRangeWithArgs

func (c ClusterClient) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (ClusterClient) TSRevRange

func (c ClusterClient) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (ClusterClient) TSRevRangeWithArgs

func (c ClusterClient) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (ClusterClient) TTL

func (c ClusterClient) TTL(ctx context.Context, key string) *DurationCmd

func (ClusterClient) Time

func (c ClusterClient) Time(ctx context.Context) *TimeCmd

func (ClusterClient) TopKAdd

func (c ClusterClient) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (ClusterClient) TopKCount

func (c ClusterClient) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (ClusterClient) TopKIncrBy

func (c ClusterClient) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (ClusterClient) TopKInfo

func (c ClusterClient) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (ClusterClient) TopKList

func (c ClusterClient) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (ClusterClient) TopKListWithCount

func (c ClusterClient) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (ClusterClient) TopKQuery

func (c ClusterClient) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (ClusterClient) TopKReserve

func (c ClusterClient) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (ClusterClient) TopKReserveWithOptions

func (c ClusterClient) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (ClusterClient) Touch

func (c ClusterClient) Touch(ctx context.Context, keys ...string) *IntCmd

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(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (ClusterClient) Type

func (c ClusterClient) Type(ctx context.Context, key string) *StatusCmd
func (c ClusterClient) Unlink(ctx context.Context, keys ...string) *IntCmd

func (ClusterClient) Wait

func (c ClusterClient) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (ClusterClient) WaitAOF

func (c ClusterClient) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (*ClusterClient) Watch

func (c *ClusterClient) Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error

func (ClusterClient) XAck

func (c ClusterClient) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (ClusterClient) XAdd

func (c ClusterClient) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (ClusterClient) XAutoClaim

func (c ClusterClient) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (ClusterClient) XAutoClaimJustID

func (c ClusterClient) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (ClusterClient) XClaim

func (c ClusterClient) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (ClusterClient) XClaimJustID

func (c ClusterClient) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (ClusterClient) XDel

func (c ClusterClient) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (ClusterClient) XGroupCreate

func (c ClusterClient) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (ClusterClient) XGroupCreateConsumer

func (c ClusterClient) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (ClusterClient) XGroupCreateMkStream

func (c ClusterClient) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (ClusterClient) XGroupDelConsumer

func (c ClusterClient) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (ClusterClient) XGroupDestroy

func (c ClusterClient) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (ClusterClient) XGroupSetID

func (c ClusterClient) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (ClusterClient) XInfoConsumers

func (c ClusterClient) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (ClusterClient) XInfoGroups

func (c ClusterClient) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (ClusterClient) XInfoStream

func (c ClusterClient) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (ClusterClient) XInfoStreamFull

func (c ClusterClient) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (ClusterClient) XLen

func (c ClusterClient) XLen(ctx context.Context, stream string) *IntCmd

func (ClusterClient) XPending

func (c ClusterClient) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (ClusterClient) XPendingExt

func (c ClusterClient) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (ClusterClient) XRange

func (c ClusterClient) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (ClusterClient) XRangeN

func (c ClusterClient) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (ClusterClient) XRead

func (c ClusterClient) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (ClusterClient) XReadGroup

func (c ClusterClient) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (ClusterClient) XReadStreams

func (c ClusterClient) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (ClusterClient) XRevRange

func (c ClusterClient) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (ClusterClient) XRevRangeN

func (c ClusterClient) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (ClusterClient) XTrimMaxLen

func (c ClusterClient) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (ClusterClient) XTrimMaxLenApprox

func (c ClusterClient) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (ClusterClient) XTrimMinID

func (c ClusterClient) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (ClusterClient) XTrimMinIDApprox

func (c ClusterClient) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (ClusterClient) ZAdd

func (c ClusterClient) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (ClusterClient) ZAddArgs

func (c ClusterClient) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (ClusterClient) ZAddArgsIncr

func (c ClusterClient) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (ClusterClient) ZAddGT

func (c ClusterClient) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (ClusterClient) ZAddLT

func (c ClusterClient) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (ClusterClient) ZAddNX

func (c ClusterClient) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (ClusterClient) ZAddXX

func (c ClusterClient) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (ClusterClient) ZCard

func (c ClusterClient) ZCard(ctx context.Context, key string) *IntCmd

func (ClusterClient) ZCount

func (c ClusterClient) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (ClusterClient) ZDiff

func (c ClusterClient) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (ClusterClient) ZDiffStore

func (c ClusterClient) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (ClusterClient) ZDiffWithScores

func (c ClusterClient) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (ClusterClient) ZIncrBy

func (c ClusterClient) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (ClusterClient) ZInter

func (c ClusterClient) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (ClusterClient) ZInterCard

func (c ClusterClient) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (ClusterClient) ZInterStore

func (c ClusterClient) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (ClusterClient) ZInterWithScores

func (c ClusterClient) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (ClusterClient) ZLexCount

func (c ClusterClient) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (ClusterClient) ZMPop

func (c ClusterClient) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (ClusterClient) ZMScore

func (c ClusterClient) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (ClusterClient) ZPopMax

func (c ClusterClient) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (ClusterClient) ZPopMin

func (c ClusterClient) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (ClusterClient) ZRandMember

func (c ClusterClient) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (ClusterClient) ZRandMemberWithScores

func (c ClusterClient) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (ClusterClient) ZRange

func (c ClusterClient) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (ClusterClient) ZRangeArgs

func (c ClusterClient) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (ClusterClient) ZRangeArgsWithScores

func (c ClusterClient) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (ClusterClient) ZRangeByLex

func (c ClusterClient) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (ClusterClient) ZRangeByScore

func (c ClusterClient) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (ClusterClient) ZRangeByScoreWithScores

func (c ClusterClient) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (ClusterClient) ZRangeStore

func (c ClusterClient) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (ClusterClient) ZRangeWithScores

func (c ClusterClient) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (ClusterClient) ZRank

func (c ClusterClient) ZRank(ctx context.Context, key, member string) *IntCmd

func (ClusterClient) ZRankWithScore

func (c ClusterClient) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (ClusterClient) ZRem

func (c ClusterClient) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (ClusterClient) ZRemRangeByLex

func (c ClusterClient) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (ClusterClient) ZRemRangeByRank

func (c ClusterClient) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (ClusterClient) ZRemRangeByScore

func (c ClusterClient) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (ClusterClient) ZRevRange

func (c ClusterClient) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (ClusterClient) ZRevRangeByLex

func (c ClusterClient) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (ClusterClient) ZRevRangeByScore

func (c ClusterClient) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (ClusterClient) ZRevRangeByScoreWithScores

func (c ClusterClient) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (ClusterClient) ZRevRangeWithScores

func (c ClusterClient) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (ClusterClient) ZRevRank

func (c ClusterClient) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (ClusterClient) ZRevRankWithScore

func (c ClusterClient) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (ClusterClient) ZScan

func (c ClusterClient) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (ClusterClient) ZScore

func (c ClusterClient) ZScore(ctx context.Context, key, member string) *FloatCmd

func (ClusterClient) ZUnion

func (c ClusterClient) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (ClusterClient) ZUnionStore

func (c ClusterClient) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (ClusterClient) ZUnionWithScores

func (c ClusterClient) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type ClusterCmdable

type ClusterCmdable interface {
	ClusterMyShardID(ctx context.Context) *StringCmd
	ClusterSlots(ctx context.Context) *ClusterSlotsCmd
	ClusterShards(ctx context.Context) *ClusterShardsCmd
	ClusterLinks(ctx context.Context) *ClusterLinksCmd
	ClusterNodes(ctx context.Context) *StringCmd
	ClusterMeet(ctx context.Context, host, port string) *StatusCmd
	ClusterForget(ctx context.Context, nodeID string) *StatusCmd
	ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
	ClusterResetSoft(ctx context.Context) *StatusCmd
	ClusterResetHard(ctx context.Context) *StatusCmd
	ClusterInfo(ctx context.Context) *StringCmd
	ClusterKeySlot(ctx context.Context, key string) *IntCmd
	ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
	ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
	ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
	ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
	ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
	ClusterSaveConfig(ctx context.Context) *StatusCmd
	ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
	ClusterFailover(ctx context.Context) *StatusCmd
	ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
	ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
	ReadOnly(ctx context.Context) *StatusCmd
	ReadWrite(ctx context.Context) *StatusCmd
}
type ClusterLink struct {
	Direction           string
	Node                string
	CreateTime          int64
	Events              string
	SendBufferAllocated int64
	SendBufferUsed      int64
}

type ClusterLinksCmd

type ClusterLinksCmd struct {
	// contains filtered or unexported fields
}

func NewClusterLinksCmd

func NewClusterLinksCmd(ctx context.Context, args ...interface{}) *ClusterLinksCmd

func (*ClusterLinksCmd) Args

func (cmd *ClusterLinksCmd) Args() []interface{}

func (*ClusterLinksCmd) Err

func (cmd *ClusterLinksCmd) Err() error

func (*ClusterLinksCmd) FullName

func (cmd *ClusterLinksCmd) FullName() string

func (*ClusterLinksCmd) Name

func (cmd *ClusterLinksCmd) Name() string

func (*ClusterLinksCmd) Result

func (cmd *ClusterLinksCmd) Result() ([]ClusterLink, error)

func (*ClusterLinksCmd) SetErr

func (cmd *ClusterLinksCmd) SetErr(e error)

func (*ClusterLinksCmd) SetFirstKeyPos

func (cmd *ClusterLinksCmd) SetFirstKeyPos(keyPos int8)

func (*ClusterLinksCmd) SetVal

func (cmd *ClusterLinksCmd) SetVal(val []ClusterLink)

func (*ClusterLinksCmd) String

func (cmd *ClusterLinksCmd) String() string

func (*ClusterLinksCmd) Val

func (cmd *ClusterLinksCmd) Val() []ClusterLink

type ClusterNode

type ClusterNode struct {
	ID                 string
	Addr               string
	NetworkingMetadata map[string]string
}

type ClusterOptions

type ClusterOptions struct {
	// A seed list of host:port addresses of cluster nodes.
	Addrs []string

	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
	ClientName string

	// NewClient creates a cluster node client with provided name and options.
	NewClient func(opt *Options) *Client

	// The maximum number of retries before giving up. Command is retried
	// on network errors and MOVED/ASK redirects.
	// Default is 3 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(context.Context) ([]ClusterSlot, error)

	Dialer func(ctx context.Context, network, addr string) (net.Conn, error)

	OnConnect func(ctx context.Context, cn *Conn) error

	Protocol            int
	Username            string
	Password            string
	CredentialsProvider func() (username string, password string)

	MaxRetries      int
	MinRetryBackoff time.Duration
	MaxRetryBackoff time.Duration

	DialTimeout           time.Duration
	ReadTimeout           time.Duration
	WriteTimeout          time.Duration
	ContextTimeoutEnabled bool

	PoolFIFO        bool
	PoolSize        int // applies per cluster node and not for the whole cluster
	PoolTimeout     time.Duration
	MinIdleConns    int
	MaxIdleConns    int
	MaxActiveConns  int // applies per cluster node and not for the whole cluster
	ConnMaxIdleTime time.Duration
	ConnMaxLifetime time.Duration

	TLSConfig        *tls.Config
	DisableIndentity bool // Disable set-lib on connect. Default is false.

	IdentitySuffix string // Add suffix to client name. Default is empty.
}

ClusterOptions are used to configure a cluster client and should be passed to NewClusterClient.

func ParseClusterURL

func ParseClusterURL(redisURL string) (*ClusterOptions, error)

ParseClusterURL parses a URL into ClusterOptions that can be used to connect to Redis. The URL must be in the form:

redis://<user>:<password>@<host>:<port>
or
rediss://<user>:<password>@<host>:<port>

To add additional addresses, specify the query parameter, "addr" one or more times. e.g:

redis://<user>:<password>@<host>:<port>?addr=<host2>:<port2>&addr=<host3>:<port3>
or
rediss://<user>:<password>@<host>:<port>?addr=<host2>:<port2>&addr=<host3>:<port3>

Most Option fields can be set using query parameters, with the following restrictions:

  • field names are mapped using snake-case conversion: to set MaxRetries, use max_retries
  • only scalar type fields are supported (bool, int, time.Duration)
  • for time.Duration fields, values must be a valid input for time.ParseDuration(); additionally a plain integer as value (i.e. without unit) is intepreted as seconds
  • to disable a duration field, use value less than or equal to 0; to use the default value, leave the value blank or remove the parameter
  • only the last value is interpreted if a parameter is given multiple times
  • fields "network", "addr", "username" and "password" can only be set using other URL attributes (scheme, host, userinfo, resp.), query paremeters using these names will be treated as unknown parameters
  • unknown parameter names will result in an error

Example:

redis://user:password@localhost:6789?dial_timeout=3&read_timeout=6s&addr=localhost:6790&addr=localhost:6791
is equivalent to:
&ClusterOptions{
	Addr:        ["localhost:6789", "localhost:6790", "localhost:6791"]
	DialTimeout: 3 * time.Second, // no time unit = seconds
	ReadTimeout: 6 * time.Second,
}

type ClusterShard

type ClusterShard struct {
	Slots []SlotRange
	Nodes []Node
}

type ClusterShardsCmd

type ClusterShardsCmd struct {
	// contains filtered or unexported fields
}

func NewClusterShardsCmd

func NewClusterShardsCmd(ctx context.Context, args ...interface{}) *ClusterShardsCmd

func (*ClusterShardsCmd) Args

func (cmd *ClusterShardsCmd) Args() []interface{}

func (*ClusterShardsCmd) Err

func (cmd *ClusterShardsCmd) Err() error

func (*ClusterShardsCmd) FullName

func (cmd *ClusterShardsCmd) FullName() string

func (*ClusterShardsCmd) Name

func (cmd *ClusterShardsCmd) Name() string

func (*ClusterShardsCmd) Result

func (cmd *ClusterShardsCmd) Result() ([]ClusterShard, error)

func (*ClusterShardsCmd) SetErr

func (cmd *ClusterShardsCmd) SetErr(e error)

func (*ClusterShardsCmd) SetFirstKeyPos

func (cmd *ClusterShardsCmd) SetFirstKeyPos(keyPos int8)

func (*ClusterShardsCmd) SetVal

func (cmd *ClusterShardsCmd) SetVal(val []ClusterShard)

func (*ClusterShardsCmd) String

func (cmd *ClusterShardsCmd) String() string

func (*ClusterShardsCmd) Val

func (cmd *ClusterShardsCmd) Val() []ClusterShard

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(ctx context.Context, 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) Args

func (cmd *ClusterSlotsCmd) Args() []interface{}

func (*ClusterSlotsCmd) Err

func (cmd *ClusterSlotsCmd) Err() error

func (*ClusterSlotsCmd) FullName

func (cmd *ClusterSlotsCmd) FullName() string

func (*ClusterSlotsCmd) Name

func (cmd *ClusterSlotsCmd) Name() string

func (*ClusterSlotsCmd) Result

func (cmd *ClusterSlotsCmd) Result() ([]ClusterSlot, error)

func (*ClusterSlotsCmd) SetErr

func (cmd *ClusterSlotsCmd) SetErr(e error)

func (*ClusterSlotsCmd) SetFirstKeyPos

func (cmd *ClusterSlotsCmd) SetFirstKeyPos(keyPos int8)

func (*ClusterSlotsCmd) SetVal

func (cmd *ClusterSlotsCmd) SetVal(val []ClusterSlot)

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 NewCmd

func NewCmd(ctx context.Context, args ...interface{}) *Cmd

func NewCmdResult

func NewCmdResult(val interface{}, err error) *Cmd

NewCmdResult returns a Cmd initialised with val and err for testing.

func (*Cmd) Args

func (cmd *Cmd) Args() []interface{}

func (*Cmd) Bool

func (cmd *Cmd) Bool() (bool, error)

func (*Cmd) BoolSlice

func (cmd *Cmd) BoolSlice() ([]bool, error)

func (*Cmd) Err

func (cmd *Cmd) Err() error

func (*Cmd) Float32

func (cmd *Cmd) Float32() (float32, error)

func (*Cmd) Float32Slice

func (cmd *Cmd) Float32Slice() ([]float32, error)

func (*Cmd) Float64

func (cmd *Cmd) Float64() (float64, error)

func (*Cmd) Float64Slice

func (cmd *Cmd) Float64Slice() ([]float64, error)

func (*Cmd) FullName

func (cmd *Cmd) FullName() string

func (*Cmd) Int

func (cmd *Cmd) Int() (int, error)

func (*Cmd) Int64

func (cmd *Cmd) Int64() (int64, error)

func (*Cmd) Int64Slice

func (cmd *Cmd) Int64Slice() ([]int64, error)

func (*Cmd) Name

func (cmd *Cmd) Name() string

func (*Cmd) Result

func (cmd *Cmd) Result() (interface{}, error)

func (*Cmd) SetErr

func (cmd *Cmd) SetErr(e error)

func (*Cmd) SetFirstKeyPos

func (cmd *Cmd) SetFirstKeyPos(keyPos int8)

func (*Cmd) SetVal

func (cmd *Cmd) SetVal(val interface{})

func (*Cmd) Slice

func (cmd *Cmd) Slice() ([]interface{}, error)

func (*Cmd) String

func (cmd *Cmd) String() string

func (*Cmd) StringSlice

func (cmd *Cmd) StringSlice() ([]string, error)

func (*Cmd) Text

func (cmd *Cmd) Text() (string, error)

func (*Cmd) Uint64

func (cmd *Cmd) Uint64() (uint64, error)

func (*Cmd) Uint64Slice

func (cmd *Cmd) Uint64Slice() ([]uint64, error)

func (*Cmd) Val

func (cmd *Cmd) Val() interface{}

type Cmdable

type Cmdable interface {
	Pipeline() Pipeliner
	Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

	TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
	TxPipeline() Pipeliner

	Command(ctx context.Context) *CommandsInfoCmd
	CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
	CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
	CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
	ClientGetName(ctx context.Context) *StringCmd
	Echo(ctx context.Context, message interface{}) *StringCmd
	Ping(ctx context.Context) *StatusCmd
	Quit(ctx context.Context) *StatusCmd
	Unlink(ctx context.Context, keys ...string) *IntCmd

	BgRewriteAOF(ctx context.Context) *StatusCmd
	BgSave(ctx context.Context) *StatusCmd
	ClientKill(ctx context.Context, ipPort string) *StatusCmd
	ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd
	ClientList(ctx context.Context) *StringCmd
	ClientInfo(ctx context.Context) *ClientInfoCmd
	ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
	ClientUnpause(ctx context.Context) *BoolCmd
	ClientID(ctx context.Context) *IntCmd
	ClientUnblock(ctx context.Context, id int64) *IntCmd
	ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
	ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
	ConfigResetStat(ctx context.Context) *StatusCmd
	ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
	ConfigRewrite(ctx context.Context) *StatusCmd
	DBSize(ctx context.Context) *IntCmd
	FlushAll(ctx context.Context) *StatusCmd
	FlushAllAsync(ctx context.Context) *StatusCmd
	FlushDB(ctx context.Context) *StatusCmd
	FlushDBAsync(ctx context.Context) *StatusCmd
	Info(ctx context.Context, section ...string) *StringCmd
	LastSave(ctx context.Context) *IntCmd
	Save(ctx context.Context) *StatusCmd
	Shutdown(ctx context.Context) *StatusCmd
	ShutdownSave(ctx context.Context) *StatusCmd
	ShutdownNoSave(ctx context.Context) *StatusCmd
	SlaveOf(ctx context.Context, host, port string) *StatusCmd
	SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
	Time(ctx context.Context) *TimeCmd
	DebugObject(ctx context.Context, key string) *StringCmd
	MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

	ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

	ACLCmdable
	BitMapCmdable
	ClusterCmdable
	GearsCmdable
	GenericCmdable
	GeoCmdable
	HashCmdable
	HyperLogLogCmdable
	ListCmdable
	ProbabilisticCmdable
	PubSubCmdable
	ScriptingFunctionsCmdable
	SetCmdable
	SortedSetCmdable
	StringCmdable
	StreamCmdable
	TimeseriesCmdable
	JSONCmdable
}

type Cmder

type Cmder interface {
	// command name.
	// e.g. "set k v ex 10" -> "set", "cluster info" -> "cluster".
	Name() string

	// full command name.
	// e.g. "set k v ex 10" -> "set", "cluster info" -> "cluster info".
	FullName() string

	// all args of the command.
	// e.g. "set k v ex 10" -> "[set k v ex 10]".
	Args() []interface{}

	// format request and response string.
	// e.g. "set k v ex 10" -> "set k v ex 10: OK", "get k" -> "get k: v".
	String() string

	SetFirstKeyPos(int8)

	SetErr(error)
	Err() error
	// contains filtered or unexported methods
}

type CommandInfo

type CommandInfo struct {
	Name        string
	Arity       int8
	Flags       []string
	ACLFlags    []string
	FirstKeyPos int8
	LastKeyPos  int8
	StepCount   int8
	ReadOnly    bool
}

type CommandsInfoCmd

type CommandsInfoCmd struct {
	// contains filtered or unexported fields
}

func NewCommandsInfoCmd

func NewCommandsInfoCmd(ctx context.Context, 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) Args

func (cmd *CommandsInfoCmd) Args() []interface{}

func (*CommandsInfoCmd) Err

func (cmd *CommandsInfoCmd) Err() error

func (*CommandsInfoCmd) FullName

func (cmd *CommandsInfoCmd) FullName() string

func (*CommandsInfoCmd) Name

func (cmd *CommandsInfoCmd) Name() string

func (*CommandsInfoCmd) Result

func (cmd *CommandsInfoCmd) Result() (map[string]*CommandInfo, error)

func (*CommandsInfoCmd) SetErr

func (cmd *CommandsInfoCmd) SetErr(e error)

func (*CommandsInfoCmd) SetFirstKeyPos

func (cmd *CommandsInfoCmd) SetFirstKeyPos(keyPos int8)

func (*CommandsInfoCmd) SetVal

func (cmd *CommandsInfoCmd) SetVal(val map[string]*CommandInfo)

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 represents a single Redis connection rather than a pool of connections. Prefer running commands from Client unless there is a specific need for a continuous single Redis connection.

Example (Client_setInfo_libraryVersion)
conn := rdb.Conn()

err := conn.ClientSetInfo(ctx, redis.WithLibraryVersion("1.2.3")).Err()
if err != nil {
	panic(err)
}

// Open other connections.
for i := 0; i < 10; i++ {
	go rdb.Ping(ctx)
}

s, err := conn.ClientInfo(ctx).Result()
if err != nil {
	panic(err)
}

fmt.Println(s.LibVer)
Output:

1.2.3
Example (Name)
conn := rdb.Conn()

err := conn.ClientSetName(ctx, "foobar").Err()
if err != nil {
	panic(err)
}

// Open other connections.
for i := 0; i < 10; i++ {
	go rdb.Ping(ctx)
}

s, err := conn.ClientGetName(ctx).Result()
if err != nil {
	panic(err)
}
fmt.Println(s)
Output:

foobar

func (Conn) ACLDryRun

func (c Conn) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (Conn) ACLLog

func (c Conn) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (Conn) ACLLogReset

func (c Conn) ACLLogReset(ctx context.Context) *StatusCmd

func (*Conn) AddHook

func (hs *Conn) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (Conn) Append

func (c Conn) Append(ctx context.Context, key, value string) *IntCmd

func (Conn) Auth

func (c Conn) Auth(ctx context.Context, password string) *StatusCmd

func (Conn) AuthACL

func (c Conn) AuthACL(ctx context.Context, username, password string) *StatusCmd

AuthACL Perform an AUTH command, using the given user and pass. Should be used to authenticate the current connection with one of the connections defined in the ACL list when connecting to a Redis 6.0 instance, or greater, that is using the Redis ACL system.

func (Conn) BFAdd

func (c Conn) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (Conn) BFCard

func (c Conn) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (Conn) BFExists

func (c Conn) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (Conn) BFInfo

func (c Conn) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoArg

func (c Conn) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoCapacity

func (c Conn) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoExpansion

func (c Conn) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoFilters

func (c Conn) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoItems

func (c Conn) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInfoSize

func (c Conn) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Conn) BFInsert

func (c Conn) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (Conn) BFLoadChunk

func (c Conn) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (Conn) BFMAdd

func (c Conn) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (Conn) BFMExists

func (c Conn) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (Conn) BFReserve

func (c Conn) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (Conn) BFReserveExpansion

func (c Conn) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (Conn) BFReserveNonScaling

func (c Conn) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (Conn) BFReserveWithArgs

func (c Conn) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (Conn) BFScanDump

func (c Conn) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (Conn) BLMPop

func (c Conn) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (Conn) BLMove

func (c Conn) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (Conn) BLPop

func (c Conn) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Conn) BRPop

func (c Conn) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Conn) BRPopLPush

func (c Conn) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (Conn) BZMPop

func (c Conn) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (Conn) BZPopMax

func (c Conn) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (Conn) BZPopMin

func (c Conn) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (Conn) BgRewriteAOF

func (c Conn) BgRewriteAOF(ctx context.Context) *StatusCmd

func (Conn) BgSave

func (c Conn) BgSave(ctx context.Context) *StatusCmd

func (Conn) BitCount

func (c Conn) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (Conn) BitField

func (c Conn) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (Conn) BitFieldRO

func (c Conn) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (Conn) BitOpAnd

func (c Conn) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Conn) BitOpNot

func (c Conn) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (Conn) BitOpOr

func (c Conn) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Conn) BitOpXor

func (c Conn) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Conn) BitPos

func (c Conn) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (Conn) BitPosSpan

func (c Conn) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (Conn) CFAdd

func (c Conn) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (Conn) CFAddNX

func (c Conn) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (Conn) CFCount

func (c Conn) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (Conn) CFDel

func (c Conn) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (Conn) CFExists

func (c Conn) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (Conn) CFInfo

func (c Conn) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (Conn) CFInsert

func (c Conn) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (Conn) CFInsertNX

func (c Conn) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (Conn) CFLoadChunk

func (c Conn) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (Conn) CFMExists

func (c Conn) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (Conn) CFReserve

func (c Conn) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (Conn) CFReserveBucketSize

func (c Conn) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (Conn) CFReserveExpansion

func (c Conn) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (Conn) CFReserveMaxIterations

func (c Conn) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Conn) CFReserveWithArgs

func (c Conn) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Conn) CFScanDump

func (c Conn) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (Conn) CMSIncrBy

func (c Conn) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (Conn) CMSInfo

func (c Conn) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (Conn) CMSInitByDim

func (c Conn) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (Conn) CMSInitByProb

func (c Conn) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (Conn) CMSMerge

func (c Conn) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Conn) CMSMergeWithWeight

func (c Conn) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Conn) CMSQuery

func (c Conn) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (Conn) ClientGetName

func (c Conn) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (Conn) ClientID

func (c Conn) ClientID(ctx context.Context) *IntCmd

func (Conn) ClientInfo

func (c Conn) ClientInfo(ctx context.Context) *ClientInfoCmd

func (Conn) ClientKill

func (c Conn) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (Conn) ClientKillByFilter

func (c Conn) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (Conn) ClientList

func (c Conn) ClientList(ctx context.Context) *StringCmd

func (Conn) ClientPause

func (c Conn) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (Conn) ClientSetInfo

func (c Conn) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd

ClientSetInfo sends a CLIENT SETINFO command with the provided info.

func (Conn) ClientSetName

func (c Conn) ClientSetName(ctx context.Context, name string) *BoolCmd

ClientSetName assigns a name to the connection.

func (Conn) ClientUnblock

func (c Conn) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (Conn) ClientUnblockWithError

func (c Conn) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (Conn) ClientUnpause

func (c Conn) ClientUnpause(ctx context.Context) *BoolCmd

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) ClusterAddSlots

func (c Conn) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (Conn) ClusterAddSlotsRange

func (c Conn) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Conn) ClusterCountFailureReports

func (c Conn) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (Conn) ClusterCountKeysInSlot

func (c Conn) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (Conn) ClusterDelSlots

func (c Conn) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (Conn) ClusterDelSlotsRange

func (c Conn) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Conn) ClusterFailover

func (c Conn) ClusterFailover(ctx context.Context) *StatusCmd

func (Conn) ClusterForget

func (c Conn) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (Conn) ClusterGetKeysInSlot

func (c Conn) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (Conn) ClusterInfo

func (c Conn) ClusterInfo(ctx context.Context) *StringCmd

func (Conn) ClusterKeySlot

func (c Conn) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Conn) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (Conn) ClusterMeet

func (c Conn) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (Conn) ClusterMyShardID

func (c Conn) ClusterMyShardID(ctx context.Context) *StringCmd

func (Conn) ClusterNodes

func (c Conn) ClusterNodes(ctx context.Context) *StringCmd

func (Conn) ClusterReplicate

func (c Conn) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (Conn) ClusterResetHard

func (c Conn) ClusterResetHard(ctx context.Context) *StatusCmd

func (Conn) ClusterResetSoft

func (c Conn) ClusterResetSoft(ctx context.Context) *StatusCmd

func (Conn) ClusterSaveConfig

func (c Conn) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (Conn) ClusterShards

func (c Conn) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (Conn) ClusterSlaves

func (c Conn) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (Conn) ClusterSlots

func (c Conn) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (Conn) Command

func (c Conn) Command(ctx context.Context) *CommandsInfoCmd

func (Conn) CommandGetKeys

func (c Conn) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (Conn) CommandGetKeysAndFlags

func (c Conn) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (Conn) CommandList

func (c Conn) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (Conn) ConfigGet

func (c Conn) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (Conn) ConfigResetStat

func (c Conn) ConfigResetStat(ctx context.Context) *StatusCmd

func (Conn) ConfigRewrite

func (c Conn) ConfigRewrite(ctx context.Context) *StatusCmd

func (Conn) ConfigSet

func (c Conn) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (Conn) Copy

func (c Conn) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (Conn) DBSize

func (c Conn) DBSize(ctx context.Context) *IntCmd

func (Conn) DebugObject

func (c Conn) DebugObject(ctx context.Context, key string) *StringCmd

func (Conn) Decr

func (c Conn) Decr(ctx context.Context, key string) *IntCmd

func (Conn) DecrBy

func (c Conn) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (Conn) Del

func (c Conn) Del(ctx context.Context, keys ...string) *IntCmd

func (Conn) Dump

func (c Conn) Dump(ctx context.Context, key string) *StringCmd

func (Conn) Echo

func (c Conn) Echo(ctx context.Context, message interface{}) *StringCmd

func (Conn) Eval

func (c Conn) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Conn) EvalRO

func (c Conn) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Conn) EvalSha

func (c Conn) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Conn) EvalShaRO

func (c Conn) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Conn) Exists

func (c Conn) Exists(ctx context.Context, keys ...string) *IntCmd

func (Conn) Expire

func (c Conn) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) ExpireAt

func (c Conn) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Conn) ExpireGT

func (c Conn) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) ExpireLT

func (c Conn) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) ExpireNX

func (c Conn) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) ExpireTime

func (c Conn) ExpireTime(ctx context.Context, key string) *DurationCmd

func (Conn) ExpireXX

func (c Conn) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) FCall

func (c Conn) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Conn) FCallRO

func (c Conn) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Conn) FCallRo

func (c Conn) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (Conn) FlushAll

func (c Conn) FlushAll(ctx context.Context) *StatusCmd

func (Conn) FlushAllAsync

func (c Conn) FlushAllAsync(ctx context.Context) *StatusCmd

func (Conn) FlushDB

func (c Conn) FlushDB(ctx context.Context) *StatusCmd

func (Conn) FlushDBAsync

func (c Conn) FlushDBAsync(ctx context.Context) *StatusCmd

func (Conn) FunctionDelete

func (c Conn) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (Conn) FunctionDump

func (c Conn) FunctionDump(ctx context.Context) *StringCmd

func (Conn) FunctionFlush

func (c Conn) FunctionFlush(ctx context.Context) *StringCmd

func (Conn) FunctionFlushAsync

func (c Conn) FunctionFlushAsync(ctx context.Context) *StringCmd

func (Conn) FunctionKill

func (c Conn) FunctionKill(ctx context.Context) *StringCmd

func (Conn) FunctionList

func (c Conn) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (Conn) FunctionLoad

func (c Conn) FunctionLoad(ctx context.Context, code string) *StringCmd

func (Conn) FunctionLoadReplace

func (c Conn) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (Conn) FunctionRestore

func (c Conn) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (Conn) FunctionStats

func (c Conn) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (Conn) GeoAdd

func (c Conn) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (Conn) GeoDist

func (c Conn) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (Conn) GeoHash

func (c Conn) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (Conn) GeoPos

func (c Conn) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (Conn) GeoRadius

func (c Conn) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (Conn) GeoRadiusByMember

func (c Conn) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (Conn) GeoRadiusByMemberStore

func (c Conn) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (Conn) GeoRadiusStore

func (c Conn) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (Conn) GeoSearch

func (c Conn) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (Conn) GeoSearchLocation

func (c Conn) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (Conn) GeoSearchStore

func (c Conn) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (Conn) Get

func (c Conn) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (Conn) GetBit

func (c Conn) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (Conn) GetDel

func (c Conn) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (Conn) GetEx

func (c Conn) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (Conn) GetRange

func (c Conn) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (Conn) GetSet

func (c Conn) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (Conn) HDel

func (c Conn) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (Conn) HExists

func (c Conn) HExists(ctx context.Context, key, field string) *BoolCmd

func (Conn) HGet

func (c Conn) HGet(ctx context.Context, key, field string) *StringCmd

func (Conn) HGetAll

func (c Conn) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (Conn) HIncrBy

func (c Conn) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (Conn) HIncrByFloat

func (c Conn) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (Conn) HKeys

func (c Conn) HKeys(ctx context.Context, key string) *StringSliceCmd

func (Conn) HLen

func (c Conn) HLen(ctx context.Context, key string) *IntCmd

func (Conn) HMGet

func (c Conn) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (Conn) HMSet

func (c Conn) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (Conn) HRandField

func (c Conn) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (Conn) HRandFieldWithValues

func (c Conn) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (Conn) HScan

func (c Conn) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Conn) HSet

func (c Conn) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

func (Conn) HSetNX

func (c Conn) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (Conn) HVals

func (c Conn) HVals(ctx context.Context, key string) *StringSliceCmd

func (Conn) Hello

func (c Conn) Hello(ctx context.Context,
	ver int, username, password, clientName string,
) *MapStringInterfaceCmd

Hello Set the resp protocol used.

func (Conn) Incr

func (c Conn) Incr(ctx context.Context, key string) *IntCmd

func (Conn) IncrBy

func (c Conn) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (Conn) IncrByFloat

func (c Conn) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (Conn) Info

func (c Conn) Info(ctx context.Context, sections ...string) *StringCmd

func (Conn) InfoMap

func (c Conn) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (Conn) JSONArrAppend

func (c Conn) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (Conn) JSONArrIndex

func (c Conn) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (Conn) JSONArrIndexWithArgs

func (c Conn) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (Conn) JSONArrInsert

func (c Conn) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (Conn) JSONArrLen

func (c Conn) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (Conn) JSONArrPop

func (c Conn) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (Conn) JSONArrTrim

func (c Conn) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Conn) JSONArrTrimWithArgs

func (c Conn) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Conn) JSONClear

func (c Conn) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (Conn) JSONDebugMemory

func (c Conn) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (Conn) JSONDel

func (c Conn) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (Conn) JSONForget

func (c Conn) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (Conn) JSONGet

func (c Conn) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (Conn) JSONGetWithArgs

func (c Conn) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (Conn) JSONMGet

func (c Conn) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (Conn) JSONMSet

func (c Conn) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (Conn) JSONMSetArgs

func (c Conn) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (Conn) JSONMerge

func (c Conn) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (Conn) JSONNumIncrBy

func (c Conn) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (Conn) JSONObjKeys

func (c Conn) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (Conn) JSONObjLen

func (c Conn) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (Conn) JSONSet

func (c Conn) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Conn) JSONSetMode

func (c Conn) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Conn) JSONStrAppend

func (c Conn) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (Conn) JSONStrLen

func (c Conn) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (Conn) JSONToggle

func (c Conn) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (Conn) JSONType

func (c Conn) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (Conn) Keys

func (c Conn) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (Conn) LCS

func (c Conn) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (Conn) LIndex

func (c Conn) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (Conn) LInsert

func (c Conn) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (Conn) LInsertAfter

func (c Conn) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Conn) LInsertBefore

func (c Conn) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Conn) LLen

func (c Conn) LLen(ctx context.Context, key string) *IntCmd

func (Conn) LMPop

func (c Conn) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (Conn) LMove

func (c Conn) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (Conn) LPop

func (c Conn) LPop(ctx context.Context, key string) *StringCmd

func (Conn) LPopCount

func (c Conn) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Conn) LPos

func (c Conn) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (Conn) LPosCount

func (c Conn) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (Conn) LPush

func (c Conn) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Conn) LPushX

func (c Conn) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Conn) LRange

func (c Conn) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Conn) LRem

func (c Conn) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (Conn) LSet

func (c Conn) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (Conn) LTrim

func (c Conn) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (Conn) LastSave

func (c Conn) LastSave(ctx context.Context) *IntCmd

func (Conn) MGet

func (c Conn) MGet(ctx context.Context, keys ...string) *SliceCmd

func (Conn) MSet

func (c Conn) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (Conn) MSetNX

func (c Conn) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (Conn) MemoryUsage

func (c Conn) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (Conn) Migrate

func (c Conn) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (Conn) ModuleLoadex

func (c Conn) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (Conn) Monitor

func (c Conn) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (Conn) Move

func (c Conn) Move(ctx context.Context, key string, db int) *BoolCmd

func (Conn) ObjectEncoding

func (c Conn) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (Conn) ObjectFreq

func (c Conn) ObjectFreq(ctx context.Context, key string) *IntCmd

func (Conn) ObjectIdleTime

func (c Conn) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (Conn) ObjectRefCount

func (c Conn) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (Conn) PExpire

func (c Conn) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Conn) PExpireAt

func (c Conn) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Conn) PExpireTime

func (c Conn) PExpireTime(ctx context.Context, key string) *DurationCmd

func (Conn) PFAdd

func (c Conn) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (Conn) PFCount

func (c Conn) PFCount(ctx context.Context, keys ...string) *IntCmd

func (Conn) PFMerge

func (c Conn) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (Conn) PTTL

func (c Conn) PTTL(ctx context.Context, key string) *DurationCmd

func (Conn) Persist

func (c Conn) Persist(ctx context.Context, key string) *BoolCmd

func (Conn) Ping

func (c Conn) Ping(ctx context.Context) *StatusCmd

func (*Conn) Pipeline

func (c *Conn) Pipeline() Pipeliner

func (*Conn) Pipelined

func (c *Conn) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (*Conn) Process

func (c *Conn) Process(ctx context.Context, cmd Cmder) error

func (Conn) PubSubChannels

func (c Conn) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Conn) PubSubNumPat

func (c Conn) PubSubNumPat(ctx context.Context) *IntCmd

func (Conn) PubSubNumSub

func (c Conn) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Conn) PubSubShardChannels

func (c Conn) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Conn) PubSubShardNumSub

func (c Conn) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Conn) Publish

func (c Conn) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (Conn) Quit

func (c Conn) Quit(_ context.Context) *StatusCmd

func (Conn) RPop

func (c Conn) RPop(ctx context.Context, key string) *StringCmd

func (Conn) RPopCount

func (c Conn) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Conn) RPopLPush

func (c Conn) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (Conn) RPush

func (c Conn) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Conn) RPushX

func (c Conn) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Conn) RandomKey

func (c Conn) RandomKey(ctx context.Context) *StringCmd

func (Conn) ReadOnly

func (c Conn) ReadOnly(ctx context.Context) *StatusCmd

func (Conn) ReadWrite

func (c Conn) ReadWrite(ctx context.Context) *StatusCmd

func (Conn) Rename

func (c Conn) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (Conn) RenameNX

func (c Conn) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (Conn) Restore

func (c Conn) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Conn) RestoreReplace

func (c Conn) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Conn) SAdd

func (c Conn) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Conn) SCard

func (c Conn) SCard(ctx context.Context, key string) *IntCmd

func (Conn) SDiff

func (c Conn) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (Conn) SDiffStore

func (c Conn) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Conn) SInter

func (c Conn) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (Conn) SInterCard

func (c Conn) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Conn) SInterStore

func (c Conn) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Conn) SIsMember

func (c Conn) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (Conn) SMIsMember

func (c Conn) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (Conn) SMembers

func (c Conn) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (Conn) SMembersMap

func (c Conn) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (Conn) SMove

func (c Conn) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (Conn) SPop

func (c Conn) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (Conn) SPopN

func (c Conn) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (Conn) SPublish

func (c Conn) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (Conn) SRandMember

func (c Conn) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (Conn) SRandMemberN

func (c Conn) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (Conn) SRem

func (c Conn) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Conn) SScan

func (c Conn) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Conn) SUnion

func (c Conn) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (Conn) SUnionStore

func (c Conn) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Conn) Save

func (c Conn) Save(ctx context.Context) *StatusCmd

func (Conn) Scan

func (c Conn) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd

func (Conn) ScanType

func (c Conn) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd

func (Conn) ScriptExists

func (c Conn) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (Conn) ScriptFlush

func (c Conn) ScriptFlush(ctx context.Context) *StatusCmd

func (Conn) ScriptKill

func (c Conn) ScriptKill(ctx context.Context) *StatusCmd

func (Conn) ScriptLoad

func (c Conn) ScriptLoad(ctx context.Context, script string) *StringCmd

func (Conn) Select

func (c Conn) Select(ctx context.Context, index int) *StatusCmd

func (Conn) Set

func (c Conn) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Conn) SetArgs

func (c Conn) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (Conn) SetBit

func (c Conn) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (Conn) SetEx

func (c Conn) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

func (Conn) SetNX

func (c Conn) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Conn) SetRange

func (c Conn) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (Conn) SetXX

func (c Conn) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Conn) Shutdown

func (c Conn) Shutdown(ctx context.Context) *StatusCmd

func (Conn) ShutdownNoSave

func (c Conn) ShutdownNoSave(ctx context.Context) *StatusCmd

func (Conn) ShutdownSave

func (c Conn) ShutdownSave(ctx context.Context) *StatusCmd

func (Conn) SlaveOf

func (c Conn) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (Conn) SlowLogGet

func (c Conn) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd

func (Conn) Sort

func (c Conn) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Conn) SortInterfaces

func (c Conn) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (Conn) SortRO

func (c Conn) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Conn) SortStore

func (c Conn) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (Conn) StrLen

func (c Conn) StrLen(ctx context.Context, key string) *IntCmd

func (*Conn) String

func (c *Conn) String() string

func (Conn) SwapDB

func (c Conn) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd

func (Conn) Sync

func (c Conn) Sync(_ context.Context)

func (Conn) TDigestAdd

func (c Conn) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (Conn) TDigestByRank

func (c Conn) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (Conn) TDigestByRevRank

func (c Conn) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (Conn) TDigestCDF

func (c Conn) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (Conn) TDigestCreate

func (c Conn) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Conn) TDigestCreateWithCompression

func (c Conn) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Conn) TDigestInfo

func (c Conn) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (Conn) TDigestMax

func (c Conn) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (Conn) TDigestMerge

func (c Conn) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (Conn) TDigestMin

func (c Conn) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (Conn) TDigestQuantile

func (c Conn) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (Conn) TDigestRank

func (c Conn) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (Conn) TDigestReset

func (c Conn) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (Conn) TDigestRevRank

func (c Conn) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (Conn) TDigestTrimmedMean

func (c Conn) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (Conn) TFCall

func (c Conn) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (Conn) TFCallASYNC

func (c Conn) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (Conn) TFCallASYNCArgs

func (c Conn) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Conn) TFCallArgs

func (c Conn) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Conn) TFunctionDelete

func (c Conn) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (Conn) TFunctionList

func (c Conn) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (Conn) TFunctionListArgs

func (c Conn) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (Conn) TFunctionLoad

func (c Conn) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (Conn) TFunctionLoadArgs

func (c Conn) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (Conn) TSAdd

func (c Conn) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (Conn) TSAddWithArgs

func (c Conn) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (Conn) TSAlter

func (c Conn) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (Conn) TSCreate

func (c Conn) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (Conn) TSCreateRule

func (c Conn) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (Conn) TSCreateRuleWithArgs

func (c Conn) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (Conn) TSCreateWithArgs

func (c Conn) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (Conn) TSDecrBy

func (c Conn) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (Conn) TSDecrByWithArgs

func (c Conn) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (Conn) TSDel

func (c Conn) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (Conn) TSDeleteRule

func (c Conn) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (Conn) TSGet

func (c Conn) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (Conn) TSGetWithArgs

func (c Conn) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (Conn) TSIncrBy

func (c Conn) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (Conn) TSIncrByWithArgs

func (c Conn) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (Conn) TSInfo

func (c Conn) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (Conn) TSInfoWithArgs

func (c Conn) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (Conn) TSMAdd

func (c Conn) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (Conn) TSMGet

func (c Conn) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (Conn) TSMGetWithArgs

func (c Conn) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (Conn) TSMRange

func (c Conn) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (Conn) TSMRangeWithArgs

func (c Conn) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (Conn) TSMRevRange

func (c Conn) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (Conn) TSMRevRangeWithArgs

func (c Conn) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (Conn) TSQueryIndex

func (c Conn) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (Conn) TSRange

func (c Conn) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (Conn) TSRangeWithArgs

func (c Conn) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (Conn) TSRevRange

func (c Conn) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (Conn) TSRevRangeWithArgs

func (c Conn) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (Conn) TTL

func (c Conn) TTL(ctx context.Context, key string) *DurationCmd

func (Conn) Time

func (c Conn) Time(ctx context.Context) *TimeCmd

func (Conn) TopKAdd

func (c Conn) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (Conn) TopKCount

func (c Conn) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (Conn) TopKIncrBy

func (c Conn) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (Conn) TopKInfo

func (c Conn) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (Conn) TopKList

func (c Conn) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (Conn) TopKListWithCount

func (c Conn) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (Conn) TopKQuery

func (c Conn) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (Conn) TopKReserve

func (c Conn) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (Conn) TopKReserveWithOptions

func (c Conn) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (Conn) Touch

func (c Conn) Touch(ctx context.Context, keys ...string) *IntCmd

func (*Conn) TxPipeline

func (c *Conn) TxPipeline() Pipeliner

TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.

func (*Conn) TxPipelined

func (c *Conn) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (Conn) Type

func (c Conn) Type(ctx context.Context, key string) *StatusCmd
func (c Conn) Unlink(ctx context.Context, keys ...string) *IntCmd

func (Conn) Wait

func (c Conn) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (Conn) WaitAOF

func (c Conn) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (Conn) XAck

func (c Conn) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (Conn) XAdd

func (c Conn) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (Conn) XAutoClaim

func (c Conn) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (Conn) XAutoClaimJustID

func (c Conn) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (Conn) XClaim

func (c Conn) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (Conn) XClaimJustID

func (c Conn) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (Conn) XDel

func (c Conn) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (Conn) XGroupCreate

func (c Conn) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (Conn) XGroupCreateConsumer

func (c Conn) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Conn) XGroupCreateMkStream

func (c Conn) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (Conn) XGroupDelConsumer

func (c Conn) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Conn) XGroupDestroy

func (c Conn) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (Conn) XGroupSetID

func (c Conn) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (Conn) XInfoConsumers

func (c Conn) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (Conn) XInfoGroups

func (c Conn) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (Conn) XInfoStream

func (c Conn) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (Conn) XInfoStreamFull

func (c Conn) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (Conn) XLen

func (c Conn) XLen(ctx context.Context, stream string) *IntCmd

func (Conn) XPending

func (c Conn) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (Conn) XPendingExt

func (c Conn) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (Conn) XRange

func (c Conn) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Conn) XRangeN

func (c Conn) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Conn) XRead

func (c Conn) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (Conn) XReadGroup

func (c Conn) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (Conn) XReadStreams

func (c Conn) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (Conn) XRevRange

func (c Conn) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Conn) XRevRangeN

func (c Conn) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Conn) XTrimMaxLen

func (c Conn) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (Conn) XTrimMaxLenApprox

func (c Conn) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (Conn) XTrimMinID

func (c Conn) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (Conn) XTrimMinIDApprox

func (c Conn) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (Conn) ZAdd

func (c Conn) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (Conn) ZAddArgs

func (c Conn) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (Conn) ZAddArgsIncr

func (c Conn) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (Conn) ZAddGT

func (c Conn) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (Conn) ZAddLT

func (c Conn) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (Conn) ZAddNX

func (c Conn) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (Conn) ZAddXX

func (c Conn) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (Conn) ZCard

func (c Conn) ZCard(ctx context.Context, key string) *IntCmd

func (Conn) ZCount

func (c Conn) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (Conn) ZDiff

func (c Conn) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (Conn) ZDiffStore

func (c Conn) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (Conn) ZDiffWithScores

func (c Conn) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (Conn) ZIncrBy

func (c Conn) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (Conn) ZInter

func (c Conn) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (Conn) ZInterCard

func (c Conn) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Conn) ZInterStore

func (c Conn) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (Conn) ZInterWithScores

func (c Conn) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (Conn) ZLexCount

func (c Conn) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (Conn) ZMPop

func (c Conn) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (Conn) ZMScore

func (c Conn) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (Conn) ZPopMax

func (c Conn) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Conn) ZPopMin

func (c Conn) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Conn) ZRandMember

func (c Conn) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (Conn) ZRandMemberWithScores

func (c Conn) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (Conn) ZRange

func (c Conn) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Conn) ZRangeArgs

func (c Conn) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (Conn) ZRangeArgsWithScores

func (c Conn) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (Conn) ZRangeByLex

func (c Conn) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Conn) ZRangeByScore

func (c Conn) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Conn) ZRangeByScoreWithScores

func (c Conn) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Conn) ZRangeStore

func (c Conn) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (Conn) ZRangeWithScores

func (c Conn) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (Conn) ZRank

func (c Conn) ZRank(ctx context.Context, key, member string) *IntCmd

func (Conn) ZRankWithScore

func (c Conn) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Conn) ZRem

func (c Conn) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Conn) ZRemRangeByLex

func (c Conn) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (Conn) ZRemRangeByRank

func (c Conn) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (Conn) ZRemRangeByScore

func (c Conn) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (Conn) ZRevRange

func (c Conn) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Conn) ZRevRangeByLex

func (c Conn) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Conn) ZRevRangeByScore

func (c Conn) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Conn) ZRevRangeByScoreWithScores

func (c Conn) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Conn) ZRevRangeWithScores

func (c Conn) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Conn) ZRevRank

func (c Conn) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (Conn) ZRevRankWithScore

func (c Conn) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (Conn) ZScan

func (c Conn) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Conn) ZScore

func (c Conn) ZScore(ctx context.Context, key, member string) *FloatCmd

func (Conn) ZUnion

func (c Conn) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (Conn) ZUnionStore

func (c Conn) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (Conn) ZUnionWithScores

func (c Conn) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type ConsistentHash

type ConsistentHash interface {
	Get(string) string
}

type DialHook

type DialHook func(ctx context.Context, network, addr string) (net.Conn, error)

type DurationCmd

type DurationCmd struct {
	// contains filtered or unexported fields
}

func NewDurationCmd

func NewDurationCmd(ctx context.Context, 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) Args

func (cmd *DurationCmd) Args() []interface{}

func (*DurationCmd) Err

func (cmd *DurationCmd) Err() error

func (*DurationCmd) FullName

func (cmd *DurationCmd) FullName() string

func (*DurationCmd) Name

func (cmd *DurationCmd) Name() string

func (*DurationCmd) Result

func (cmd *DurationCmd) Result() (time.Duration, error)

func (*DurationCmd) SetErr

func (cmd *DurationCmd) SetErr(e error)

func (*DurationCmd) SetFirstKeyPos

func (cmd *DurationCmd) SetFirstKeyPos(keyPos int8)

func (*DurationCmd) SetVal

func (cmd *DurationCmd) SetVal(val time.Duration)

func (*DurationCmd) String

func (cmd *DurationCmd) String() string

func (*DurationCmd) Val

func (cmd *DurationCmd) Val() time.Duration

type Engine

type Engine struct {
	Language       string
	LibrariesCount int64
	FunctionsCount int64
}

type Error

type Error interface {
	error

	// RedisError is a no-op function but
	// serves to distinguish types that are Redis
	// errors from ordinary errors: a type is a
	// Redis error if it has a RedisError method.
	RedisError()
}

type FailoverOptions

type FailoverOptions struct {
	// The master name.
	MasterName string
	// A seed list of host:port addresses of sentinel nodes.
	SentinelAddrs []string

	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
	ClientName string

	// If specified with SentinelPassword, enables ACL-based authentication (via
	// AUTH <user> <pass>).
	SentinelUsername string
	// Sentinel password from "requirepass <password>" (if enabled) in Sentinel
	// configuration, or, if SentinelUsername is also supplied, used for ACL-based
	// authentication.
	SentinelPassword string

	// Allows routing read-only commands to the closest master or replica node.
	// This option only works with NewFailoverClusterClient.
	RouteByLatency bool
	// Allows routing read-only commands to the random master or replica node.
	// This option only works with NewFailoverClusterClient.
	RouteRandomly bool

	// Route all commands to replica read-only nodes.
	ReplicaOnly bool

	// Use replicas disconnected with master when cannot get connected replicas
	// Now, this option only works in RandomReplicaAddr function.
	UseDisconnectedReplicas bool

	Dialer    func(ctx context.Context, network, addr string) (net.Conn, error)
	OnConnect func(ctx context.Context, cn *Conn) error

	Protocol int
	Username string
	Password string
	DB       int

	MaxRetries      int
	MinRetryBackoff time.Duration
	MaxRetryBackoff time.Duration

	DialTimeout           time.Duration
	ReadTimeout           time.Duration
	WriteTimeout          time.Duration
	ContextTimeoutEnabled bool

	PoolFIFO bool

	PoolSize        int
	PoolTimeout     time.Duration
	MinIdleConns    int
	MaxIdleConns    int
	MaxActiveConns  int
	ConnMaxIdleTime time.Duration
	ConnMaxLifetime time.Duration

	TLSConfig *tls.Config

	DisableIndentity bool
	IdentitySuffix   string
}

FailoverOptions are used to configure a failover client and should be passed to NewFailoverClient.

type FilterBy

type FilterBy struct {
	Module  string
	ACLCat  string
	Pattern string
}

FilterBy is used for the `CommandList` command parameter.

type FloatCmd

type FloatCmd struct {
	// contains filtered or unexported fields
}

func NewFloatCmd

func NewFloatCmd(ctx context.Context, args ...interface{}) *FloatCmd

func NewFloatResult

func NewFloatResult(val float64, err error) *FloatCmd

NewFloatResult returns a FloatCmd initialised with val and err for testing.

func (*FloatCmd) Args

func (cmd *FloatCmd) Args() []interface{}

func (*FloatCmd) Err

func (cmd *FloatCmd) Err() error

func (*FloatCmd) FullName

func (cmd *FloatCmd) FullName() string

func (*FloatCmd) Name

func (cmd *FloatCmd) Name() string

func (*FloatCmd) Result

func (cmd *FloatCmd) Result() (float64, error)

func (*FloatCmd) SetErr

func (cmd *FloatCmd) SetErr(e error)

func (*FloatCmd) SetFirstKeyPos

func (cmd *FloatCmd) SetFirstKeyPos(keyPos int8)

func (*FloatCmd) SetVal

func (cmd *FloatCmd) SetVal(val float64)

func (*FloatCmd) String

func (cmd *FloatCmd) String() string

func (*FloatCmd) Val

func (cmd *FloatCmd) Val() float64

type FloatSliceCmd

type FloatSliceCmd struct {
	// contains filtered or unexported fields
}

func NewFloatSliceCmd

func NewFloatSliceCmd(ctx context.Context, args ...interface{}) *FloatSliceCmd

func (*FloatSliceCmd) Args

func (cmd *FloatSliceCmd) Args() []interface{}

func (*FloatSliceCmd) Err

func (cmd *FloatSliceCmd) Err() error

func (*FloatSliceCmd) FullName

func (cmd *FloatSliceCmd) FullName() string

func (*FloatSliceCmd) Name

func (cmd *FloatSliceCmd) Name() string

func (*FloatSliceCmd) Result

func (cmd *FloatSliceCmd) Result() ([]float64, error)

func (*FloatSliceCmd) SetErr

func (cmd *FloatSliceCmd) SetErr(e error)

func (*FloatSliceCmd) SetFirstKeyPos

func (cmd *FloatSliceCmd) SetFirstKeyPos(keyPos int8)

func (*FloatSliceCmd) SetVal

func (cmd *FloatSliceCmd) SetVal(val []float64)

func (*FloatSliceCmd) String

func (cmd *FloatSliceCmd) String() string

func (*FloatSliceCmd) Val

func (cmd *FloatSliceCmd) Val() []float64

type Function

type Function struct {
	Name        string
	Description string
	Flags       []string
}

type FunctionListCmd

type FunctionListCmd struct {
	// contains filtered or unexported fields
}

func NewFunctionListCmd

func NewFunctionListCmd(ctx context.Context, args ...interface{}) *FunctionListCmd

func (*FunctionListCmd) Args

func (cmd *FunctionListCmd) Args() []interface{}

func (*FunctionListCmd) Err

func (cmd *FunctionListCmd) Err() error

func (*FunctionListCmd) First

func (cmd *FunctionListCmd) First() (*Library, error)

func (*FunctionListCmd) FullName

func (cmd *FunctionListCmd) FullName() string

func (*FunctionListCmd) Name

func (cmd *FunctionListCmd) Name() string

func (*FunctionListCmd) Result

func (cmd *FunctionListCmd) Result() ([]Library, error)

func (*FunctionListCmd) SetErr

func (cmd *FunctionListCmd) SetErr(e error)

func (*FunctionListCmd) SetFirstKeyPos

func (cmd *FunctionListCmd) SetFirstKeyPos(keyPos int8)

func (*FunctionListCmd) SetVal

func (cmd *FunctionListCmd) SetVal(val []Library)

func (*FunctionListCmd) String

func (cmd *FunctionListCmd) String() string

func (*FunctionListCmd) Val

func (cmd *FunctionListCmd) Val() []Library

type FunctionListQuery

type FunctionListQuery struct {
	LibraryNamePattern string
	WithCode           bool
}

FunctionListQuery is used with FunctionList to query for Redis libraries

  	LibraryNamePattern 	- Use an empty string to get all libraries.
  						- Use a glob-style pattern to match multiple libraries with a matching name
  						- Use a library's full name to match a single library
	WithCode			- If true, it will return the code of the library

type FunctionStats

type FunctionStats struct {
	Engines []Engine
	// contains filtered or unexported fields
}

FunctionStats contains information about the scripts currently executing on the server, and the available engines

  • Engines: Statistics about the engine like number of functions and number of libraries
  • RunningScript: The script currently running on the shard we're connecting to. For Redis Enterprise and Redis Cloud, this represents the function with the longest running time, across all the running functions, on all shards
  • RunningScripts All scripts currently running in a Redis Enterprise clustered database. Only available on Redis Enterprise

func (*FunctionStats) AllRunningScripts

func (fs *FunctionStats) AllRunningScripts() []RunningScript

AllRunningScripts returns all scripts currently running in a Redis Enterprise clustered database. Only available on Redis Enterprise

func (*FunctionStats) Running

func (fs *FunctionStats) Running() bool

func (*FunctionStats) RunningScript

func (fs *FunctionStats) RunningScript() (RunningScript, bool)

type FunctionStatsCmd

type FunctionStatsCmd struct {
	// contains filtered or unexported fields
}

func NewFunctionStatsCmd

func NewFunctionStatsCmd(ctx context.Context, args ...interface{}) *FunctionStatsCmd

func (*FunctionStatsCmd) Args

func (cmd *FunctionStatsCmd) Args() []interface{}

func (*FunctionStatsCmd) Err

func (cmd *FunctionStatsCmd) Err() error

func (*FunctionStatsCmd) FullName

func (cmd *FunctionStatsCmd) FullName() string

func (*FunctionStatsCmd) Name

func (cmd *FunctionStatsCmd) Name() string

func (*FunctionStatsCmd) Result

func (cmd *FunctionStatsCmd) Result() (FunctionStats, error)

func (*FunctionStatsCmd) SetErr

func (cmd *FunctionStatsCmd) SetErr(e error)

func (*FunctionStatsCmd) SetFirstKeyPos

func (cmd *FunctionStatsCmd) SetFirstKeyPos(keyPos int8)

func (*FunctionStatsCmd) SetVal

func (cmd *FunctionStatsCmd) SetVal(val FunctionStats)

func (*FunctionStatsCmd) String

func (cmd *FunctionStatsCmd) String() string

func (*FunctionStatsCmd) Val

func (cmd *FunctionStatsCmd) Val() FunctionStats

type GearsCmdable

type GearsCmdable interface {
	TFunctionLoad(ctx context.Context, lib string) *StatusCmd
	TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd
	TFunctionDelete(ctx context.Context, libName string) *StatusCmd
	TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd
	TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd
	TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd
	TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd
	TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd
	TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd
}

type GenericCmdable

type GenericCmdable interface {
	Del(ctx context.Context, keys ...string) *IntCmd
	Dump(ctx context.Context, key string) *StringCmd
	Exists(ctx context.Context, keys ...string) *IntCmd
	Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
	ExpireTime(ctx context.Context, key string) *DurationCmd
	ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	Keys(ctx context.Context, pattern string) *StringSliceCmd
	Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
	Move(ctx context.Context, key string, db int) *BoolCmd
	ObjectFreq(ctx context.Context, key string) *IntCmd
	ObjectRefCount(ctx context.Context, key string) *IntCmd
	ObjectEncoding(ctx context.Context, key string) *StringCmd
	ObjectIdleTime(ctx context.Context, key string) *DurationCmd
	Persist(ctx context.Context, key string) *BoolCmd
	PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
	PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
	PExpireTime(ctx context.Context, key string) *DurationCmd
	PTTL(ctx context.Context, key string) *DurationCmd
	RandomKey(ctx context.Context) *StringCmd
	Rename(ctx context.Context, key, newkey string) *StatusCmd
	RenameNX(ctx context.Context, key, newkey string) *BoolCmd
	Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
	RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
	Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
	SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
	SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
	SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
	Touch(ctx context.Context, keys ...string) *IntCmd
	TTL(ctx context.Context, key string) *DurationCmd
	Type(ctx context.Context, key string) *StatusCmd
	Copy(ctx context.Context, sourceKey string, destKey string, db int, replace bool) *IntCmd

	Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
	ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
}

type GeoCmdable

type GeoCmdable interface {
	GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
	GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
	GeoRadius(ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery) *GeoLocationCmd
	GeoRadiusStore(ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery) *IntCmd
	GeoRadiusByMember(ctx context.Context, key, member string, query *GeoRadiusQuery) *GeoLocationCmd
	GeoRadiusByMemberStore(ctx context.Context, key, member string, query *GeoRadiusQuery) *IntCmd
	GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
	GeoSearchLocation(ctx context.Context, key string, q *GeoSearchLocationQuery) *GeoSearchLocationCmd
	GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
	GeoDist(ctx context.Context, key string, member1, member2, unit string) *FloatCmd
	GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
}

type GeoLocation

type GeoLocation struct {
	Name                      string
	Longitude, Latitude, Dist float64
	GeoHash                   int64
}

GeoLocation is used with GeoAdd to add geospatial location.

type GeoLocationCmd

type GeoLocationCmd struct {
	// contains filtered or unexported fields
}

func NewGeoLocationCmd

func NewGeoLocationCmd(ctx context.Context, 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) Args

func (cmd *GeoLocationCmd) Args() []interface{}

func (*GeoLocationCmd) Err

func (cmd *GeoLocationCmd) Err() error

func (*GeoLocationCmd) FullName

func (cmd *GeoLocationCmd) FullName() string

func (*GeoLocationCmd) Name

func (cmd *GeoLocationCmd) Name() string

func (*GeoLocationCmd) Result

func (cmd *GeoLocationCmd) Result() ([]GeoLocation, error)

func (*GeoLocationCmd) SetErr

func (cmd *GeoLocationCmd) SetErr(e error)

func (*GeoLocationCmd) SetFirstKeyPos

func (cmd *GeoLocationCmd) SetFirstKeyPos(keyPos int8)

func (*GeoLocationCmd) SetVal

func (cmd *GeoLocationCmd) SetVal(locations []GeoLocation)

func (*GeoLocationCmd) String

func (cmd *GeoLocationCmd) String() string

func (*GeoLocationCmd) Val

func (cmd *GeoLocationCmd) Val() []GeoLocation

type GeoPos

type GeoPos struct {
	Longitude, Latitude float64
}

type GeoPosCmd

type GeoPosCmd struct {
	// contains filtered or unexported fields
}

func NewGeoPosCmd

func NewGeoPosCmd(ctx context.Context, args ...interface{}) *GeoPosCmd

func NewGeoPosCmdResult

func NewGeoPosCmdResult(val []*GeoPos, err error) *GeoPosCmd

NewGeoPosCmdResult returns a GeoPosCmd initialised with val and err for testing.

func (*GeoPosCmd) Args

func (cmd *GeoPosCmd) Args() []interface{}

func (*GeoPosCmd) Err

func (cmd *GeoPosCmd) Err() error

func (*GeoPosCmd) FullName

func (cmd *GeoPosCmd) FullName() string

func (*GeoPosCmd) Name

func (cmd *GeoPosCmd) Name() string

func (*GeoPosCmd) Result

func (cmd *GeoPosCmd) Result() ([]*GeoPos, error)

func (*GeoPosCmd) SetErr

func (cmd *GeoPosCmd) SetErr(e error)

func (*GeoPosCmd) SetFirstKeyPos

func (cmd *GeoPosCmd) SetFirstKeyPos(keyPos int8)

func (*GeoPosCmd) SetVal

func (cmd *GeoPosCmd) SetVal(val []*GeoPos)

func (*GeoPosCmd) String

func (cmd *GeoPosCmd) String() string

func (*GeoPosCmd) Val

func (cmd *GeoPosCmd) Val() []*GeoPos

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
	// contains filtered or unexported fields
}

GeoRadiusQuery is used with GeoRadius to query geospatial index.

type GeoSearchLocationCmd

type GeoSearchLocationCmd struct {
	// contains filtered or unexported fields
}

func NewGeoSearchLocationCmd

func NewGeoSearchLocationCmd(
	ctx context.Context, opt *GeoSearchLocationQuery, args ...interface{},
) *GeoSearchLocationCmd

func (*GeoSearchLocationCmd) Args

func (cmd *GeoSearchLocationCmd) Args() []interface{}

func (*GeoSearchLocationCmd) Err

func (cmd *GeoSearchLocationCmd) Err() error

func (*GeoSearchLocationCmd) FullName

func (cmd *GeoSearchLocationCmd) FullName() string

func (*GeoSearchLocationCmd) Name

func (cmd *GeoSearchLocationCmd) Name() string

func (*GeoSearchLocationCmd) Result

func (cmd *GeoSearchLocationCmd) Result() ([]GeoLocation, error)

func (*GeoSearchLocationCmd) SetErr

func (cmd *GeoSearchLocationCmd) SetErr(e error)

func (*GeoSearchLocationCmd) SetFirstKeyPos

func (cmd *GeoSearchLocationCmd) SetFirstKeyPos(keyPos int8)

func (*GeoSearchLocationCmd) SetVal

func (cmd *GeoSearchLocationCmd) SetVal(val []GeoLocation)

func (*GeoSearchLocationCmd) String

func (cmd *GeoSearchLocationCmd) String() string

func (*GeoSearchLocationCmd) Val

func (cmd *GeoSearchLocationCmd) Val() []GeoLocation

type GeoSearchLocationQuery

type GeoSearchLocationQuery struct {
	GeoSearchQuery

	WithCoord bool
	WithDist  bool
	WithHash  bool
}

type GeoSearchQuery

type GeoSearchQuery struct {
	Member string

	// Latitude and Longitude when using FromLonLat option.
	Longitude float64
	Latitude  float64

	// Distance and unit when using ByRadius option.
	// Can use m, km, ft, or mi. Default is km.
	Radius     float64
	RadiusUnit string

	// Height, width and unit when using ByBox option.
	// Can be m, km, ft, or mi. Default is km.
	BoxWidth  float64
	BoxHeight float64
	BoxUnit   string

	// Can be ASC or DESC. Default is no sort order.
	Sort     string
	Count    int
	CountAny bool
}

GeoSearchQuery is used for GEOSearch/GEOSearchStore command query.

type GeoSearchStoreQuery

type GeoSearchStoreQuery struct {
	GeoSearchQuery

	// When using the StoreDist option, the command stores the items in a
	// sorted set populated with their distance from the center of the circle or box,
	// as a floating-point number, in the same unit specified for that shape.
	StoreDist bool
}

type HashCmdable

type HashCmdable interface {
	HDel(ctx context.Context, key string, fields ...string) *IntCmd
	HExists(ctx context.Context, key, field string) *BoolCmd
	HGet(ctx context.Context, key, field string) *StringCmd
	HGetAll(ctx context.Context, key string) *MapStringStringCmd
	HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
	HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
	HKeys(ctx context.Context, key string) *StringSliceCmd
	HLen(ctx context.Context, key string) *IntCmd
	HMGet(ctx context.Context, key string, fields ...string) *SliceCmd
	HSet(ctx context.Context, key string, values ...interface{}) *IntCmd
	HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd
	HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
	HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
	HVals(ctx context.Context, key string) *StringSliceCmd
	HRandField(ctx context.Context, key string, count int) *StringSliceCmd
	HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
}

type Hook

type Hook interface {
	DialHook(next DialHook) DialHook
	ProcessHook(next ProcessHook) ProcessHook
	ProcessPipelineHook(next ProcessPipelineHook) ProcessPipelineHook
}

type HyperLogLogCmdable

type HyperLogLogCmdable interface {
	PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
	PFCount(ctx context.Context, keys ...string) *IntCmd
	PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
}

type InfoCmd

type InfoCmd struct {
	// contains filtered or unexported fields
}

func NewInfoCmd

func NewInfoCmd(ctx context.Context, args ...interface{}) *InfoCmd

func (*InfoCmd) Args

func (cmd *InfoCmd) Args() []interface{}

func (*InfoCmd) Err

func (cmd *InfoCmd) Err() error

func (*InfoCmd) FullName

func (cmd *InfoCmd) FullName() string

func (*InfoCmd) Item

func (cmd *InfoCmd) Item(section, key string) string

func (*InfoCmd) Name

func (cmd *InfoCmd) Name() string

func (*InfoCmd) Result

func (cmd *InfoCmd) Result() (map[string]map[string]string, error)

func (*InfoCmd) SetErr

func (cmd *InfoCmd) SetErr(e error)

func (*InfoCmd) SetFirstKeyPos

func (cmd *InfoCmd) SetFirstKeyPos(keyPos int8)

func (*InfoCmd) SetVal

func (cmd *InfoCmd) SetVal(val map[string]map[string]string)

func (*InfoCmd) String

func (cmd *InfoCmd) String() string

func (*InfoCmd) Val

func (cmd *InfoCmd) Val() map[string]map[string]string

type IntCmd

type IntCmd struct {
	// contains filtered or unexported fields
}

func NewIntCmd

func NewIntCmd(ctx context.Context, args ...interface{}) *IntCmd

func NewIntResult

func NewIntResult(val int64, err error) *IntCmd

NewIntResult returns an IntCmd initialised with val and err for testing.

func (*IntCmd) Args

func (cmd *IntCmd) Args() []interface{}

func (*IntCmd) Err

func (cmd *IntCmd) Err() error

func (*IntCmd) FullName

func (cmd *IntCmd) FullName() string

func (*IntCmd) Name

func (cmd *IntCmd) Name() string

func (*IntCmd) Result

func (cmd *IntCmd) Result() (int64, error)

func (*IntCmd) SetErr

func (cmd *IntCmd) SetErr(e error)

func (*IntCmd) SetFirstKeyPos

func (cmd *IntCmd) SetFirstKeyPos(keyPos int8)

func (*IntCmd) SetVal

func (cmd *IntCmd) SetVal(val int64)

func (*IntCmd) String

func (cmd *IntCmd) String() string

func (*IntCmd) Uint64

func (cmd *IntCmd) Uint64() (uint64, error)

func (*IntCmd) Val

func (cmd *IntCmd) Val() int64

type IntPointerSliceCmd

type IntPointerSliceCmd struct {
	// contains filtered or unexported fields
}

func NewIntPointerSliceCmd

func NewIntPointerSliceCmd(ctx context.Context, args ...interface{}) *IntPointerSliceCmd

NewIntPointerSliceCmd initialises an IntPointerSliceCmd

func (*IntPointerSliceCmd) Args

func (cmd *IntPointerSliceCmd) Args() []interface{}

func (*IntPointerSliceCmd) Err

func (cmd *IntPointerSliceCmd) Err() error

func (*IntPointerSliceCmd) FullName

func (cmd *IntPointerSliceCmd) FullName() string

func (*IntPointerSliceCmd) Name

func (cmd *IntPointerSliceCmd) Name() string

func (*IntPointerSliceCmd) Result

func (cmd *IntPointerSliceCmd) Result() ([]*int64, error)

func (*IntPointerSliceCmd) SetErr

func (cmd *IntPointerSliceCmd) SetErr(e error)

func (*IntPointerSliceCmd) SetFirstKeyPos

func (cmd *IntPointerSliceCmd) SetFirstKeyPos(keyPos int8)

func (*IntPointerSliceCmd) SetVal

func (cmd *IntPointerSliceCmd) SetVal(val []*int64)

func (*IntPointerSliceCmd) String

func (cmd *IntPointerSliceCmd) String() string

func (*IntPointerSliceCmd) Val

func (cmd *IntPointerSliceCmd) Val() []*int64

type IntSliceCmd

type IntSliceCmd struct {
	// contains filtered or unexported fields
}

func NewIntSliceCmd

func NewIntSliceCmd(ctx context.Context, args ...interface{}) *IntSliceCmd

func (*IntSliceCmd) Args

func (cmd *IntSliceCmd) Args() []interface{}

func (*IntSliceCmd) Err

func (cmd *IntSliceCmd) Err() error

func (*IntSliceCmd) FullName

func (cmd *IntSliceCmd) FullName() string

func (*IntSliceCmd) Name

func (cmd *IntSliceCmd) Name() string

func (*IntSliceCmd) Result

func (cmd *IntSliceCmd) Result() ([]int64, error)

func (*IntSliceCmd) SetErr

func (cmd *IntSliceCmd) SetErr(e error)

func (*IntSliceCmd) SetFirstKeyPos

func (cmd *IntSliceCmd) SetFirstKeyPos(keyPos int8)

func (*IntSliceCmd) SetVal

func (cmd *IntSliceCmd) SetVal(val []int64)

func (*IntSliceCmd) String

func (cmd *IntSliceCmd) String() string

func (*IntSliceCmd) Val

func (cmd *IntSliceCmd) Val() []int64

type JSONArrIndexArgs

type JSONArrIndexArgs struct {
	Start int
	Stop  *int
}

type JSONArrTrimArgs

type JSONArrTrimArgs struct {
	Start int
	Stop  *int
}

type JSONCmd

type JSONCmd struct {
	// contains filtered or unexported fields
}

func (*JSONCmd) Args

func (cmd *JSONCmd) Args() []interface{}

func (*JSONCmd) Err

func (cmd *JSONCmd) Err() error

func (JSONCmd) Expanded

func (cmd JSONCmd) Expanded() (interface{}, error)

func (*JSONCmd) FullName

func (cmd *JSONCmd) FullName() string

func (*JSONCmd) Name

func (cmd *JSONCmd) Name() string

func (*JSONCmd) Result

func (cmd *JSONCmd) Result() (string, error)

func (*JSONCmd) SetErr

func (cmd *JSONCmd) SetErr(e error)

func (*JSONCmd) SetFirstKeyPos

func (cmd *JSONCmd) SetFirstKeyPos(keyPos int8)

func (*JSONCmd) SetVal

func (cmd *JSONCmd) SetVal(val string)

func (*JSONCmd) String

func (cmd *JSONCmd) String() string

func (*JSONCmd) Val

func (cmd *JSONCmd) Val() string

type JSONCmdable

type JSONCmdable interface {
	JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd
	JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd
	JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd
	JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd
	JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd
	JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd
	JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd
	JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd
	JSONClear(ctx context.Context, key, path string) *IntCmd
	JSONDebugMemory(ctx context.Context, key, path string) *IntCmd
	JSONDel(ctx context.Context, key, path string) *IntCmd
	JSONForget(ctx context.Context, key, path string) *IntCmd
	JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd
	JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd
	JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd
	JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd
	JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
	JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd
	JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd
	JSONObjKeys(ctx context.Context, key, path string) *SliceCmd
	JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd
	JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd
	JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd
	JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd
	JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd
	JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd
	JSONType(ctx context.Context, key, path string) *JSONSliceCmd
}

type JSONGetArgs

type JSONGetArgs struct {
	Indent  string
	Newline string
	Space   string
}

type JSONSetArgs

type JSONSetArgs struct {
	Key   string
	Path  string
	Value interface{}
}

type JSONSliceCmd

type JSONSliceCmd struct {
	// contains filtered or unexported fields
}

func NewJSONSliceCmd

func NewJSONSliceCmd(ctx context.Context, args ...interface{}) *JSONSliceCmd

func (*JSONSliceCmd) Args

func (cmd *JSONSliceCmd) Args() []interface{}

func (*JSONSliceCmd) Err

func (cmd *JSONSliceCmd) Err() error

func (*JSONSliceCmd) FullName

func (cmd *JSONSliceCmd) FullName() string

func (*JSONSliceCmd) Name

func (cmd *JSONSliceCmd) Name() string

func (*JSONSliceCmd) Result

func (cmd *JSONSliceCmd) Result() ([]interface{}, error)

func (*JSONSliceCmd) SetErr

func (cmd *JSONSliceCmd) SetErr(e error)

func (*JSONSliceCmd) SetFirstKeyPos

func (cmd *JSONSliceCmd) SetFirstKeyPos(keyPos int8)

func (*JSONSliceCmd) SetVal

func (cmd *JSONSliceCmd) SetVal(val []interface{})

func (*JSONSliceCmd) String

func (cmd *JSONSliceCmd) String() string

func (*JSONSliceCmd) Val

func (cmd *JSONSliceCmd) Val() []interface{}

type KeyFlags

type KeyFlags struct {
	Key   string
	Flags []string
}

type KeyFlagsCmd

type KeyFlagsCmd struct {
	// contains filtered or unexported fields
}

func NewKeyFlagsCmd

func NewKeyFlagsCmd(ctx context.Context, args ...interface{}) *KeyFlagsCmd

func (*KeyFlagsCmd) Args

func (cmd *KeyFlagsCmd) Args() []interface{}

func (*KeyFlagsCmd) Err

func (cmd *KeyFlagsCmd) Err() error

func (*KeyFlagsCmd) FullName

func (cmd *KeyFlagsCmd) FullName() string

func (*KeyFlagsCmd) Name

func (cmd *KeyFlagsCmd) Name() string

func (*KeyFlagsCmd) Result

func (cmd *KeyFlagsCmd) Result() ([]KeyFlags, error)

func (*KeyFlagsCmd) SetErr

func (cmd *KeyFlagsCmd) SetErr(e error)

func (*KeyFlagsCmd) SetFirstKeyPos

func (cmd *KeyFlagsCmd) SetFirstKeyPos(keyPos int8)

func (*KeyFlagsCmd) SetVal

func (cmd *KeyFlagsCmd) SetVal(val []KeyFlags)

func (*KeyFlagsCmd) String

func (cmd *KeyFlagsCmd) String() string

func (*KeyFlagsCmd) Val

func (cmd *KeyFlagsCmd) Val() []KeyFlags

type KeyValue

type KeyValue struct {
	Key   string
	Value string
}

type KeyValueSliceCmd

type KeyValueSliceCmd struct {
	// contains filtered or unexported fields
}

func NewKeyValueSliceCmd

func NewKeyValueSliceCmd(ctx context.Context, args ...interface{}) *KeyValueSliceCmd

func (*KeyValueSliceCmd) Args

func (cmd *KeyValueSliceCmd) Args() []interface{}

func (*KeyValueSliceCmd) Err

func (cmd *KeyValueSliceCmd) Err() error

func (*KeyValueSliceCmd) FullName

func (cmd *KeyValueSliceCmd) FullName() string

func (*KeyValueSliceCmd) Name

func (cmd *KeyValueSliceCmd) Name() string

func (*KeyValueSliceCmd) Result

func (cmd *KeyValueSliceCmd) Result() ([]KeyValue, error)

func (*KeyValueSliceCmd) SetErr

func (cmd *KeyValueSliceCmd) SetErr(e error)

func (*KeyValueSliceCmd) SetFirstKeyPos

func (cmd *KeyValueSliceCmd) SetFirstKeyPos(keyPos int8)

func (*KeyValueSliceCmd) SetVal

func (cmd *KeyValueSliceCmd) SetVal(val []KeyValue)

func (*KeyValueSliceCmd) String

func (cmd *KeyValueSliceCmd) String() string

func (*KeyValueSliceCmd) Val

func (cmd *KeyValueSliceCmd) Val() []KeyValue

type KeyValuesCmd

type KeyValuesCmd struct {
	// contains filtered or unexported fields
}

func NewKeyValuesCmd

func NewKeyValuesCmd(ctx context.Context, args ...interface{}) *KeyValuesCmd

func (*KeyValuesCmd) Args

func (cmd *KeyValuesCmd) Args() []interface{}

func (*KeyValuesCmd) Err

func (cmd *KeyValuesCmd) Err() error

func (*KeyValuesCmd) FullName

func (cmd *KeyValuesCmd) FullName() string

func (*KeyValuesCmd) Name

func (cmd *KeyValuesCmd) Name() string

func (*KeyValuesCmd) Result

func (cmd *KeyValuesCmd) Result() (string, []string, error)

func (*KeyValuesCmd) SetErr

func (cmd *KeyValuesCmd) SetErr(e error)

func (*KeyValuesCmd) SetFirstKeyPos

func (cmd *KeyValuesCmd) SetFirstKeyPos(keyPos int8)

func (*KeyValuesCmd) SetVal

func (cmd *KeyValuesCmd) SetVal(key string, val []string)

func (*KeyValuesCmd) String

func (cmd *KeyValuesCmd) String() string

func (*KeyValuesCmd) Val

func (cmd *KeyValuesCmd) Val() (string, []string)

type LCSCmd

type LCSCmd struct {
	// contains filtered or unexported fields
}

func NewLCSCmd

func NewLCSCmd(ctx context.Context, q *LCSQuery) *LCSCmd

func (*LCSCmd) Args

func (cmd *LCSCmd) Args() []interface{}

func (*LCSCmd) Err

func (cmd *LCSCmd) Err() error

func (*LCSCmd) FullName

func (cmd *LCSCmd) FullName() string

func (*LCSCmd) Name

func (cmd *LCSCmd) Name() string

func (*LCSCmd) Result

func (cmd *LCSCmd) Result() (*LCSMatch, error)

func (*LCSCmd) SetErr

func (cmd *LCSCmd) SetErr(e error)

func (*LCSCmd) SetFirstKeyPos

func (cmd *LCSCmd) SetFirstKeyPos(keyPos int8)

func (*LCSCmd) SetVal

func (cmd *LCSCmd) SetVal(val *LCSMatch)

func (*LCSCmd) String

func (cmd *LCSCmd) String() string

func (*LCSCmd) Val

func (cmd *LCSCmd) Val() *LCSMatch

type LCSMatch

type LCSMatch struct {
	MatchString string
	Matches     []LCSMatchedPosition
	Len         int64
}

LCSMatch is the result set of the LCS command.

type LCSMatchedPosition

type LCSMatchedPosition struct {
	Key1 LCSPosition
	Key2 LCSPosition

	// only for withMatchLen is true
	MatchLen int64
}

type LCSPosition

type LCSPosition struct {
	Start int64
	End   int64
}

type LCSQuery

type LCSQuery struct {
	Key1         string
	Key2         string
	Len          bool
	Idx          bool
	MinMatchLen  int
	WithMatchLen bool
}

LCSQuery is a parameter used for the LCS command

type LPosArgs

type LPosArgs struct {
	Rank, MaxLen int64
}

type Library

type Library struct {
	Name      string
	Engine    string
	Functions []Function
	Code      string
}

type LibraryInfo

type LibraryInfo struct {
	LibName *string
	LibVer  *string
}

LibraryInfo holds the library info.

func WithLibraryName

func WithLibraryName(libName string) LibraryInfo

WithLibraryName returns a valid LibraryInfo with library name only.

func WithLibraryVersion

func WithLibraryVersion(libVer string) LibraryInfo

WithLibraryVersion returns a valid LibraryInfo with library version only.

func (LibraryInfo) Validate

func (info LibraryInfo) Validate() error

Validate checks if only one field in the struct is non-nil.

type Limiter

type Limiter interface {
	// Allow returns nil if operation is allowed or an error otherwise.
	// If operation is allowed client must ReportResult of the operation
	// whether it is a success or a failure.
	Allow() error
	// ReportResult reports the result of the previously allowed operation.
	// nil indicates a success, non-nil error usually indicates a failure.
	ReportResult(result error)
}

Limiter is the interface of a rate limiter or a circuit breaker.

type ListCmdable

type ListCmdable interface {
	BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
	BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
	BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
	BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
	LIndex(ctx context.Context, key string, index int64) *StringCmd
	LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
	LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
	LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
	LLen(ctx context.Context, key string) *IntCmd
	LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd
	LPop(ctx context.Context, key string) *StringCmd
	LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
	LPos(ctx context.Context, key string, value string, args LPosArgs) *IntCmd
	LPosCount(ctx context.Context, key string, value string, count int64, args LPosArgs) *IntSliceCmd
	LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
	LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
	LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
	LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
	LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
	LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
	RPop(ctx context.Context, key string) *StringCmd
	RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
	RPopLPush(ctx context.Context, source, destination string) *StringCmd
	RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
	RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
	LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
	BLMove(ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration) *StringCmd
}

type MapStringIntCmd

type MapStringIntCmd struct {
	// contains filtered or unexported fields
}

func NewMapStringIntCmd

func NewMapStringIntCmd(ctx context.Context, args ...interface{}) *MapStringIntCmd

func NewMapStringIntCmdResult

func NewMapStringIntCmdResult(val map[string]int64, err error) *MapStringIntCmd

NewMapStringIntCmdResult returns a MapStringIntCmd initialised with val and err for testing.

func (*MapStringIntCmd) Args

func (cmd *MapStringIntCmd) Args() []interface{}

func (*MapStringIntCmd) Err

func (cmd *MapStringIntCmd) Err() error

func (*MapStringIntCmd) FullName

func (cmd *MapStringIntCmd) FullName() string

func (*MapStringIntCmd) Name

func (cmd *MapStringIntCmd) Name() string

func (*MapStringIntCmd) Result

func (cmd *MapStringIntCmd) Result() (map[string]int64, error)

func (*MapStringIntCmd) SetErr

func (cmd *MapStringIntCmd) SetErr(e error)

func (*MapStringIntCmd) SetFirstKeyPos

func (cmd *MapStringIntCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringIntCmd) SetVal

func (cmd *MapStringIntCmd) SetVal(val map[string]int64)

func (*MapStringIntCmd) String

func (cmd *MapStringIntCmd) String() string

func (*MapStringIntCmd) Val

func (cmd *MapStringIntCmd) Val() map[string]int64

type MapStringInterfaceCmd

type MapStringInterfaceCmd struct {
	// contains filtered or unexported fields
}

func NewMapStringInterfaceCmd

func NewMapStringInterfaceCmd(ctx context.Context, args ...interface{}) *MapStringInterfaceCmd

func (*MapStringInterfaceCmd) Args

func (cmd *MapStringInterfaceCmd) Args() []interface{}

func (*MapStringInterfaceCmd) Err

func (cmd *MapStringInterfaceCmd) Err() error

func (*MapStringInterfaceCmd) FullName

func (cmd *MapStringInterfaceCmd) FullName() string

func (*MapStringInterfaceCmd) Name

func (cmd *MapStringInterfaceCmd) Name() string

func (*MapStringInterfaceCmd) Result

func (cmd *MapStringInterfaceCmd) Result() (map[string]interface{}, error)

func (*MapStringInterfaceCmd) SetErr

func (cmd *MapStringInterfaceCmd) SetErr(e error)

func (*MapStringInterfaceCmd) SetFirstKeyPos

func (cmd *MapStringInterfaceCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringInterfaceCmd) SetVal

func (cmd *MapStringInterfaceCmd) SetVal(val map[string]interface{})

func (*MapStringInterfaceCmd) String

func (cmd *MapStringInterfaceCmd) String() string

func (*MapStringInterfaceCmd) Val

func (cmd *MapStringInterfaceCmd) Val() map[string]interface{}

type MapStringInterfaceSliceCmd

type MapStringInterfaceSliceCmd struct {
	// contains filtered or unexported fields
}

func NewMapStringInterfaceSliceCmd

func NewMapStringInterfaceSliceCmd(ctx context.Context, args ...interface{}) *MapStringInterfaceSliceCmd

func (*MapStringInterfaceSliceCmd) Args

func (cmd *MapStringInterfaceSliceCmd) Args() []interface{}

func (*MapStringInterfaceSliceCmd) Err

func (cmd *MapStringInterfaceSliceCmd) Err() error

func (*MapStringInterfaceSliceCmd) FullName

func (cmd *MapStringInterfaceSliceCmd) FullName() string

func (*MapStringInterfaceSliceCmd) Name

func (cmd *MapStringInterfaceSliceCmd) Name() string

func (*MapStringInterfaceSliceCmd) Result

func (cmd *MapStringInterfaceSliceCmd) Result() ([]map[string]interface{}, error)

func (*MapStringInterfaceSliceCmd) SetErr

func (cmd *MapStringInterfaceSliceCmd) SetErr(e error)

func (*MapStringInterfaceSliceCmd) SetFirstKeyPos

func (cmd *MapStringInterfaceSliceCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringInterfaceSliceCmd) SetVal

func (cmd *MapStringInterfaceSliceCmd) SetVal(val []map[string]interface{})

func (*MapStringInterfaceSliceCmd) String

func (cmd *MapStringInterfaceSliceCmd) String() string

func (*MapStringInterfaceSliceCmd) Val

func (cmd *MapStringInterfaceSliceCmd) Val() []map[string]interface{}

type MapStringSliceInterfaceCmd

type MapStringSliceInterfaceCmd struct {
	// contains filtered or unexported fields
}

------------------------------------------------------------------------------

func NewMapStringSliceInterfaceCmd

func NewMapStringSliceInterfaceCmd(ctx context.Context, args ...interface{}) *MapStringSliceInterfaceCmd

func (*MapStringSliceInterfaceCmd) Args

func (cmd *MapStringSliceInterfaceCmd) Args() []interface{}

func (*MapStringSliceInterfaceCmd) Err

func (cmd *MapStringSliceInterfaceCmd) Err() error

func (*MapStringSliceInterfaceCmd) FullName

func (cmd *MapStringSliceInterfaceCmd) FullName() string

func (*MapStringSliceInterfaceCmd) Name

func (cmd *MapStringSliceInterfaceCmd) Name() string

func (*MapStringSliceInterfaceCmd) Result

func (cmd *MapStringSliceInterfaceCmd) Result() (map[string][]interface{}, error)

func (*MapStringSliceInterfaceCmd) SetErr

func (cmd *MapStringSliceInterfaceCmd) SetErr(e error)

func (*MapStringSliceInterfaceCmd) SetFirstKeyPos

func (cmd *MapStringSliceInterfaceCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringSliceInterfaceCmd) SetVal

func (cmd *MapStringSliceInterfaceCmd) SetVal(val map[string][]interface{})

func (*MapStringSliceInterfaceCmd) String

func (cmd *MapStringSliceInterfaceCmd) String() string

func (*MapStringSliceInterfaceCmd) Val

func (cmd *MapStringSliceInterfaceCmd) Val() map[string][]interface{}

type MapStringStringCmd

type MapStringStringCmd struct {
	// contains filtered or unexported fields
}

func NewMapStringStringCmd

func NewMapStringStringCmd(ctx context.Context, args ...interface{}) *MapStringStringCmd

func NewMapStringStringResult

func NewMapStringStringResult(val map[string]string, err error) *MapStringStringCmd

NewMapStringStringResult returns a MapStringStringCmd initialised with val and err for testing.

func (*MapStringStringCmd) Args

func (cmd *MapStringStringCmd) Args() []interface{}

func (*MapStringStringCmd) Err

func (cmd *MapStringStringCmd) Err() error

func (*MapStringStringCmd) FullName

func (cmd *MapStringStringCmd) FullName() string

func (*MapStringStringCmd) Name

func (cmd *MapStringStringCmd) Name() string

func (*MapStringStringCmd) Result

func (cmd *MapStringStringCmd) Result() (map[string]string, error)

func (*MapStringStringCmd) Scan

func (cmd *MapStringStringCmd) Scan(dest interface{}) error

Scan scans the results from the map into a destination struct. The map keys are matched in the Redis struct fields by the `redis:"field"` tag.

Example

ExampleMapStringStringCmd_Scan shows how to scan the results of a map fetch into a struct.

rdb.FlushDB(ctx)
err := rdb.HMSet(ctx, "map",
	"name", "hello",
	"count", 123,
	"correct", true).Err()
if err != nil {
	panic(err)
}

// Get the map. The same approach works for HmGet().
res := rdb.HGetAll(ctx, "map")
if res.Err() != nil {
	panic(err)
}

type data struct {
	Name    string `redis:"name"`
	Count   int    `redis:"count"`
	Correct bool   `redis:"correct"`
}

// Scan the results into the struct.
var d data
if err := res.Scan(&d); err != nil {
	panic(err)
}

fmt.Println(d)
Output:

{hello 123 true}

func (*MapStringStringCmd) SetErr

func (cmd *MapStringStringCmd) SetErr(e error)

func (*MapStringStringCmd) SetFirstKeyPos

func (cmd *MapStringStringCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringStringCmd) SetVal

func (cmd *MapStringStringCmd) SetVal(val map[string]string)

func (*MapStringStringCmd) String

func (cmd *MapStringStringCmd) String() string

func (*MapStringStringCmd) Val

func (cmd *MapStringStringCmd) Val() map[string]string

type MapStringStringSliceCmd

type MapStringStringSliceCmd struct {
	// contains filtered or unexported fields
}

func NewMapStringStringSliceCmd

func NewMapStringStringSliceCmd(ctx context.Context, args ...interface{}) *MapStringStringSliceCmd

func (*MapStringStringSliceCmd) Args

func (cmd *MapStringStringSliceCmd) Args() []interface{}

func (*MapStringStringSliceCmd) Err

func (cmd *MapStringStringSliceCmd) Err() error

func (*MapStringStringSliceCmd) FullName

func (cmd *MapStringStringSliceCmd) FullName() string

func (*MapStringStringSliceCmd) Name

func (cmd *MapStringStringSliceCmd) Name() string

func (*MapStringStringSliceCmd) Result

func (cmd *MapStringStringSliceCmd) Result() ([]map[string]string, error)

func (*MapStringStringSliceCmd) SetErr

func (cmd *MapStringStringSliceCmd) SetErr(e error)

func (*MapStringStringSliceCmd) SetFirstKeyPos

func (cmd *MapStringStringSliceCmd) SetFirstKeyPos(keyPos int8)

func (*MapStringStringSliceCmd) SetVal

func (cmd *MapStringStringSliceCmd) SetVal(val []map[string]string)

func (*MapStringStringSliceCmd) String

func (cmd *MapStringStringSliceCmd) String() string

func (*MapStringStringSliceCmd) Val

func (cmd *MapStringStringSliceCmd) Val() []map[string]string

type Message

type Message struct {
	Channel      string
	Pattern      string
	Payload      string
	PayloadSlice []string
}

Message received as result of a PUBLISH command issued by another client.

func (*Message) String

func (m *Message) String() string

type ModuleLoadexConfig

type ModuleLoadexConfig struct {
	Path string
	Conf map[string]interface{}
	Args []interface{}
}

ModuleLoadexConfig struct is used to specify the arguments for the MODULE LOADEX command of redis. `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]`

type MonitorCmd

type MonitorCmd struct {
	// contains filtered or unexported fields
}

func (*MonitorCmd) Args

func (cmd *MonitorCmd) Args() []interface{}

func (*MonitorCmd) Err

func (cmd *MonitorCmd) Err() error

func (*MonitorCmd) FullName

func (cmd *MonitorCmd) FullName() string

func (*MonitorCmd) Name

func (cmd *MonitorCmd) Name() string

func (*MonitorCmd) SetErr

func (cmd *MonitorCmd) SetErr(e error)

func (*MonitorCmd) SetFirstKeyPos

func (cmd *MonitorCmd) SetFirstKeyPos(keyPos int8)

func (*MonitorCmd) Start

func (cmd *MonitorCmd) Start()

func (*MonitorCmd) Stop

func (cmd *MonitorCmd) Stop()

func (*MonitorCmd) String

func (cmd *MonitorCmd) String() string

type MonitorStatus

type MonitorStatus int

type Node

type Node struct {
	ID                string
	Endpoint          string
	IP                string
	Hostname          string
	Port              int64
	TLSPort           int64
	Role              string
	ReplicationOffset int64
	Health            string
}

type Options

type Options struct {
	// The network type, either tcp or unix.
	// Default is tcp.
	Network string
	// host:port address.
	Addr string

	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
	ClientName string

	// Dialer creates new network connection and has priority over
	// Network and Addr options.
	Dialer func(ctx context.Context, network, addr string) (net.Conn, error)

	// Hook that is called when new connection is established.
	OnConnect func(ctx context.Context, cn *Conn) error

	// Protocol 2 or 3. Use the version to negotiate RESP version with redis-server.
	// Default is 3.
	Protocol int
	// Use the specified Username to authenticate the current connection
	// with one of the connections defined in the ACL list when connecting
	// to a Redis 6.0 instance, or greater, that is using the Redis ACL system.
	Username string
	// Optional password. Must match the password specified in the
	// requirepass server configuration option (if connecting to a Redis 5.0 instance, or lower),
	// or the User Password when connecting to a Redis 6.0 instance, or greater,
	// that is using the Redis ACL system.
	Password string
	// CredentialsProvider allows the username and password to be updated
	// before reconnecting. It should return the current username and password.
	CredentialsProvider func() (username string, password string)

	// Database to be selected after connecting to the server.
	DB int

	// Maximum number of retries before giving up.
	// Default is 3 retries; -1 (not 0) disables retries.
	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. Supported values:
	//   - `0` - default timeout (3 seconds).
	//   - `-1` - no timeout (block indefinitely).
	//   - `-2` - disables SetReadDeadline calls completely.
	ReadTimeout time.Duration
	// Timeout for socket writes. If reached, commands will fail
	// with a timeout instead of blocking.  Supported values:
	//   - `0` - default timeout (3 seconds).
	//   - `-1` - no timeout (block indefinitely).
	//   - `-2` - disables SetWriteDeadline calls completely.
	WriteTimeout time.Duration
	// ContextTimeoutEnabled controls whether the client respects context timeouts and deadlines.
	// See https://redis.uptrace.dev/guide/go-redis-debugging.html#timeouts
	ContextTimeoutEnabled bool

	// Type of connection pool.
	// true for FIFO pool, false for LIFO pool.
	// Note that FIFO has slightly higher overhead compared to LIFO,
	// but it helps closing idle connections faster reducing the pool size.
	PoolFIFO bool
	// Base number of socket connections.
	// Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS.
	// If there is not enough connections in the pool, new connections will be allocated in excess of PoolSize,
	// you can limit it through MaxActiveConns
	PoolSize int
	// Amount of time client waits for connection if all connections
	// are busy before returning an error.
	// Default is ReadTimeout + 1 second.
	PoolTimeout time.Duration
	// Minimum number of idle connections which is useful when establishing
	// new connection is slow.
	// Default is 0. the idle connections are not closed by default.
	MinIdleConns int
	// Maximum number of idle connections.
	// Default is 0. the idle connections are not closed by default.
	MaxIdleConns int
	// Maximum number of connections allocated by the pool at a given time.
	// When zero, there is no limit on the number of connections in the pool.
	MaxActiveConns int
	// ConnMaxIdleTime is the maximum amount of time a connection may be idle.
	// Should be less than server's timeout.
	//
	// Expired connections may be closed lazily before reuse.
	// If d <= 0, connections are not closed due to a connection's idle time.
	//
	// Default is 30 minutes. -1 disables idle timeout check.
	ConnMaxIdleTime time.Duration
	// ConnMaxLifetime is the maximum amount of time a connection may be reused.
	//
	// Expired connections may be closed lazily before reuse.
	// If <= 0, connections are not closed due to a connection's age.
	//
	// Default is to not close idle connections.
	ConnMaxLifetime time.Duration

	// TLS Config to use. When set, TLS will be negotiated.
	TLSConfig *tls.Config

	// Limiter interface used to implement circuit breaker or rate limiter.
	Limiter Limiter

	// Disable set-lib on connect. Default is false.
	DisableIndentity bool

	// Add suffix to client name. Default is empty.
	IdentitySuffix string
	// contains filtered or unexported fields
}

Options keeps the settings to set up redis connection.

func ParseURL

func ParseURL(redisURL string) (*Options, error)

ParseURL parses a URL into Options that can be used to connect to Redis. Scheme is required. There are two connection types: by tcp socket and by unix socket. Tcp connection:

redis://<user>:<password>@<host>:<port>/<db_number>

Unix connection:

unix://<user>:<password>@</path/to/redis.sock>?db=<db_number>

Most Option fields can be set using query parameters, with the following restrictions:

  • field names are mapped using snake-case conversion: to set MaxRetries, use max_retries
  • only scalar type fields are supported (bool, int, time.Duration)
  • for time.Duration fields, values must be a valid input for time.ParseDuration(); additionally a plain integer as value (i.e. without unit) is intepreted as seconds
  • to disable a duration field, use value less than or equal to 0; to use the default value, leave the value blank or remove the parameter
  • only the last value is interpreted if a parameter is given multiple times
  • fields "network", "addr", "username" and "password" can only be set using other URL attributes (scheme, host, userinfo, resp.), query paremeters using these names will be treated as unknown parameters
  • unknown parameter names will result in an error

Examples:

redis://user:password@localhost:6789/3?dial_timeout=3&db=1&read_timeout=6s&max_retries=2
is equivalent to:
&Options{
	Network:     "tcp",
	Addr:        "localhost:6789",
	DB:          1,               // path "/3" was overridden by "&db=1"
	DialTimeout: 3 * time.Second, // no time unit = seconds
	ReadTimeout: 6 * time.Second,
	MaxRetries:  2,
}
Example
opt, err := redis.ParseURL("redis://:qwerty@localhost:6379/1?dial_timeout=5s")
if err != nil {
	panic(err)
}
fmt.Println("addr is", opt.Addr)
fmt.Println("db is", opt.DB)
fmt.Println("password is", opt.Password)
fmt.Println("dial timeout is", opt.DialTimeout)

// Create client as usually.
_ = redis.NewClient(opt)
Output:

addr is localhost:6379
db is 1
password is qwerty
dial timeout is 5s

type Pipeline

type Pipeline struct {
	// contains filtered or unexported fields
}

Pipeline implements pipelining as described in http://redis.io/topics/pipelining. Please note: it is not safe for concurrent use by multiple goroutines.

Example (Instrumentation)
rdb := redis.NewClient(&redis.Options{
	Addr: ":6379",
})
rdb.AddHook(redisHook{})

rdb.Pipelined(ctx, func(pipe redis.Pipeliner) error {
	pipe.Ping(ctx)
	pipe.Ping(ctx)
	return nil
})
Output:

pipeline starting processing: [ping:  ping: ]
dialing tcp :6379
finished dialing tcp :6379
pipeline finished processing: [ping: PONG ping: PONG]

func (Pipeline) ACLDryRun

func (c Pipeline) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (Pipeline) ACLLog

func (c Pipeline) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (Pipeline) ACLLogReset

func (c Pipeline) ACLLogReset(ctx context.Context) *StatusCmd

func (Pipeline) Append

func (c Pipeline) Append(ctx context.Context, key, value string) *IntCmd

func (Pipeline) Auth

func (c Pipeline) Auth(ctx context.Context, password string) *StatusCmd

func (Pipeline) AuthACL

func (c Pipeline) AuthACL(ctx context.Context, username, password string) *StatusCmd

AuthACL Perform an AUTH command, using the given user and pass. Should be used to authenticate the current connection with one of the connections defined in the ACL list when connecting to a Redis 6.0 instance, or greater, that is using the Redis ACL system.

func (Pipeline) BFAdd

func (c Pipeline) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (Pipeline) BFCard

func (c Pipeline) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (Pipeline) BFExists

func (c Pipeline) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (Pipeline) BFInfo

func (c Pipeline) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoArg

func (c Pipeline) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoCapacity

func (c Pipeline) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoExpansion

func (c Pipeline) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoFilters

func (c Pipeline) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoItems

func (c Pipeline) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInfoSize

func (c Pipeline) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Pipeline) BFInsert

func (c Pipeline) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (Pipeline) BFLoadChunk

func (c Pipeline) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (Pipeline) BFMAdd

func (c Pipeline) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (Pipeline) BFMExists

func (c Pipeline) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (Pipeline) BFReserve

func (c Pipeline) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (Pipeline) BFReserveExpansion

func (c Pipeline) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (Pipeline) BFReserveNonScaling

func (c Pipeline) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (Pipeline) BFReserveWithArgs

func (c Pipeline) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (Pipeline) BFScanDump

func (c Pipeline) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (Pipeline) BLMPop

func (c Pipeline) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (Pipeline) BLMove

func (c Pipeline) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (Pipeline) BLPop

func (c Pipeline) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Pipeline) BRPop

func (c Pipeline) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Pipeline) BRPopLPush

func (c Pipeline) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (Pipeline) BZMPop

func (c Pipeline) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (Pipeline) BZPopMax

func (c Pipeline) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (Pipeline) BZPopMin

func (c Pipeline) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (Pipeline) BgRewriteAOF

func (c Pipeline) BgRewriteAOF(ctx context.Context) *StatusCmd

func (Pipeline) BgSave

func (c Pipeline) BgSave(ctx context.Context) *StatusCmd

func (Pipeline) BitCount

func (c Pipeline) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (Pipeline) BitField

func (c Pipeline) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (Pipeline) BitFieldRO

func (c Pipeline) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (Pipeline) BitOpAnd

func (c Pipeline) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Pipeline) BitOpNot

func (c Pipeline) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (Pipeline) BitOpOr

func (c Pipeline) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Pipeline) BitOpXor

func (c Pipeline) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Pipeline) BitPos

func (c Pipeline) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (Pipeline) BitPosSpan

func (c Pipeline) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (Pipeline) CFAdd

func (c Pipeline) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (Pipeline) CFAddNX

func (c Pipeline) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (Pipeline) CFCount

func (c Pipeline) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (Pipeline) CFDel

func (c Pipeline) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (Pipeline) CFExists

func (c Pipeline) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (Pipeline) CFInfo

func (c Pipeline) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (Pipeline) CFInsert

func (c Pipeline) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (Pipeline) CFInsertNX

func (c Pipeline) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (Pipeline) CFLoadChunk

func (c Pipeline) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (Pipeline) CFMExists

func (c Pipeline) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (Pipeline) CFReserve

func (c Pipeline) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (Pipeline) CFReserveBucketSize

func (c Pipeline) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (Pipeline) CFReserveExpansion

func (c Pipeline) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (Pipeline) CFReserveMaxIterations

func (c Pipeline) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Pipeline) CFReserveWithArgs

func (c Pipeline) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Pipeline) CFScanDump

func (c Pipeline) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (Pipeline) CMSIncrBy

func (c Pipeline) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (Pipeline) CMSInfo

func (c Pipeline) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (Pipeline) CMSInitByDim

func (c Pipeline) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (Pipeline) CMSInitByProb

func (c Pipeline) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (Pipeline) CMSMerge

func (c Pipeline) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Pipeline) CMSMergeWithWeight

func (c Pipeline) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Pipeline) CMSQuery

func (c Pipeline) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (Pipeline) ClientGetName

func (c Pipeline) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (Pipeline) ClientID

func (c Pipeline) ClientID(ctx context.Context) *IntCmd

func (Pipeline) ClientInfo

func (c Pipeline) ClientInfo(ctx context.Context) *ClientInfoCmd

func (Pipeline) ClientKill

func (c Pipeline) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (Pipeline) ClientKillByFilter

func (c Pipeline) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (Pipeline) ClientList

func (c Pipeline) ClientList(ctx context.Context) *StringCmd

func (Pipeline) ClientPause

func (c Pipeline) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (Pipeline) ClientSetInfo

func (c Pipeline) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd

ClientSetInfo sends a CLIENT SETINFO command with the provided info.

func (Pipeline) ClientSetName

func (c Pipeline) ClientSetName(ctx context.Context, name string) *BoolCmd

ClientSetName assigns a name to the connection.

func (Pipeline) ClientUnblock

func (c Pipeline) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (Pipeline) ClientUnblockWithError

func (c Pipeline) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (Pipeline) ClientUnpause

func (c Pipeline) ClientUnpause(ctx context.Context) *BoolCmd

func (Pipeline) ClusterAddSlots

func (c Pipeline) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (Pipeline) ClusterAddSlotsRange

func (c Pipeline) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Pipeline) ClusterCountFailureReports

func (c Pipeline) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (Pipeline) ClusterCountKeysInSlot

func (c Pipeline) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (Pipeline) ClusterDelSlots

func (c Pipeline) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (Pipeline) ClusterDelSlotsRange

func (c Pipeline) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Pipeline) ClusterFailover

func (c Pipeline) ClusterFailover(ctx context.Context) *StatusCmd

func (Pipeline) ClusterForget

func (c Pipeline) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (Pipeline) ClusterGetKeysInSlot

func (c Pipeline) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (Pipeline) ClusterInfo

func (c Pipeline) ClusterInfo(ctx context.Context) *StringCmd

func (Pipeline) ClusterKeySlot

func (c Pipeline) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Pipeline) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (Pipeline) ClusterMeet

func (c Pipeline) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (Pipeline) ClusterMyShardID

func (c Pipeline) ClusterMyShardID(ctx context.Context) *StringCmd

func (Pipeline) ClusterNodes

func (c Pipeline) ClusterNodes(ctx context.Context) *StringCmd

func (Pipeline) ClusterReplicate

func (c Pipeline) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (Pipeline) ClusterResetHard

func (c Pipeline) ClusterResetHard(ctx context.Context) *StatusCmd

func (Pipeline) ClusterResetSoft

func (c Pipeline) ClusterResetSoft(ctx context.Context) *StatusCmd

func (Pipeline) ClusterSaveConfig

func (c Pipeline) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (Pipeline) ClusterShards

func (c Pipeline) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (Pipeline) ClusterSlaves

func (c Pipeline) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (Pipeline) ClusterSlots

func (c Pipeline) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (Pipeline) Command

func (c Pipeline) Command(ctx context.Context) *CommandsInfoCmd

func (Pipeline) CommandGetKeys

func (c Pipeline) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (Pipeline) CommandGetKeysAndFlags

func (c Pipeline) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (Pipeline) CommandList

func (c Pipeline) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (Pipeline) ConfigGet

func (c Pipeline) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (Pipeline) ConfigResetStat

func (c Pipeline) ConfigResetStat(ctx context.Context) *StatusCmd

func (Pipeline) ConfigRewrite

func (c Pipeline) ConfigRewrite(ctx context.Context) *StatusCmd

func (Pipeline) ConfigSet

func (c Pipeline) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (Pipeline) Copy

func (c Pipeline) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (Pipeline) DBSize

func (c Pipeline) DBSize(ctx context.Context) *IntCmd

func (Pipeline) DebugObject

func (c Pipeline) DebugObject(ctx context.Context, key string) *StringCmd

func (Pipeline) Decr

func (c Pipeline) Decr(ctx context.Context, key string) *IntCmd

func (Pipeline) DecrBy

func (c Pipeline) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (Pipeline) Del

func (c Pipeline) Del(ctx context.Context, keys ...string) *IntCmd

func (*Pipeline) Discard

func (c *Pipeline) Discard()

Discard resets the pipeline and discards queued commands.

func (*Pipeline) Do

func (c *Pipeline) Do(ctx context.Context, args ...interface{}) *Cmd

Do queues the custom command for later execution.

func (Pipeline) Dump

func (c Pipeline) Dump(ctx context.Context, key string) *StringCmd

func (Pipeline) Echo

func (c Pipeline) Echo(ctx context.Context, message interface{}) *StringCmd

func (Pipeline) Eval

func (c Pipeline) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Pipeline) EvalRO

func (c Pipeline) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Pipeline) EvalSha

func (c Pipeline) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Pipeline) EvalShaRO

func (c Pipeline) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (*Pipeline) Exec

func (c *Pipeline) Exec(ctx context.Context) ([]Cmder, error)

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) Exists

func (c Pipeline) Exists(ctx context.Context, keys ...string) *IntCmd

func (Pipeline) Expire

func (c Pipeline) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) ExpireAt

func (c Pipeline) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Pipeline) ExpireGT

func (c Pipeline) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) ExpireLT

func (c Pipeline) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) ExpireNX

func (c Pipeline) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) ExpireTime

func (c Pipeline) ExpireTime(ctx context.Context, key string) *DurationCmd

func (Pipeline) ExpireXX

func (c Pipeline) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) FCall

func (c Pipeline) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Pipeline) FCallRO

func (c Pipeline) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Pipeline) FCallRo

func (c Pipeline) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (Pipeline) FlushAll

func (c Pipeline) FlushAll(ctx context.Context) *StatusCmd

func (Pipeline) FlushAllAsync

func (c Pipeline) FlushAllAsync(ctx context.Context) *StatusCmd

func (Pipeline) FlushDB

func (c Pipeline) FlushDB(ctx context.Context) *StatusCmd

func (Pipeline) FlushDBAsync

func (c Pipeline) FlushDBAsync(ctx context.Context) *StatusCmd

func (Pipeline) FunctionDelete

func (c Pipeline) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (Pipeline) FunctionDump

func (c Pipeline) FunctionDump(ctx context.Context) *StringCmd

func (Pipeline) FunctionFlush

func (c Pipeline) FunctionFlush(ctx context.Context) *StringCmd

func (Pipeline) FunctionFlushAsync

func (c Pipeline) FunctionFlushAsync(ctx context.Context) *StringCmd

func (Pipeline) FunctionKill

func (c Pipeline) FunctionKill(ctx context.Context) *StringCmd

func (Pipeline) FunctionList

func (c Pipeline) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (Pipeline) FunctionLoad

func (c Pipeline) FunctionLoad(ctx context.Context, code string) *StringCmd

func (Pipeline) FunctionLoadReplace

func (c Pipeline) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (Pipeline) FunctionRestore

func (c Pipeline) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (Pipeline) FunctionStats

func (c Pipeline) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (Pipeline) GeoAdd

func (c Pipeline) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (Pipeline) GeoDist

func (c Pipeline) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (Pipeline) GeoHash

func (c Pipeline) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (Pipeline) GeoPos

func (c Pipeline) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (Pipeline) GeoRadius

func (c Pipeline) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (Pipeline) GeoRadiusByMember

func (c Pipeline) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (Pipeline) GeoRadiusByMemberStore

func (c Pipeline) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (Pipeline) GeoRadiusStore

func (c Pipeline) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (Pipeline) GeoSearch

func (c Pipeline) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (Pipeline) GeoSearchLocation

func (c Pipeline) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (Pipeline) GeoSearchStore

func (c Pipeline) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (Pipeline) Get

func (c Pipeline) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (Pipeline) GetBit

func (c Pipeline) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (Pipeline) GetDel

func (c Pipeline) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (Pipeline) GetEx

func (c Pipeline) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (Pipeline) GetRange

func (c Pipeline) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (Pipeline) GetSet

func (c Pipeline) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (Pipeline) HDel

func (c Pipeline) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (Pipeline) HExists

func (c Pipeline) HExists(ctx context.Context, key, field string) *BoolCmd

func (Pipeline) HGet

func (c Pipeline) HGet(ctx context.Context, key, field string) *StringCmd

func (Pipeline) HGetAll

func (c Pipeline) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (Pipeline) HIncrBy

func (c Pipeline) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (Pipeline) HIncrByFloat

func (c Pipeline) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (Pipeline) HKeys

func (c Pipeline) HKeys(ctx context.Context, key string) *StringSliceCmd

func (Pipeline) HLen

func (c Pipeline) HLen(ctx context.Context, key string) *IntCmd

func (Pipeline) HMGet

func (c Pipeline) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (Pipeline) HMSet

func (c Pipeline) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (Pipeline) HRandField

func (c Pipeline) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (Pipeline) HRandFieldWithValues

func (c Pipeline) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (Pipeline) HScan

func (c Pipeline) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Pipeline) HSet

func (c Pipeline) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

func (Pipeline) HSetNX

func (c Pipeline) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (Pipeline) HVals

func (c Pipeline) HVals(ctx context.Context, key string) *StringSliceCmd

func (Pipeline) Hello

func (c Pipeline) Hello(ctx context.Context,
	ver int, username, password, clientName string,
) *MapStringInterfaceCmd

Hello Set the resp protocol used.

func (Pipeline) Incr

func (c Pipeline) Incr(ctx context.Context, key string) *IntCmd

func (Pipeline) IncrBy

func (c Pipeline) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (Pipeline) IncrByFloat

func (c Pipeline) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (Pipeline) Info

func (c Pipeline) Info(ctx context.Context, sections ...string) *StringCmd

func (Pipeline) InfoMap

func (c Pipeline) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (Pipeline) JSONArrAppend

func (c Pipeline) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (Pipeline) JSONArrIndex

func (c Pipeline) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (Pipeline) JSONArrIndexWithArgs

func (c Pipeline) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (Pipeline) JSONArrInsert

func (c Pipeline) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (Pipeline) JSONArrLen

func (c Pipeline) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (Pipeline) JSONArrPop

func (c Pipeline) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (Pipeline) JSONArrTrim

func (c Pipeline) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Pipeline) JSONArrTrimWithArgs

func (c Pipeline) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Pipeline) JSONClear

func (c Pipeline) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (Pipeline) JSONDebugMemory

func (c Pipeline) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (Pipeline) JSONDel

func (c Pipeline) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (Pipeline) JSONForget

func (c Pipeline) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (Pipeline) JSONGet

func (c Pipeline) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (Pipeline) JSONGetWithArgs

func (c Pipeline) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (Pipeline) JSONMGet

func (c Pipeline) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (Pipeline) JSONMSet

func (c Pipeline) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (Pipeline) JSONMSetArgs

func (c Pipeline) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (Pipeline) JSONMerge

func (c Pipeline) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (Pipeline) JSONNumIncrBy

func (c Pipeline) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (Pipeline) JSONObjKeys

func (c Pipeline) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (Pipeline) JSONObjLen

func (c Pipeline) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (Pipeline) JSONSet

func (c Pipeline) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Pipeline) JSONSetMode

func (c Pipeline) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Pipeline) JSONStrAppend

func (c Pipeline) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (Pipeline) JSONStrLen

func (c Pipeline) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (Pipeline) JSONToggle

func (c Pipeline) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (Pipeline) JSONType

func (c Pipeline) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (Pipeline) Keys

func (c Pipeline) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (Pipeline) LCS

func (c Pipeline) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (Pipeline) LIndex

func (c Pipeline) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (Pipeline) LInsert

func (c Pipeline) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (Pipeline) LInsertAfter

func (c Pipeline) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Pipeline) LInsertBefore

func (c Pipeline) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Pipeline) LLen

func (c Pipeline) LLen(ctx context.Context, key string) *IntCmd

func (Pipeline) LMPop

func (c Pipeline) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (Pipeline) LMove

func (c Pipeline) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (Pipeline) LPop

func (c Pipeline) LPop(ctx context.Context, key string) *StringCmd

func (Pipeline) LPopCount

func (c Pipeline) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Pipeline) LPos

func (c Pipeline) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (Pipeline) LPosCount

func (c Pipeline) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (Pipeline) LPush

func (c Pipeline) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Pipeline) LPushX

func (c Pipeline) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Pipeline) LRange

func (c Pipeline) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Pipeline) LRem

func (c Pipeline) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (Pipeline) LSet

func (c Pipeline) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (Pipeline) LTrim

func (c Pipeline) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (Pipeline) LastSave

func (c Pipeline) LastSave(ctx context.Context) *IntCmd

func (*Pipeline) Len

func (c *Pipeline) Len() int

Len returns the number of queued commands.

func (Pipeline) MGet

func (c Pipeline) MGet(ctx context.Context, keys ...string) *SliceCmd

func (Pipeline) MSet

func (c Pipeline) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (Pipeline) MSetNX

func (c Pipeline) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (Pipeline) MemoryUsage

func (c Pipeline) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (Pipeline) Migrate

func (c Pipeline) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (Pipeline) ModuleLoadex

func (c Pipeline) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (Pipeline) Monitor

func (c Pipeline) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (Pipeline) Move

func (c Pipeline) Move(ctx context.Context, key string, db int) *BoolCmd

func (Pipeline) ObjectEncoding

func (c Pipeline) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (Pipeline) ObjectFreq

func (c Pipeline) ObjectFreq(ctx context.Context, key string) *IntCmd

func (Pipeline) ObjectIdleTime

func (c Pipeline) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (Pipeline) ObjectRefCount

func (c Pipeline) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (Pipeline) PExpire

func (c Pipeline) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Pipeline) PExpireAt

func (c Pipeline) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Pipeline) PExpireTime

func (c Pipeline) PExpireTime(ctx context.Context, key string) *DurationCmd

func (Pipeline) PFAdd

func (c Pipeline) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (Pipeline) PFCount

func (c Pipeline) PFCount(ctx context.Context, keys ...string) *IntCmd

func (Pipeline) PFMerge

func (c Pipeline) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (Pipeline) PTTL

func (c Pipeline) PTTL(ctx context.Context, key string) *DurationCmd

func (Pipeline) Persist

func (c Pipeline) Persist(ctx context.Context, key string) *BoolCmd

func (Pipeline) Ping

func (c Pipeline) Ping(ctx context.Context) *StatusCmd

func (*Pipeline) Pipeline

func (c *Pipeline) Pipeline() Pipeliner

func (*Pipeline) Pipelined

func (c *Pipeline) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (*Pipeline) Process

func (c *Pipeline) Process(ctx context.Context, cmd Cmder) error

Process queues the cmd for later execution.

func (Pipeline) PubSubChannels

func (c Pipeline) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Pipeline) PubSubNumPat

func (c Pipeline) PubSubNumPat(ctx context.Context) *IntCmd

func (Pipeline) PubSubNumSub

func (c Pipeline) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Pipeline) PubSubShardChannels

func (c Pipeline) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Pipeline) PubSubShardNumSub

func (c Pipeline) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Pipeline) Publish

func (c Pipeline) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (Pipeline) Quit

func (c Pipeline) Quit(_ context.Context) *StatusCmd

func (Pipeline) RPop

func (c Pipeline) RPop(ctx context.Context, key string) *StringCmd

func (Pipeline) RPopCount

func (c Pipeline) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Pipeline) RPopLPush

func (c Pipeline) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (Pipeline) RPush

func (c Pipeline) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Pipeline) RPushX

func (c Pipeline) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Pipeline) RandomKey

func (c Pipeline) RandomKey(ctx context.Context) *StringCmd

func (Pipeline) ReadOnly

func (c Pipeline) ReadOnly(ctx context.Context) *StatusCmd

func (Pipeline) ReadWrite

func (c Pipeline) ReadWrite(ctx context.Context) *StatusCmd

func (Pipeline) Rename

func (c Pipeline) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (Pipeline) RenameNX

func (c Pipeline) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (Pipeline) Restore

func (c Pipeline) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Pipeline) RestoreReplace

func (c Pipeline) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Pipeline) SAdd

func (c Pipeline) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Pipeline) SCard

func (c Pipeline) SCard(ctx context.Context, key string) *IntCmd

func (Pipeline) SDiff

func (c Pipeline) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (Pipeline) SDiffStore

func (c Pipeline) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Pipeline) SInter

func (c Pipeline) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (Pipeline) SInterCard

func (c Pipeline) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Pipeline) SInterStore

func (c Pipeline) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Pipeline) SIsMember

func (c Pipeline) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (Pipeline) SMIsMember

func (c Pipeline) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (Pipeline) SMembers

func (c Pipeline) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (Pipeline) SMembersMap

func (c Pipeline) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (Pipeline) SMove

func (c Pipeline) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (Pipeline) SPop

func (c Pipeline) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (Pipeline) SPopN

func (c Pipeline) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (Pipeline) SPublish

func (c Pipeline) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (Pipeline) SRandMember

func (c Pipeline) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (Pipeline) SRandMemberN

func (c Pipeline) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (Pipeline) SRem

func (c Pipeline) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Pipeline) SScan

func (c Pipeline) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Pipeline) SUnion

func (c Pipeline) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (Pipeline) SUnionStore

func (c Pipeline) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Pipeline) Save

func (c Pipeline) Save(ctx context.Context) *StatusCmd

func (Pipeline) Scan

func (c Pipeline) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd

func (Pipeline) ScanType

func (c Pipeline) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd

func (Pipeline) ScriptExists

func (c Pipeline) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (Pipeline) ScriptFlush

func (c Pipeline) ScriptFlush(ctx context.Context) *StatusCmd

func (Pipeline) ScriptKill

func (c Pipeline) ScriptKill(ctx context.Context) *StatusCmd

func (Pipeline) ScriptLoad

func (c Pipeline) ScriptLoad(ctx context.Context, script string) *StringCmd

func (Pipeline) Select

func (c Pipeline) Select(ctx context.Context, index int) *StatusCmd

func (Pipeline) Set

func (c Pipeline) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Pipeline) SetArgs

func (c Pipeline) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (Pipeline) SetBit

func (c Pipeline) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (Pipeline) SetEx

func (c Pipeline) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

func (Pipeline) SetNX

func (c Pipeline) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Pipeline) SetRange

func (c Pipeline) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (Pipeline) SetXX

func (c Pipeline) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Pipeline) Shutdown

func (c Pipeline) Shutdown(ctx context.Context) *StatusCmd

func (Pipeline) ShutdownNoSave

func (c Pipeline) ShutdownNoSave(ctx context.Context) *StatusCmd

func (Pipeline) ShutdownSave

func (c Pipeline) ShutdownSave(ctx context.Context) *StatusCmd

func (Pipeline) SlaveOf

func (c Pipeline) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (Pipeline) SlowLogGet

func (c Pipeline) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd

func (Pipeline) Sort

func (c Pipeline) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Pipeline) SortInterfaces

func (c Pipeline) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (Pipeline) SortRO

func (c Pipeline) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Pipeline) SortStore

func (c Pipeline) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (Pipeline) StrLen

func (c Pipeline) StrLen(ctx context.Context, key string) *IntCmd

func (Pipeline) SwapDB

func (c Pipeline) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd

func (Pipeline) Sync

func (c Pipeline) Sync(_ context.Context)

func (Pipeline) TDigestAdd

func (c Pipeline) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (Pipeline) TDigestByRank

func (c Pipeline) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (Pipeline) TDigestByRevRank

func (c Pipeline) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (Pipeline) TDigestCDF

func (c Pipeline) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (Pipeline) TDigestCreate

func (c Pipeline) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Pipeline) TDigestCreateWithCompression

func (c Pipeline) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Pipeline) TDigestInfo

func (c Pipeline) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (Pipeline) TDigestMax

func (c Pipeline) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (Pipeline) TDigestMerge

func (c Pipeline) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (Pipeline) TDigestMin

func (c Pipeline) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (Pipeline) TDigestQuantile

func (c Pipeline) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (Pipeline) TDigestRank

func (c Pipeline) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (Pipeline) TDigestReset

func (c Pipeline) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (Pipeline) TDigestRevRank

func (c Pipeline) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (Pipeline) TDigestTrimmedMean

func (c Pipeline) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (Pipeline) TFCall

func (c Pipeline) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (Pipeline) TFCallASYNC

func (c Pipeline) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (Pipeline) TFCallASYNCArgs

func (c Pipeline) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Pipeline) TFCallArgs

func (c Pipeline) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Pipeline) TFunctionDelete

func (c Pipeline) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (Pipeline) TFunctionList

func (c Pipeline) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (Pipeline) TFunctionListArgs

func (c Pipeline) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (Pipeline) TFunctionLoad

func (c Pipeline) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (Pipeline) TFunctionLoadArgs

func (c Pipeline) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (Pipeline) TSAdd

func (c Pipeline) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (Pipeline) TSAddWithArgs

func (c Pipeline) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (Pipeline) TSAlter

func (c Pipeline) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (Pipeline) TSCreate

func (c Pipeline) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (Pipeline) TSCreateRule

func (c Pipeline) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (Pipeline) TSCreateRuleWithArgs

func (c Pipeline) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (Pipeline) TSCreateWithArgs

func (c Pipeline) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (Pipeline) TSDecrBy

func (c Pipeline) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (Pipeline) TSDecrByWithArgs

func (c Pipeline) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (Pipeline) TSDel

func (c Pipeline) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (Pipeline) TSDeleteRule

func (c Pipeline) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (Pipeline) TSGet

func (c Pipeline) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (Pipeline) TSGetWithArgs

func (c Pipeline) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (Pipeline) TSIncrBy

func (c Pipeline) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (Pipeline) TSIncrByWithArgs

func (c Pipeline) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (Pipeline) TSInfo

func (c Pipeline) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (Pipeline) TSInfoWithArgs

func (c Pipeline) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (Pipeline) TSMAdd

func (c Pipeline) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (Pipeline) TSMGet

func (c Pipeline) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (Pipeline) TSMGetWithArgs

func (c Pipeline) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (Pipeline) TSMRange

func (c Pipeline) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (Pipeline) TSMRangeWithArgs

func (c Pipeline) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (Pipeline) TSMRevRange

func (c Pipeline) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (Pipeline) TSMRevRangeWithArgs

func (c Pipeline) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (Pipeline) TSQueryIndex

func (c Pipeline) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (Pipeline) TSRange

func (c Pipeline) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (Pipeline) TSRangeWithArgs

func (c Pipeline) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (Pipeline) TSRevRange

func (c Pipeline) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (Pipeline) TSRevRangeWithArgs

func (c Pipeline) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (Pipeline) TTL

func (c Pipeline) TTL(ctx context.Context, key string) *DurationCmd

func (Pipeline) Time

func (c Pipeline) Time(ctx context.Context) *TimeCmd

func (Pipeline) TopKAdd

func (c Pipeline) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (Pipeline) TopKCount

func (c Pipeline) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (Pipeline) TopKIncrBy

func (c Pipeline) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (Pipeline) TopKInfo

func (c Pipeline) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (Pipeline) TopKList

func (c Pipeline) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (Pipeline) TopKListWithCount

func (c Pipeline) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (Pipeline) TopKQuery

func (c Pipeline) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (Pipeline) TopKReserve

func (c Pipeline) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (Pipeline) TopKReserveWithOptions

func (c Pipeline) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (Pipeline) Touch

func (c Pipeline) Touch(ctx context.Context, keys ...string) *IntCmd

func (*Pipeline) TxPipeline

func (c *Pipeline) TxPipeline() Pipeliner

func (*Pipeline) TxPipelined

func (c *Pipeline) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (Pipeline) Type

func (c Pipeline) Type(ctx context.Context, key string) *StatusCmd
func (c Pipeline) Unlink(ctx context.Context, keys ...string) *IntCmd

func (Pipeline) Wait

func (c Pipeline) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (Pipeline) WaitAOF

func (c Pipeline) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (Pipeline) XAck

func (c Pipeline) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (Pipeline) XAdd

func (c Pipeline) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (Pipeline) XAutoClaim

func (c Pipeline) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (Pipeline) XAutoClaimJustID

func (c Pipeline) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (Pipeline) XClaim

func (c Pipeline) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (Pipeline) XClaimJustID

func (c Pipeline) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (Pipeline) XDel

func (c Pipeline) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (Pipeline) XGroupCreate

func (c Pipeline) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (Pipeline) XGroupCreateConsumer

func (c Pipeline) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Pipeline) XGroupCreateMkStream

func (c Pipeline) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (Pipeline) XGroupDelConsumer

func (c Pipeline) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Pipeline) XGroupDestroy

func (c Pipeline) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (Pipeline) XGroupSetID

func (c Pipeline) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (Pipeline) XInfoConsumers

func (c Pipeline) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (Pipeline) XInfoGroups

func (c Pipeline) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (Pipeline) XInfoStream

func (c Pipeline) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (Pipeline) XInfoStreamFull

func (c Pipeline) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (Pipeline) XLen

func (c Pipeline) XLen(ctx context.Context, stream string) *IntCmd

func (Pipeline) XPending

func (c Pipeline) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (Pipeline) XPendingExt

func (c Pipeline) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (Pipeline) XRange

func (c Pipeline) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Pipeline) XRangeN

func (c Pipeline) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Pipeline) XRead

func (c Pipeline) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (Pipeline) XReadGroup

func (c Pipeline) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (Pipeline) XReadStreams

func (c Pipeline) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (Pipeline) XRevRange

func (c Pipeline) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Pipeline) XRevRangeN

func (c Pipeline) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Pipeline) XTrimMaxLen

func (c Pipeline) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (Pipeline) XTrimMaxLenApprox

func (c Pipeline) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (Pipeline) XTrimMinID

func (c Pipeline) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (Pipeline) XTrimMinIDApprox

func (c Pipeline) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (Pipeline) ZAdd

func (c Pipeline) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (Pipeline) ZAddArgs

func (c Pipeline) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (Pipeline) ZAddArgsIncr

func (c Pipeline) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (Pipeline) ZAddGT

func (c Pipeline) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (Pipeline) ZAddLT

func (c Pipeline) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (Pipeline) ZAddNX

func (c Pipeline) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (Pipeline) ZAddXX

func (c Pipeline) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (Pipeline) ZCard

func (c Pipeline) ZCard(ctx context.Context, key string) *IntCmd

func (Pipeline) ZCount

func (c Pipeline) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (Pipeline) ZDiff

func (c Pipeline) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (Pipeline) ZDiffStore

func (c Pipeline) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (Pipeline) ZDiffWithScores

func (c Pipeline) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (Pipeline) ZIncrBy

func (c Pipeline) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (Pipeline) ZInter

func (c Pipeline) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (Pipeline) ZInterCard

func (c Pipeline) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Pipeline) ZInterStore

func (c Pipeline) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (Pipeline) ZInterWithScores

func (c Pipeline) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (Pipeline) ZLexCount

func (c Pipeline) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (Pipeline) ZMPop

func (c Pipeline) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (Pipeline) ZMScore

func (c Pipeline) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (Pipeline) ZPopMax

func (c Pipeline) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Pipeline) ZPopMin

func (c Pipeline) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Pipeline) ZRandMember

func (c Pipeline) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (Pipeline) ZRandMemberWithScores

func (c Pipeline) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (Pipeline) ZRange

func (c Pipeline) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Pipeline) ZRangeArgs

func (c Pipeline) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (Pipeline) ZRangeArgsWithScores

func (c Pipeline) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (Pipeline) ZRangeByLex

func (c Pipeline) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Pipeline) ZRangeByScore

func (c Pipeline) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Pipeline) ZRangeByScoreWithScores

func (c Pipeline) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Pipeline) ZRangeStore

func (c Pipeline) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (Pipeline) ZRangeWithScores

func (c Pipeline) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (Pipeline) ZRank

func (c Pipeline) ZRank(ctx context.Context, key, member string) *IntCmd

func (Pipeline) ZRankWithScore

func (c Pipeline) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Pipeline) ZRem

func (c Pipeline) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Pipeline) ZRemRangeByLex

func (c Pipeline) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (Pipeline) ZRemRangeByRank

func (c Pipeline) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (Pipeline) ZRemRangeByScore

func (c Pipeline) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (Pipeline) ZRevRange

func (c Pipeline) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Pipeline) ZRevRangeByLex

func (c Pipeline) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Pipeline) ZRevRangeByScore

func (c Pipeline) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Pipeline) ZRevRangeByScoreWithScores

func (c Pipeline) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Pipeline) ZRevRangeWithScores

func (c Pipeline) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Pipeline) ZRevRank

func (c Pipeline) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (Pipeline) ZRevRankWithScore

func (c Pipeline) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (Pipeline) ZScan

func (c Pipeline) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Pipeline) ZScore

func (c Pipeline) ZScore(ctx context.Context, key, member string) *FloatCmd

func (Pipeline) ZUnion

func (c Pipeline) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (Pipeline) ZUnionStore

func (c Pipeline) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (Pipeline) ZUnionWithScores

func (c Pipeline) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type Pipeliner

type Pipeliner interface {
	StatefulCmdable

	// Len is to obtain the number of commands in the pipeline that have not yet been executed.
	Len() int

	// Do is an API for executing any command.
	// If a certain Redis command is not yet supported, you can use Do to execute it.
	Do(ctx context.Context, args ...interface{}) *Cmd

	// Process is to put the commands to be executed into the pipeline buffer.
	Process(ctx context.Context, cmd Cmder) error

	// Discard is to discard all commands in the cache that have not yet been executed.
	Discard()

	// Exec is to send all the commands buffered in the pipeline to the redis-server.
	Exec(ctx context.Context) ([]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 single 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.

type Pong

type Pong struct {
	Payload string
}

Pong received as result of a PING command issued by another client.

func (*Pong) String

func (p *Pong) String() string

type PoolStats

type PoolStats pool.Stats

type ProbabilisticCmdable

type ProbabilisticCmdable interface {
	BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd
	BFCard(ctx context.Context, key string) *IntCmd
	BFExists(ctx context.Context, key string, element interface{}) *BoolCmd
	BFInfo(ctx context.Context, key string) *BFInfoCmd
	BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd
	BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd
	BFInfoSize(ctx context.Context, key string) *BFInfoCmd
	BFInfoFilters(ctx context.Context, key string) *BFInfoCmd
	BFInfoItems(ctx context.Context, key string) *BFInfoCmd
	BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd
	BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd
	BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd
	BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd
	BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd
	BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd
	BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd
	BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd
	BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd
	BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

	CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd
	CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd
	CFCount(ctx context.Context, key string, element interface{}) *IntCmd
	CFDel(ctx context.Context, key string, element interface{}) *BoolCmd
	CFExists(ctx context.Context, key string, element interface{}) *BoolCmd
	CFInfo(ctx context.Context, key string) *CFInfoCmd
	CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd
	CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd
	CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd
	CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd
	CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd
	CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd
	CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd
	CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd
	CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd
	CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

	CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd
	CMSInfo(ctx context.Context, key string) *CMSInfoCmd
	CMSInitByDim(ctx context.Context, key string, width, height int64) *StatusCmd
	CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd
	CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd
	CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd
	CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

	TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd
	TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd
	TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd
	TopKInfo(ctx context.Context, key string) *TopKInfoCmd
	TopKList(ctx context.Context, key string) *StringSliceCmd
	TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd
	TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd
	TopKReserve(ctx context.Context, key string, k int64) *StatusCmd
	TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

	TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd
	TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd
	TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd
	TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd
	TDigestCreate(ctx context.Context, key string) *StatusCmd
	TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd
	TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd
	TDigestMax(ctx context.Context, key string) *FloatCmd
	TDigestMin(ctx context.Context, key string) *FloatCmd
	TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd
	TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd
	TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd
	TDigestReset(ctx context.Context, key string) *StatusCmd
	TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd
	TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd
}

type ProcessHook

type ProcessHook func(ctx context.Context, cmd Cmder) error

type ProcessPipelineHook

type ProcessPipelineHook func(ctx context.Context, cmds []Cmder) error

type PubSub

type PubSub struct {
	// contains filtered or unexported fields
}

PubSub implements Pub/Sub commands as described in http://redis.io/topics/pubsub. Message receiving is NOT safe for concurrent use by multiple goroutines.

PubSub automatically reconnects to Redis Server and resubscribes to the channels in case of network errors.

Example
pubsub := rdb.Subscribe(ctx, "mychannel1")

// Wait for confirmation that subscription is created before publishing anything.
_, err := pubsub.Receive(ctx)
if err != nil {
	panic(err)
}

// Go channel which receives messages.
ch := pubsub.Channel()

// Publish a message.
err = rdb.Publish(ctx, "mychannel1", "hello").Err()
if err != nil {
	panic(err)
}

time.AfterFunc(time.Second, func() {
	// When pubsub is closed channel is closed too.
	_ = pubsub.Close()
})

// Consume messages.
for msg := range ch {
	fmt.Println(msg.Channel, msg.Payload)
}
Output:

mychannel1 hello

func (*PubSub) Channel

func (c *PubSub) Channel(opts ...ChannelOption) <-chan *Message

Channel returns a Go channel for concurrently receiving messages. The channel is closed together with the PubSub. If the Go channel is blocked full for 1 minute the message is dropped. Receive* APIs can not be used after channel is created.

go-redis periodically sends ping messages to test connection health and re-subscribes if ping can not not received for 1 minute.

func (*PubSub) ChannelSize deprecated

func (c *PubSub) ChannelSize(size int) <-chan *Message

ChannelSize is like Channel, but creates a Go channel with specified buffer size.

Deprecated: use Channel(WithChannelSize(size)), remove in v9.

func (*PubSub) ChannelWithSubscriptions

func (c *PubSub) ChannelWithSubscriptions(opts ...ChannelOption) <-chan interface{}

ChannelWithSubscriptions is like Channel, but message type can be either *Subscription or *Message. Subscription messages can be used to detect reconnections.

ChannelWithSubscriptions can not be used together with Channel or ChannelSize.

func (*PubSub) Close

func (c *PubSub) Close() error

func (*PubSub) PSubscribe

func (c *PubSub) PSubscribe(ctx context.Context, patterns ...string) error

PSubscribe the client to the given patterns. It returns empty subscription if there are no patterns.

func (*PubSub) PUnsubscribe

func (c *PubSub) PUnsubscribe(ctx context.Context, patterns ...string) error

PUnsubscribe the client from the given patterns, or from all of them if none is given.

func (*PubSub) Ping

func (c *PubSub) Ping(ctx context.Context, payload ...string) error

func (*PubSub) Receive

func (c *PubSub) Receive(ctx context.Context) (interface{}, error)

Receive returns a message as a Subscription, Message, Pong or error. See PubSub example for details. This is low-level API and in most cases Channel should be used instead.

Example
pubsub := rdb.Subscribe(ctx, "mychannel2")
defer pubsub.Close()

for i := 0; i < 2; i++ {
	// ReceiveTimeout is a low level API. Use ReceiveMessage instead.
	msgi, err := pubsub.ReceiveTimeout(ctx, time.Second)
	if err != nil {
		break
	}

	switch msg := msgi.(type) {
	case *redis.Subscription:
		fmt.Println("subscribed to", msg.Channel)

		_, err := rdb.Publish(ctx, "mychannel2", "hello").Result()
		if err != nil {
			panic(err)
		}
	case *redis.Message:
		fmt.Println("received", msg.Payload, "from", msg.Channel)
	default:
		panic("unreached")
	}
}

// sent message to 1 rdb
// received hello from mychannel2
Output:

func (*PubSub) ReceiveMessage

func (c *PubSub) ReceiveMessage(ctx context.Context) (*Message, error)

ReceiveMessage returns a Message or error ignoring Subscription and Pong messages. This is low-level API and in most cases Channel should be used instead.

func (*PubSub) ReceiveTimeout

func (c *PubSub) ReceiveTimeout(ctx context.Context, timeout time.Duration) (interface{}, error)

ReceiveTimeout acts like Receive but returns an error if message is not received in time. This is low-level API and in most cases Channel should be used instead.

func (*PubSub) SSubscribe

func (c *PubSub) SSubscribe(ctx context.Context, channels ...string) error

SSubscribe Subscribes the client to the specified shard channels.

func (*PubSub) SUnsubscribe

func (c *PubSub) SUnsubscribe(ctx context.Context, channels ...string) error

SUnsubscribe unsubscribes the client from the given shard channels, or from all of them if none is given.

func (*PubSub) String

func (c *PubSub) String() string

func (*PubSub) Subscribe

func (c *PubSub) Subscribe(ctx context.Context, channels ...string) error

Subscribe the client to the specified channels. It returns empty subscription if there are no channels.

func (*PubSub) Unsubscribe

func (c *PubSub) Unsubscribe(ctx context.Context, channels ...string) error

Unsubscribe the client from the given channels, or from all of them if none is given.

type PubSubCmdable

type PubSubCmdable interface {
	Publish(ctx context.Context, channel string, message interface{}) *IntCmd
	SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
	PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
	PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
	PubSubNumPat(ctx context.Context) *IntCmd
	PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
	PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
}

type RankScore

type RankScore struct {
	Rank  int64
	Score float64
}

type RankWithScoreCmd

type RankWithScoreCmd struct {
	// contains filtered or unexported fields
}

func NewRankWithScoreCmd

func NewRankWithScoreCmd(ctx context.Context, args ...interface{}) *RankWithScoreCmd

func (*RankWithScoreCmd) Args

func (cmd *RankWithScoreCmd) Args() []interface{}

func (*RankWithScoreCmd) Err

func (cmd *RankWithScoreCmd) Err() error

func (*RankWithScoreCmd) FullName

func (cmd *RankWithScoreCmd) FullName() string

func (*RankWithScoreCmd) Name

func (cmd *RankWithScoreCmd) Name() string

func (*RankWithScoreCmd) Result

func (cmd *RankWithScoreCmd) Result() (RankScore, error)

func (*RankWithScoreCmd) SetErr

func (cmd *RankWithScoreCmd) SetErr(e error)

func (*RankWithScoreCmd) SetFirstKeyPos

func (cmd *RankWithScoreCmd) SetFirstKeyPos(keyPos int8)

func (*RankWithScoreCmd) SetVal

func (cmd *RankWithScoreCmd) SetVal(val RankScore)

func (*RankWithScoreCmd) String

func (cmd *RankWithScoreCmd) String() string

func (*RankWithScoreCmd) Val

func (cmd *RankWithScoreCmd) Val() RankScore

type Ring

type Ring struct {
	// contains filtered or unexported fields
}

Ring is a Redis client that uses consistent hashing to distribute keys across multiple Redis servers (shards). It's safe for concurrent use by multiple goroutines.

Ring monitors the state of each shard and removes dead shards from the ring. When a shard comes online it is added back to the ring. This gives you maximum availability and partition tolerance, but no consistency between different shards or even clients. Each client uses shards that are available to the client and does not do any coordination when shard state is changed.

Ring should be used when you need multiple Redis servers for caching and can tolerate losing data when one of the servers dies. Otherwise you should use Redis Cluster.

func NewRing

func NewRing(opt *RingOptions) *Ring
Example
rdb := redis.NewRing(&redis.RingOptions{
	Addrs: map[string]string{
		"shard1": ":7000",
		"shard2": ":7001",
		"shard3": ":7002",
	},
})
rdb.Ping(ctx)
Output:

func (Ring) ACLDryRun

func (c Ring) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (Ring) ACLLog

func (c Ring) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (Ring) ACLLogReset

func (c Ring) ACLLogReset(ctx context.Context) *StatusCmd

func (*Ring) AddHook

func (hs *Ring) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (Ring) Append

func (c Ring) Append(ctx context.Context, key, value string) *IntCmd

func (Ring) BFAdd

func (c Ring) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (Ring) BFCard

func (c Ring) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (Ring) BFExists

func (c Ring) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (Ring) BFInfo

func (c Ring) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoArg

func (c Ring) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoCapacity

func (c Ring) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoExpansion

func (c Ring) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoFilters

func (c Ring) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoItems

func (c Ring) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInfoSize

func (c Ring) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Ring) BFInsert

func (c Ring) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (Ring) BFLoadChunk

func (c Ring) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (Ring) BFMAdd

func (c Ring) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (Ring) BFMExists

func (c Ring) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (Ring) BFReserve

func (c Ring) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (Ring) BFReserveExpansion

func (c Ring) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (Ring) BFReserveNonScaling

func (c Ring) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (Ring) BFReserveWithArgs

func (c Ring) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (Ring) BFScanDump

func (c Ring) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (Ring) BLMPop

func (c Ring) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (Ring) BLMove

func (c Ring) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (Ring) BLPop

func (c Ring) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Ring) BRPop

func (c Ring) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Ring) BRPopLPush

func (c Ring) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (Ring) BZMPop

func (c Ring) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (Ring) BZPopMax

func (c Ring) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (Ring) BZPopMin

func (c Ring) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (Ring) BgRewriteAOF

func (c Ring) BgRewriteAOF(ctx context.Context) *StatusCmd

func (Ring) BgSave

func (c Ring) BgSave(ctx context.Context) *StatusCmd

func (Ring) BitCount

func (c Ring) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (Ring) BitField

func (c Ring) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (Ring) BitFieldRO

func (c Ring) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (Ring) BitOpAnd

func (c Ring) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Ring) BitOpNot

func (c Ring) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (Ring) BitOpOr

func (c Ring) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Ring) BitOpXor

func (c Ring) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Ring) BitPos

func (c Ring) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (Ring) BitPosSpan

func (c Ring) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (Ring) CFAdd

func (c Ring) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (Ring) CFAddNX

func (c Ring) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (Ring) CFCount

func (c Ring) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (Ring) CFDel

func (c Ring) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (Ring) CFExists

func (c Ring) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (Ring) CFInfo

func (c Ring) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (Ring) CFInsert

func (c Ring) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (Ring) CFInsertNX

func (c Ring) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (Ring) CFLoadChunk

func (c Ring) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (Ring) CFMExists

func (c Ring) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (Ring) CFReserve

func (c Ring) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (Ring) CFReserveBucketSize

func (c Ring) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (Ring) CFReserveExpansion

func (c Ring) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (Ring) CFReserveMaxIterations

func (c Ring) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Ring) CFReserveWithArgs

func (c Ring) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Ring) CFScanDump

func (c Ring) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (Ring) CMSIncrBy

func (c Ring) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (Ring) CMSInfo

func (c Ring) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (Ring) CMSInitByDim

func (c Ring) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (Ring) CMSInitByProb

func (c Ring) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (Ring) CMSMerge

func (c Ring) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Ring) CMSMergeWithWeight

func (c Ring) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Ring) CMSQuery

func (c Ring) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (Ring) ClientGetName

func (c Ring) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (Ring) ClientID

func (c Ring) ClientID(ctx context.Context) *IntCmd

func (Ring) ClientInfo

func (c Ring) ClientInfo(ctx context.Context) *ClientInfoCmd

func (Ring) ClientKill

func (c Ring) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (Ring) ClientKillByFilter

func (c Ring) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (Ring) ClientList

func (c Ring) ClientList(ctx context.Context) *StringCmd

func (Ring) ClientPause

func (c Ring) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (Ring) ClientUnblock

func (c Ring) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (Ring) ClientUnblockWithError

func (c Ring) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (Ring) ClientUnpause

func (c Ring) ClientUnpause(ctx context.Context) *BoolCmd

func (*Ring) Close

func (c *Ring) Close() error

Close closes the ring client, releasing any open resources.

It is rare to Close a Ring, as the Ring is meant to be long-lived and shared between many goroutines.

func (Ring) ClusterAddSlots

func (c Ring) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (Ring) ClusterAddSlotsRange

func (c Ring) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Ring) ClusterCountFailureReports

func (c Ring) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (Ring) ClusterCountKeysInSlot

func (c Ring) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (Ring) ClusterDelSlots

func (c Ring) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (Ring) ClusterDelSlotsRange

func (c Ring) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Ring) ClusterFailover

func (c Ring) ClusterFailover(ctx context.Context) *StatusCmd

func (Ring) ClusterForget

func (c Ring) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (Ring) ClusterGetKeysInSlot

func (c Ring) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (Ring) ClusterInfo

func (c Ring) ClusterInfo(ctx context.Context) *StringCmd

func (Ring) ClusterKeySlot

func (c Ring) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Ring) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (Ring) ClusterMeet

func (c Ring) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (Ring) ClusterMyShardID

func (c Ring) ClusterMyShardID(ctx context.Context) *StringCmd

func (Ring) ClusterNodes

func (c Ring) ClusterNodes(ctx context.Context) *StringCmd

func (Ring) ClusterReplicate

func (c Ring) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (Ring) ClusterResetHard

func (c Ring) ClusterResetHard(ctx context.Context) *StatusCmd

func (Ring) ClusterResetSoft

func (c Ring) ClusterResetSoft(ctx context.Context) *StatusCmd

func (Ring) ClusterSaveConfig

func (c Ring) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (Ring) ClusterShards

func (c Ring) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (Ring) ClusterSlaves

func (c Ring) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (Ring) ClusterSlots

func (c Ring) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (Ring) Command

func (c Ring) Command(ctx context.Context) *CommandsInfoCmd

func (Ring) CommandGetKeys

func (c Ring) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (Ring) CommandGetKeysAndFlags

func (c Ring) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (Ring) CommandList

func (c Ring) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (Ring) ConfigGet

func (c Ring) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (Ring) ConfigResetStat

func (c Ring) ConfigResetStat(ctx context.Context) *StatusCmd

func (Ring) ConfigRewrite

func (c Ring) ConfigRewrite(ctx context.Context) *StatusCmd

func (Ring) ConfigSet

func (c Ring) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (Ring) Copy

func (c Ring) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (Ring) DBSize

func (c Ring) DBSize(ctx context.Context) *IntCmd

func (Ring) DebugObject

func (c Ring) DebugObject(ctx context.Context, key string) *StringCmd

func (Ring) Decr

func (c Ring) Decr(ctx context.Context, key string) *IntCmd

func (Ring) DecrBy

func (c Ring) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (Ring) Del

func (c Ring) Del(ctx context.Context, keys ...string) *IntCmd

func (*Ring) Do

func (c *Ring) Do(ctx context.Context, args ...interface{}) *Cmd

Do create a Cmd from the args and processes the cmd.

func (Ring) Dump

func (c Ring) Dump(ctx context.Context, key string) *StringCmd

func (Ring) Echo

func (c Ring) Echo(ctx context.Context, message interface{}) *StringCmd

func (Ring) Eval

func (c Ring) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Ring) EvalRO

func (c Ring) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Ring) EvalSha

func (c Ring) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Ring) EvalShaRO

func (c Ring) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Ring) Exists

func (c Ring) Exists(ctx context.Context, keys ...string) *IntCmd

func (Ring) Expire

func (c Ring) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) ExpireAt

func (c Ring) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Ring) ExpireGT

func (c Ring) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) ExpireLT

func (c Ring) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) ExpireNX

func (c Ring) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) ExpireTime

func (c Ring) ExpireTime(ctx context.Context, key string) *DurationCmd

func (Ring) ExpireXX

func (c Ring) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) FCall

func (c Ring) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Ring) FCallRO

func (c Ring) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Ring) FCallRo

func (c Ring) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (Ring) FlushAll

func (c Ring) FlushAll(ctx context.Context) *StatusCmd

func (Ring) FlushAllAsync

func (c Ring) FlushAllAsync(ctx context.Context) *StatusCmd

func (Ring) FlushDB

func (c Ring) FlushDB(ctx context.Context) *StatusCmd

func (Ring) FlushDBAsync

func (c Ring) FlushDBAsync(ctx context.Context) *StatusCmd

func (*Ring) ForEachShard

func (c *Ring) ForEachShard(
	ctx context.Context,
	fn func(ctx context.Context, client *Client) error,
) error

ForEachShard concurrently calls the fn on each live shard in the ring. It returns the first error if any.

func (Ring) FunctionDelete

func (c Ring) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (Ring) FunctionDump

func (c Ring) FunctionDump(ctx context.Context) *StringCmd

func (Ring) FunctionFlush

func (c Ring) FunctionFlush(ctx context.Context) *StringCmd

func (Ring) FunctionFlushAsync

func (c Ring) FunctionFlushAsync(ctx context.Context) *StringCmd

func (Ring) FunctionKill

func (c Ring) FunctionKill(ctx context.Context) *StringCmd

func (Ring) FunctionList

func (c Ring) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (Ring) FunctionLoad

func (c Ring) FunctionLoad(ctx context.Context, code string) *StringCmd

func (Ring) FunctionLoadReplace

func (c Ring) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (Ring) FunctionRestore

func (c Ring) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (Ring) FunctionStats

func (c Ring) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (Ring) GeoAdd

func (c Ring) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (Ring) GeoDist

func (c Ring) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (Ring) GeoHash

func (c Ring) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (Ring) GeoPos

func (c Ring) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (Ring) GeoRadius

func (c Ring) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (Ring) GeoRadiusByMember

func (c Ring) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (Ring) GeoRadiusByMemberStore

func (c Ring) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (Ring) GeoRadiusStore

func (c Ring) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (Ring) GeoSearch

func (c Ring) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (Ring) GeoSearchLocation

func (c Ring) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (Ring) GeoSearchStore

func (c Ring) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (Ring) Get

func (c Ring) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (Ring) GetBit

func (c Ring) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (Ring) GetDel

func (c Ring) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (Ring) GetEx

func (c Ring) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (Ring) GetRange

func (c Ring) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (Ring) GetSet

func (c Ring) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (Ring) HDel

func (c Ring) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (Ring) HExists

func (c Ring) HExists(ctx context.Context, key, field string) *BoolCmd

func (Ring) HGet

func (c Ring) HGet(ctx context.Context, key, field string) *StringCmd

func (Ring) HGetAll

func (c Ring) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (Ring) HIncrBy

func (c Ring) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (Ring) HIncrByFloat

func (c Ring) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (Ring) HKeys

func (c Ring) HKeys(ctx context.Context, key string) *StringSliceCmd

func (Ring) HLen

func (c Ring) HLen(ctx context.Context, key string) *IntCmd

func (Ring) HMGet

func (c Ring) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (Ring) HMSet

func (c Ring) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (Ring) HRandField

func (c Ring) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (Ring) HRandFieldWithValues

func (c Ring) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (Ring) HScan

func (c Ring) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Ring) HSet

func (c Ring) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

func (Ring) HSetNX

func (c Ring) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (Ring) HVals

func (c Ring) HVals(ctx context.Context, key string) *StringSliceCmd

func (Ring) Incr

func (c Ring) Incr(ctx context.Context, key string) *IntCmd

func (Ring) IncrBy

func (c Ring) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (Ring) IncrByFloat

func (c Ring) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (Ring) Info

func (c Ring) Info(ctx context.Context, sections ...string) *StringCmd

func (Ring) InfoMap

func (c Ring) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (Ring) JSONArrAppend

func (c Ring) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (Ring) JSONArrIndex

func (c Ring) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (Ring) JSONArrIndexWithArgs

func (c Ring) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (Ring) JSONArrInsert

func (c Ring) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (Ring) JSONArrLen

func (c Ring) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (Ring) JSONArrPop

func (c Ring) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (Ring) JSONArrTrim

func (c Ring) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Ring) JSONArrTrimWithArgs

func (c Ring) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Ring) JSONClear

func (c Ring) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (Ring) JSONDebugMemory

func (c Ring) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (Ring) JSONDel

func (c Ring) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (Ring) JSONForget

func (c Ring) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (Ring) JSONGet

func (c Ring) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (Ring) JSONGetWithArgs

func (c Ring) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (Ring) JSONMGet

func (c Ring) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (Ring) JSONMSet

func (c Ring) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (Ring) JSONMSetArgs

func (c Ring) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (Ring) JSONMerge

func (c Ring) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (Ring) JSONNumIncrBy

func (c Ring) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (Ring) JSONObjKeys

func (c Ring) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (Ring) JSONObjLen

func (c Ring) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (Ring) JSONSet

func (c Ring) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Ring) JSONSetMode

func (c Ring) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Ring) JSONStrAppend

func (c Ring) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (Ring) JSONStrLen

func (c Ring) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (Ring) JSONToggle

func (c Ring) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (Ring) JSONType

func (c Ring) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (Ring) Keys

func (c Ring) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (Ring) LCS

func (c Ring) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (Ring) LIndex

func (c Ring) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (Ring) LInsert

func (c Ring) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (Ring) LInsertAfter

func (c Ring) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Ring) LInsertBefore

func (c Ring) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Ring) LLen

func (c Ring) LLen(ctx context.Context, key string) *IntCmd

func (Ring) LMPop

func (c Ring) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (Ring) LMove

func (c Ring) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (Ring) LPop

func (c Ring) LPop(ctx context.Context, key string) *StringCmd

func (Ring) LPopCount

func (c Ring) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Ring) LPos

func (c Ring) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (Ring) LPosCount

func (c Ring) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (Ring) LPush

func (c Ring) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Ring) LPushX

func (c Ring) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Ring) LRange

func (c Ring) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Ring) LRem

func (c Ring) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (Ring) LSet

func (c Ring) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (Ring) LTrim

func (c Ring) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (Ring) LastSave

func (c Ring) LastSave(ctx context.Context) *IntCmd

func (*Ring) Len

func (c *Ring) Len() int

Len returns the current number of shards in the ring.

func (Ring) MGet

func (c Ring) MGet(ctx context.Context, keys ...string) *SliceCmd

func (Ring) MSet

func (c Ring) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (Ring) MSetNX

func (c Ring) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (Ring) MemoryUsage

func (c Ring) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (Ring) Migrate

func (c Ring) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (Ring) ModuleLoadex

func (c Ring) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (Ring) Monitor

func (c Ring) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (Ring) Move

func (c Ring) Move(ctx context.Context, key string, db int) *BoolCmd

func (Ring) ObjectEncoding

func (c Ring) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (Ring) ObjectFreq

func (c Ring) ObjectFreq(ctx context.Context, key string) *IntCmd

func (Ring) ObjectIdleTime

func (c Ring) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (Ring) ObjectRefCount

func (c Ring) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (*Ring) OnNewNode

func (c *Ring) OnNewNode(fn func(rdb *Client))

func (*Ring) Options

func (c *Ring) Options() *RingOptions

Options returns read-only Options that were used to create the client.

func (Ring) PExpire

func (c Ring) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Ring) PExpireAt

func (c Ring) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Ring) PExpireTime

func (c Ring) PExpireTime(ctx context.Context, key string) *DurationCmd

func (Ring) PFAdd

func (c Ring) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (Ring) PFCount

func (c Ring) PFCount(ctx context.Context, keys ...string) *IntCmd

func (Ring) PFMerge

func (c Ring) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (*Ring) PSubscribe

func (c *Ring) PSubscribe(ctx context.Context, channels ...string) *PubSub

PSubscribe subscribes the client to the given patterns.

func (Ring) PTTL

func (c Ring) PTTL(ctx context.Context, key string) *DurationCmd

func (Ring) Persist

func (c Ring) Persist(ctx context.Context, key string) *BoolCmd

func (Ring) Ping

func (c Ring) Ping(ctx context.Context) *StatusCmd

func (*Ring) Pipeline

func (c *Ring) Pipeline() Pipeliner

func (*Ring) Pipelined

func (c *Ring) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (*Ring) PoolStats

func (c *Ring) PoolStats() *PoolStats

PoolStats returns accumulated connection pool stats.

func (*Ring) Process

func (c *Ring) Process(ctx context.Context, cmd Cmder) error

func (Ring) PubSubChannels

func (c Ring) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Ring) PubSubNumPat

func (c Ring) PubSubNumPat(ctx context.Context) *IntCmd

func (Ring) PubSubNumSub

func (c Ring) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Ring) PubSubShardChannels

func (c Ring) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Ring) PubSubShardNumSub

func (c Ring) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Ring) Publish

func (c Ring) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (Ring) Quit

func (c Ring) Quit(_ context.Context) *StatusCmd

func (Ring) RPop

func (c Ring) RPop(ctx context.Context, key string) *StringCmd

func (Ring) RPopCount

func (c Ring) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Ring) RPopLPush

func (c Ring) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (Ring) RPush

func (c Ring) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Ring) RPushX

func (c Ring) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Ring) RandomKey

func (c Ring) RandomKey(ctx context.Context) *StringCmd

func (Ring) ReadOnly

func (c Ring) ReadOnly(ctx context.Context) *StatusCmd

func (Ring) ReadWrite

func (c Ring) ReadWrite(ctx context.Context) *StatusCmd

func (Ring) Rename

func (c Ring) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (Ring) RenameNX

func (c Ring) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (Ring) Restore

func (c Ring) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Ring) RestoreReplace

func (c Ring) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Ring) SAdd

func (c Ring) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Ring) SCard

func (c Ring) SCard(ctx context.Context, key string) *IntCmd

func (Ring) SDiff

func (c Ring) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (Ring) SDiffStore

func (c Ring) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Ring) SInter

func (c Ring) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (Ring) SInterCard

func (c Ring) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Ring) SInterStore

func (c Ring) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Ring) SIsMember

func (c Ring) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (Ring) SMIsMember

func (c Ring) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (Ring) SMembers

func (c Ring) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (Ring) SMembersMap

func (c Ring) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (Ring) SMove

func (c Ring) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (Ring) SPop

func (c Ring) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (Ring) SPopN

func (c Ring) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (Ring) SPublish

func (c Ring) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (Ring) SRandMember

func (c Ring) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (Ring) SRandMemberN

func (c Ring) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (Ring) SRem

func (c Ring) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Ring) SScan

func (c Ring) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (*Ring) SSubscribe

func (c *Ring) SSubscribe(ctx context.Context, channels ...string) *PubSub

SSubscribe Subscribes the client to the specified shard channels.

func (Ring) SUnion

func (c Ring) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (Ring) SUnionStore

func (c Ring) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Ring) Save

func (c Ring) Save(ctx context.Context) *StatusCmd

func (Ring) Scan

func (c Ring) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd

func (Ring) ScanType

func (c Ring) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd

func (Ring) ScriptExists

func (c Ring) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (Ring) ScriptFlush

func (c Ring) ScriptFlush(ctx context.Context) *StatusCmd

func (Ring) ScriptKill

func (c Ring) ScriptKill(ctx context.Context) *StatusCmd

func (Ring) ScriptLoad

func (c Ring) ScriptLoad(ctx context.Context, script string) *StringCmd

func (Ring) Set

func (c Ring) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (*Ring) SetAddrs

func (c *Ring) SetAddrs(addrs map[string]string)

func (Ring) SetArgs

func (c Ring) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (Ring) SetBit

func (c Ring) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (Ring) SetEx

func (c Ring) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

func (Ring) SetNX

func (c Ring) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Ring) SetRange

func (c Ring) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (Ring) SetXX

func (c Ring) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Ring) Shutdown

func (c Ring) Shutdown(ctx context.Context) *StatusCmd

func (Ring) ShutdownNoSave

func (c Ring) ShutdownNoSave(ctx context.Context) *StatusCmd

func (Ring) ShutdownSave

func (c Ring) ShutdownSave(ctx context.Context) *StatusCmd

func (Ring) SlaveOf

func (c Ring) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (Ring) SlowLogGet

func (c Ring) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd

func (Ring) Sort

func (c Ring) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Ring) SortInterfaces

func (c Ring) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (Ring) SortRO

func (c Ring) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Ring) SortStore

func (c Ring) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (Ring) StrLen

func (c Ring) StrLen(ctx context.Context, key string) *IntCmd

func (*Ring) Subscribe

func (c *Ring) Subscribe(ctx context.Context, channels ...string) *PubSub

Subscribe subscribes the client to the specified channels.

func (Ring) Sync

func (c Ring) Sync(_ context.Context)

func (Ring) TDigestAdd

func (c Ring) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (Ring) TDigestByRank

func (c Ring) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (Ring) TDigestByRevRank

func (c Ring) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (Ring) TDigestCDF

func (c Ring) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (Ring) TDigestCreate

func (c Ring) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Ring) TDigestCreateWithCompression

func (c Ring) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Ring) TDigestInfo

func (c Ring) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (Ring) TDigestMax

func (c Ring) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (Ring) TDigestMerge

func (c Ring) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (Ring) TDigestMin

func (c Ring) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (Ring) TDigestQuantile

func (c Ring) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (Ring) TDigestRank

func (c Ring) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (Ring) TDigestReset

func (c Ring) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (Ring) TDigestRevRank

func (c Ring) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (Ring) TDigestTrimmedMean

func (c Ring) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (Ring) TFCall

func (c Ring) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (Ring) TFCallASYNC

func (c Ring) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (Ring) TFCallASYNCArgs

func (c Ring) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Ring) TFCallArgs

func (c Ring) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Ring) TFunctionDelete

func (c Ring) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (Ring) TFunctionList

func (c Ring) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (Ring) TFunctionListArgs

func (c Ring) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (Ring) TFunctionLoad

func (c Ring) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (Ring) TFunctionLoadArgs

func (c Ring) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (Ring) TSAdd

func (c Ring) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (Ring) TSAddWithArgs

func (c Ring) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (Ring) TSAlter

func (c Ring) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (Ring) TSCreate

func (c Ring) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (Ring) TSCreateRule

func (c Ring) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (Ring) TSCreateRuleWithArgs

func (c Ring) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (Ring) TSCreateWithArgs

func (c Ring) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (Ring) TSDecrBy

func (c Ring) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (Ring) TSDecrByWithArgs

func (c Ring) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (Ring) TSDel

func (c Ring) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (Ring) TSDeleteRule

func (c Ring) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (Ring) TSGet

func (c Ring) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (Ring) TSGetWithArgs

func (c Ring) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (Ring) TSIncrBy

func (c Ring) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (Ring) TSIncrByWithArgs

func (c Ring) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (Ring) TSInfo

func (c Ring) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (Ring) TSInfoWithArgs

func (c Ring) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (Ring) TSMAdd

func (c Ring) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (Ring) TSMGet

func (c Ring) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (Ring) TSMGetWithArgs

func (c Ring) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (Ring) TSMRange

func (c Ring) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (Ring) TSMRangeWithArgs

func (c Ring) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (Ring) TSMRevRange

func (c Ring) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (Ring) TSMRevRangeWithArgs

func (c Ring) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (Ring) TSQueryIndex

func (c Ring) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (Ring) TSRange

func (c Ring) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (Ring) TSRangeWithArgs

func (c Ring) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (Ring) TSRevRange

func (c Ring) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (Ring) TSRevRangeWithArgs

func (c Ring) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (Ring) TTL

func (c Ring) TTL(ctx context.Context, key string) *DurationCmd

func (Ring) Time

func (c Ring) Time(ctx context.Context) *TimeCmd

func (Ring) TopKAdd

func (c Ring) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (Ring) TopKCount

func (c Ring) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (Ring) TopKIncrBy

func (c Ring) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (Ring) TopKInfo

func (c Ring) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (Ring) TopKList

func (c Ring) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (Ring) TopKListWithCount

func (c Ring) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (Ring) TopKQuery

func (c Ring) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (Ring) TopKReserve

func (c Ring) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (Ring) TopKReserveWithOptions

func (c Ring) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (Ring) Touch

func (c Ring) Touch(ctx context.Context, keys ...string) *IntCmd

func (*Ring) TxPipeline

func (c *Ring) TxPipeline() Pipeliner

func (*Ring) TxPipelined

func (c *Ring) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

func (Ring) Type

func (c Ring) Type(ctx context.Context, key string) *StatusCmd
func (c Ring) Unlink(ctx context.Context, keys ...string) *IntCmd

func (Ring) Wait

func (c Ring) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (Ring) WaitAOF

func (c Ring) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (*Ring) Watch

func (c *Ring) Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error

func (Ring) XAck

func (c Ring) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (Ring) XAdd

func (c Ring) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (Ring) XAutoClaim

func (c Ring) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (Ring) XAutoClaimJustID

func (c Ring) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (Ring) XClaim

func (c Ring) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (Ring) XClaimJustID

func (c Ring) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (Ring) XDel

func (c Ring) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (Ring) XGroupCreate

func (c Ring) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (Ring) XGroupCreateConsumer

func (c Ring) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Ring) XGroupCreateMkStream

func (c Ring) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (Ring) XGroupDelConsumer

func (c Ring) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Ring) XGroupDestroy

func (c Ring) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (Ring) XGroupSetID

func (c Ring) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (Ring) XInfoConsumers

func (c Ring) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (Ring) XInfoGroups

func (c Ring) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (Ring) XInfoStream

func (c Ring) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (Ring) XInfoStreamFull

func (c Ring) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (Ring) XLen

func (c Ring) XLen(ctx context.Context, stream string) *IntCmd

func (Ring) XPending

func (c Ring) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (Ring) XPendingExt

func (c Ring) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (Ring) XRange

func (c Ring) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Ring) XRangeN

func (c Ring) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Ring) XRead

func (c Ring) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (Ring) XReadGroup

func (c Ring) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (Ring) XReadStreams

func (c Ring) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (Ring) XRevRange

func (c Ring) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Ring) XRevRangeN

func (c Ring) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Ring) XTrimMaxLen

func (c Ring) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (Ring) XTrimMaxLenApprox

func (c Ring) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (Ring) XTrimMinID

func (c Ring) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (Ring) XTrimMinIDApprox

func (c Ring) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (Ring) ZAdd

func (c Ring) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (Ring) ZAddArgs

func (c Ring) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (Ring) ZAddArgsIncr

func (c Ring) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (Ring) ZAddGT

func (c Ring) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (Ring) ZAddLT

func (c Ring) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (Ring) ZAddNX

func (c Ring) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (Ring) ZAddXX

func (c Ring) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (Ring) ZCard

func (c Ring) ZCard(ctx context.Context, key string) *IntCmd

func (Ring) ZCount

func (c Ring) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (Ring) ZDiff

func (c Ring) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (Ring) ZDiffStore

func (c Ring) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (Ring) ZDiffWithScores

func (c Ring) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (Ring) ZIncrBy

func (c Ring) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (Ring) ZInter

func (c Ring) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (Ring) ZInterCard

func (c Ring) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Ring) ZInterStore

func (c Ring) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (Ring) ZInterWithScores

func (c Ring) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (Ring) ZLexCount

func (c Ring) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (Ring) ZMPop

func (c Ring) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (Ring) ZMScore

func (c Ring) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (Ring) ZPopMax

func (c Ring) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Ring) ZPopMin

func (c Ring) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Ring) ZRandMember

func (c Ring) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (Ring) ZRandMemberWithScores

func (c Ring) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (Ring) ZRange

func (c Ring) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Ring) ZRangeArgs

func (c Ring) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (Ring) ZRangeArgsWithScores

func (c Ring) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (Ring) ZRangeByLex

func (c Ring) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Ring) ZRangeByScore

func (c Ring) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Ring) ZRangeByScoreWithScores

func (c Ring) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Ring) ZRangeStore

func (c Ring) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (Ring) ZRangeWithScores

func (c Ring) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (Ring) ZRank

func (c Ring) ZRank(ctx context.Context, key, member string) *IntCmd

func (Ring) ZRankWithScore

func (c Ring) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Ring) ZRem

func (c Ring) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Ring) ZRemRangeByLex

func (c Ring) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (Ring) ZRemRangeByRank

func (c Ring) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (Ring) ZRemRangeByScore

func (c Ring) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (Ring) ZRevRange

func (c Ring) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Ring) ZRevRangeByLex

func (c Ring) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Ring) ZRevRangeByScore

func (c Ring) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Ring) ZRevRangeByScoreWithScores

func (c Ring) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Ring) ZRevRangeWithScores

func (c Ring) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Ring) ZRevRank

func (c Ring) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (Ring) ZRevRankWithScore

func (c Ring) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (Ring) ZScan

func (c Ring) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Ring) ZScore

func (c Ring) ZScore(ctx context.Context, key, member string) *FloatCmd

func (Ring) ZUnion

func (c Ring) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (Ring) ZUnionStore

func (c Ring) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (Ring) ZUnionWithScores

func (c Ring) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type RingOptions

type RingOptions struct {
	// Map of name => host:port addresses of ring shards.
	Addrs map[string]string

	// NewClient creates a shard client with provided options.
	NewClient func(opt *Options) *Client

	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
	ClientName string

	// Frequency of PING commands sent to check shards availability.
	// Shard is considered down after 3 subsequent failed checks.
	HeartbeatFrequency time.Duration

	// NewConsistentHash returns a consistent hash that is used
	// to distribute keys across the shards.
	//
	// See https://medium.com/@dgryski/consistent-hashing-algorithmic-tradeoffs-ef6b8e2fcae8
	// for consistent hashing algorithmic tradeoffs.
	NewConsistentHash func(shards []string) ConsistentHash

	Dialer    func(ctx context.Context, network, addr string) (net.Conn, error)
	OnConnect func(ctx context.Context, cn *Conn) error

	Protocol int
	Username string
	Password string
	DB       int

	MaxRetries      int
	MinRetryBackoff time.Duration
	MaxRetryBackoff time.Duration

	DialTimeout           time.Duration
	ReadTimeout           time.Duration
	WriteTimeout          time.Duration
	ContextTimeoutEnabled bool

	// PoolFIFO uses FIFO mode for each node connection pool GET/PUT (default LIFO).
	PoolFIFO bool

	PoolSize        int
	PoolTimeout     time.Duration
	MinIdleConns    int
	MaxIdleConns    int
	MaxActiveConns  int
	ConnMaxIdleTime time.Duration
	ConnMaxLifetime time.Duration

	TLSConfig *tls.Config
	Limiter   Limiter

	DisableIndentity bool
	IdentitySuffix   string
}

RingOptions are used to configure a ring client and should be passed to NewRing.

type RunningScript

type RunningScript struct {
	Name     string
	Command  []string
	Duration time.Duration
}

type ScanCmd

type ScanCmd struct {
	// contains filtered or unexported fields
}

func NewScanCmd

func NewScanCmd(ctx context.Context, process cmdable, args ...interface{}) *ScanCmd

func NewScanCmdResult

func NewScanCmdResult(keys []string, cursor uint64, err error) *ScanCmd

NewScanCmdResult returns a ScanCmd initialised with val and err for testing.

func (*ScanCmd) Args

func (cmd *ScanCmd) Args() []interface{}

func (*ScanCmd) Err

func (cmd *ScanCmd) Err() error

func (*ScanCmd) FullName

func (cmd *ScanCmd) FullName() string

func (*ScanCmd) Iterator

func (cmd *ScanCmd) Iterator() *ScanIterator

Iterator creates a new ScanIterator.

Example
iter := rdb.Scan(ctx, 0, "", 0).Iterator()
for iter.Next(ctx) {
	fmt.Println(iter.Val())
}
if err := iter.Err(); err != nil {
	panic(err)
}
Output:

func (*ScanCmd) Name

func (cmd *ScanCmd) Name() string

func (*ScanCmd) Result

func (cmd *ScanCmd) Result() (keys []string, cursor uint64, err error)

func (*ScanCmd) SetErr

func (cmd *ScanCmd) SetErr(e error)

func (*ScanCmd) SetFirstKeyPos

func (cmd *ScanCmd) SetFirstKeyPos(keyPos int8)

func (*ScanCmd) SetVal

func (cmd *ScanCmd) SetVal(page []string, cursor uint64)

func (*ScanCmd) String

func (cmd *ScanCmd) String() string

func (*ScanCmd) Val

func (cmd *ScanCmd) Val() (keys []string, cursor uint64)

type ScanDump

type ScanDump struct {
	Iter int64
	Data string
}

type ScanDumpCmd

type ScanDumpCmd struct {
	// contains filtered or unexported fields
}

func (*ScanDumpCmd) Args

func (cmd *ScanDumpCmd) Args() []interface{}

func (*ScanDumpCmd) Err

func (cmd *ScanDumpCmd) Err() error

func (*ScanDumpCmd) FullName

func (cmd *ScanDumpCmd) FullName() string

func (*ScanDumpCmd) Name

func (cmd *ScanDumpCmd) Name() string

func (*ScanDumpCmd) Result

func (cmd *ScanDumpCmd) Result() (ScanDump, error)

func (*ScanDumpCmd) SetErr

func (cmd *ScanDumpCmd) SetErr(e error)

func (*ScanDumpCmd) SetFirstKeyPos

func (cmd *ScanDumpCmd) SetFirstKeyPos(keyPos int8)

func (*ScanDumpCmd) SetVal

func (cmd *ScanDumpCmd) SetVal(val ScanDump)

func (*ScanDumpCmd) String

func (cmd *ScanDumpCmd) String() string

func (*ScanDumpCmd) Val

func (cmd *ScanDumpCmd) Val() ScanDump

type ScanIterator

type ScanIterator struct {
	// contains filtered or unexported fields
}

ScanIterator is used to incrementally iterate over a collection of elements.

Example
iter := rdb.Scan(ctx, 0, "", 0).Iterator()
for iter.Next(ctx) {
	fmt.Println(iter.Val())
}
if err := iter.Err(); err != nil {
	panic(err)
}
Output:

func (*ScanIterator) Err

func (it *ScanIterator) Err() error

Err returns the last iterator error, if any.

func (*ScanIterator) Next

func (it *ScanIterator) Next(ctx context.Context) bool

Next advances the cursor and returns true if more values can be read.

func (*ScanIterator) Val

func (it *ScanIterator) Val() string

Val returns the key/field at the current cursor position.

type Scanner

type Scanner = hscan.Scanner

Scanner internal/hscan.Scanner exposed interface.

type Script

type Script struct {
	// contains filtered or unexported fields
}
Example
IncrByXX := redis.NewScript(`
		if redis.call("GET", KEYS[1]) ~= false then
			return redis.call("INCRBY", KEYS[1], ARGV[1])
		end
		return false
	`)

n, err := IncrByXX.Run(ctx, rdb, []string{"xx_counter"}, 2).Result()
fmt.Println(n, err)

err = rdb.Set(ctx, "xx_counter", "40", 0).Err()
if err != nil {
	panic(err)
}

n, err = IncrByXX.Run(ctx, rdb, []string{"xx_counter"}, 2).Result()
fmt.Println(n, err)
Output:

<nil> redis: nil
42 <nil>

func NewScript

func NewScript(src string) *Script

func (*Script) Eval

func (s *Script) Eval(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

func (*Script) EvalRO

func (s *Script) EvalRO(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

func (*Script) EvalSha

func (s *Script) EvalSha(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

func (*Script) EvalShaRO

func (s *Script) EvalShaRO(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

func (*Script) Exists

func (s *Script) Exists(ctx context.Context, c Scripter) *BoolSliceCmd

func (*Script) Hash

func (s *Script) Hash() string

func (*Script) Load

func (s *Script) Load(ctx context.Context, c Scripter) *StringCmd

func (*Script) Run

func (s *Script) Run(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

Run optimistically uses EVALSHA to run the script. If script does not exist it is retried using EVAL.

func (*Script) RunRO

func (s *Script) RunRO(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd

RunRO optimistically uses EVALSHA_RO to run the script. If script does not exist it is retried using EVAL_RO.

type Scripter

type Scripter interface {
	Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
	EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
	EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
	EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
	ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
	ScriptLoad(ctx context.Context, script string) *StringCmd
}

type ScriptingFunctionsCmdable

type ScriptingFunctionsCmdable interface {
	Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
	EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
	EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
	EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
	ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
	ScriptFlush(ctx context.Context) *StatusCmd
	ScriptKill(ctx context.Context) *StatusCmd
	ScriptLoad(ctx context.Context, script string) *StringCmd

	FunctionLoad(ctx context.Context, code string) *StringCmd
	FunctionLoadReplace(ctx context.Context, code string) *StringCmd
	FunctionDelete(ctx context.Context, libName string) *StringCmd
	FunctionFlush(ctx context.Context) *StringCmd
	FunctionKill(ctx context.Context) *StringCmd
	FunctionFlushAsync(ctx context.Context) *StringCmd
	FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
	FunctionDump(ctx context.Context) *StringCmd
	FunctionRestore(ctx context.Context, libDump string) *StringCmd
	FunctionStats(ctx context.Context) *FunctionStatsCmd
	FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
	FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
	FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
}

type SentinelClient

type SentinelClient struct {
	// contains filtered or unexported fields
}

SentinelClient is a client for a Redis Sentinel.

func NewSentinelClient

func NewSentinelClient(opt *Options) *SentinelClient

func (*SentinelClient) AddHook

func (hs *SentinelClient) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (*SentinelClient) CkQuorum

func (c *SentinelClient) CkQuorum(ctx context.Context, name string) *StringCmd

CkQuorum checks if the current Sentinel configuration is able to reach the quorum needed to failover a master, and the majority needed to authorize the failover. This command should be used in monitoring systems to check if a Sentinel deployment is ok.

func (SentinelClient) Close

func (c SentinelClient) 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 (*SentinelClient) Failover

func (c *SentinelClient) Failover(ctx context.Context, name string) *StatusCmd

Failover forces a failover as if the master was not reachable, and without asking for agreement to other Sentinels.

func (*SentinelClient) FlushConfig

func (c *SentinelClient) FlushConfig(ctx context.Context) *StatusCmd

FlushConfig forces Sentinel to rewrite its configuration on disk, including the current Sentinel state.

func (*SentinelClient) GetMasterAddrByName

func (c *SentinelClient) GetMasterAddrByName(ctx context.Context, name string) *StringSliceCmd

func (*SentinelClient) Master

func (c *SentinelClient) Master(ctx context.Context, name string) *MapStringStringCmd

Master shows the state and info of the specified master.

func (*SentinelClient) Masters

func (c *SentinelClient) Masters(ctx context.Context) *SliceCmd

Masters shows a list of monitored masters and their state.

func (*SentinelClient) Monitor

func (c *SentinelClient) Monitor(ctx context.Context, name, ip, port, quorum string) *StringCmd

Monitor tells the Sentinel to start monitoring a new master with the specified name, ip, port, and quorum.

func (*SentinelClient) PSubscribe

func (c *SentinelClient) PSubscribe(ctx context.Context, channels ...string) *PubSub

PSubscribe subscribes the client to the given patterns. Patterns can be omitted to create empty subscription.

func (*SentinelClient) Ping

func (c *SentinelClient) Ping(ctx context.Context) *StringCmd

Ping is used to test if a connection is still alive, or to measure latency.

func (*SentinelClient) Process

func (c *SentinelClient) Process(ctx context.Context, cmd Cmder) error

func (*SentinelClient) Remove

func (c *SentinelClient) Remove(ctx context.Context, name string) *StringCmd

Remove is used in order to remove the specified master: the master will no longer be monitored, and will totally be removed from the internal state of the Sentinel.

func (*SentinelClient) Replicas

Replicas shows a list of replicas for the specified master and their state.

func (*SentinelClient) Reset

func (c *SentinelClient) Reset(ctx context.Context, pattern string) *IntCmd

Reset resets all the masters with matching name. The pattern argument is a glob-style pattern. The reset process clears any previous state in a master (including a failover in progress), and removes every replica and sentinel already discovered and associated with the master.

func (*SentinelClient) Sentinels

func (c *SentinelClient) Sentinels(ctx context.Context, name string) *MapStringStringSliceCmd

func (*SentinelClient) Set

func (c *SentinelClient) Set(ctx context.Context, name, option, value string) *StringCmd

Set is used in order to change configuration parameters of a specific master.

func (SentinelClient) String

func (c SentinelClient) String() string

func (*SentinelClient) Subscribe

func (c *SentinelClient) Subscribe(ctx context.Context, channels ...string) *PubSub

Subscribe subscribes the client to the specified channels. Channels can be omitted to create empty subscription.

type SetArgs

type SetArgs struct {
	// Mode can be `NX` or `XX` or empty.
	Mode string

	// Zero `TTL` or `Expiration` means that the key has no expiration time.
	TTL      time.Duration
	ExpireAt time.Time

	// When Get is true, the command returns the old value stored at key, or nil when key did not exist.
	Get bool

	// KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0,
	// otherwise you will receive an error: (error) ERR syntax error.
	KeepTTL bool
}

SetArgs provides arguments for the SetArgs function.

type SetCmdable

type SetCmdable interface {
	SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
	SCard(ctx context.Context, key string) *IntCmd
	SDiff(ctx context.Context, keys ...string) *StringSliceCmd
	SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
	SInter(ctx context.Context, keys ...string) *StringSliceCmd
	SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
	SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
	SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
	SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
	SMembers(ctx context.Context, key string) *StringSliceCmd
	SMembersMap(ctx context.Context, key string) *StringStructMapCmd
	SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
	SPop(ctx context.Context, key string) *StringCmd
	SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
	SRandMember(ctx context.Context, key string) *StringCmd
	SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
	SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
	SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
	SUnion(ctx context.Context, keys ...string) *StringSliceCmd
	SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
}

type SliceCmd

type SliceCmd struct {
	// contains filtered or unexported fields
}

func NewSliceCmd

func NewSliceCmd(ctx context.Context, args ...interface{}) *SliceCmd

func NewSliceResult

func NewSliceResult(val []interface{}, err error) *SliceCmd

NewSliceResult returns a SliceCmd initialised with val and err for testing.

func (*SliceCmd) Args

func (cmd *SliceCmd) Args() []interface{}

func (*SliceCmd) Err

func (cmd *SliceCmd) Err() error

func (*SliceCmd) FullName

func (cmd *SliceCmd) FullName() string

func (*SliceCmd) Name

func (cmd *SliceCmd) Name() string

func (*SliceCmd) Result

func (cmd *SliceCmd) Result() ([]interface{}, error)

func (*SliceCmd) Scan

func (cmd *SliceCmd) Scan(dst interface{}) error

Scan scans the results from the map into a destination struct. The map keys are matched in the Redis struct fields by the `redis:"field"` tag.

Example

ExampleSliceCmd_Scan shows how to scan the results of a multi key fetch into a struct.

rdb.FlushDB(ctx)
err := rdb.MSet(ctx,
	"name", "hello",
	"count", 123,
	"correct", true).Err()
if err != nil {
	panic(err)
}

res := rdb.MGet(ctx, "name", "count", "empty", "correct")
if res.Err() != nil {
	panic(err)
}

type data struct {
	Name    string `redis:"name"`
	Count   int    `redis:"count"`
	Correct bool   `redis:"correct"`
}

// Scan the results into the struct.
var d data
if err := res.Scan(&d); err != nil {
	panic(err)
}

fmt.Println(d)
Output:

{hello 123 true}

func (*SliceCmd) SetErr

func (cmd *SliceCmd) SetErr(e error)

func (*SliceCmd) SetFirstKeyPos

func (cmd *SliceCmd) SetFirstKeyPos(keyPos int8)

func (*SliceCmd) SetVal

func (cmd *SliceCmd) SetVal(val []interface{})

func (*SliceCmd) String

func (cmd *SliceCmd) String() string

func (*SliceCmd) Val

func (cmd *SliceCmd) Val() []interface{}

type SlotRange

type SlotRange struct {
	Start int64
	End   int64
}

type SlowLog

type SlowLog struct {
	ID       int64
	Time     time.Time
	Duration time.Duration
	Args     []string
	// These are also optional fields emitted only by Redis 4.0 or greater:
	// https://redis.io/commands/slowlog#output-format
	ClientAddr string
	ClientName string
}

type SlowLogCmd

type SlowLogCmd struct {
	// contains filtered or unexported fields
}

func NewSlowLogCmd

func NewSlowLogCmd(ctx context.Context, args ...interface{}) *SlowLogCmd

func (*SlowLogCmd) Args

func (cmd *SlowLogCmd) Args() []interface{}

func (*SlowLogCmd) Err

func (cmd *SlowLogCmd) Err() error

func (*SlowLogCmd) FullName

func (cmd *SlowLogCmd) FullName() string

func (*SlowLogCmd) Name

func (cmd *SlowLogCmd) Name() string

func (*SlowLogCmd) Result

func (cmd *SlowLogCmd) Result() ([]SlowLog, error)

func (*SlowLogCmd) SetErr

func (cmd *SlowLogCmd) SetErr(e error)

func (*SlowLogCmd) SetFirstKeyPos

func (cmd *SlowLogCmd) SetFirstKeyPos(keyPos int8)

func (*SlowLogCmd) SetVal

func (cmd *SlowLogCmd) SetVal(val []SlowLog)

func (*SlowLogCmd) String

func (cmd *SlowLogCmd) String() string

func (*SlowLogCmd) Val

func (cmd *SlowLogCmd) Val() []SlowLog

type Sort

type Sort struct {
	By            string
	Offset, Count int64
	Get           []string
	Order         string
	Alpha         bool
}

type SortedSetCmdable

type SortedSetCmdable interface {
	BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
	BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
	BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd
	ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
	ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
	ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
	ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
	ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
	ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
	ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
	ZCard(ctx context.Context, key string) *IntCmd
	ZCount(ctx context.Context, key, min, max string) *IntCmd
	ZLexCount(ctx context.Context, key, min, max string) *IntCmd
	ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
	ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
	ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
	ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
	ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
	ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd
	ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
	ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
	ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
	ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
	ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
	ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
	ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
	ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
	ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
	ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
	ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
	ZRank(ctx context.Context, key, member string) *IntCmd
	ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
	ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
	ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
	ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
	ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
	ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
	ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
	ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
	ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
	ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
	ZRevRank(ctx context.Context, key, member string) *IntCmd
	ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
	ZScore(ctx context.Context, key, member string) *FloatCmd
	ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
	ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
	ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
	ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
	ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
	ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
	ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
	ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
	ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
}

type StatefulCmdable

type StatefulCmdable interface {
	Cmdable
	Auth(ctx context.Context, password string) *StatusCmd
	AuthACL(ctx context.Context, username, password string) *StatusCmd
	Select(ctx context.Context, index int) *StatusCmd
	SwapDB(ctx context.Context, index1, index2 int) *StatusCmd
	ClientSetName(ctx context.Context, name string) *BoolCmd
	ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd
	Hello(ctx context.Context, ver int, username, password, clientName string) *MapStringInterfaceCmd
}

type StatusCmd

type StatusCmd struct {
	// contains filtered or unexported fields
}

func NewStatusCmd

func NewStatusCmd(ctx context.Context, args ...interface{}) *StatusCmd

func NewStatusResult

func NewStatusResult(val string, err error) *StatusCmd

NewStatusResult returns a StatusCmd initialised with val and err for testing.

func (*StatusCmd) Args

func (cmd *StatusCmd) Args() []interface{}

func (*StatusCmd) Err

func (cmd *StatusCmd) Err() error

func (*StatusCmd) FullName

func (cmd *StatusCmd) FullName() string

func (*StatusCmd) Name

func (cmd *StatusCmd) Name() string

func (*StatusCmd) Result

func (cmd *StatusCmd) Result() (string, error)

func (*StatusCmd) SetErr

func (cmd *StatusCmd) SetErr(e error)

func (*StatusCmd) SetFirstKeyPos

func (cmd *StatusCmd) SetFirstKeyPos(keyPos int8)

func (*StatusCmd) SetVal

func (cmd *StatusCmd) SetVal(val string)

func (*StatusCmd) String

func (cmd *StatusCmd) String() string

func (*StatusCmd) Val

func (cmd *StatusCmd) Val() string

type StreamCmdable

type StreamCmdable interface {
	XAdd(ctx context.Context, a *XAddArgs) *StringCmd
	XDel(ctx context.Context, stream string, ids ...string) *IntCmd
	XLen(ctx context.Context, stream string) *IntCmd
	XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
	XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
	XRevRange(ctx context.Context, stream string, start, stop string) *XMessageSliceCmd
	XRevRangeN(ctx context.Context, stream string, start, stop string, count int64) *XMessageSliceCmd
	XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
	XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
	XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
	XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
	XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
	XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
	XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
	XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
	XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
	XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
	XPending(ctx context.Context, stream, group string) *XPendingCmd
	XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
	XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
	XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
	XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
	XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
	XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd
	XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
	XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
	XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
	XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
	XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
	XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
	XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
}

type StringCmd

type StringCmd struct {
	// contains filtered or unexported fields
}

func NewStringCmd

func NewStringCmd(ctx context.Context, args ...interface{}) *StringCmd

func NewStringResult

func NewStringResult(val string, err error) *StringCmd

NewStringResult returns a StringCmd initialised with val and err for testing.

func (*StringCmd) Args

func (cmd *StringCmd) Args() []interface{}

func (*StringCmd) Bool

func (cmd *StringCmd) Bool() (bool, error)

func (*StringCmd) Bytes

func (cmd *StringCmd) Bytes() ([]byte, error)

func (*StringCmd) Err

func (cmd *StringCmd) Err() error

func (*StringCmd) Float32

func (cmd *StringCmd) Float32() (float32, error)

func (*StringCmd) Float64

func (cmd *StringCmd) Float64() (float64, error)

func (*StringCmd) FullName

func (cmd *StringCmd) FullName() string

func (*StringCmd) Int

func (cmd *StringCmd) Int() (int, error)

func (*StringCmd) Int64

func (cmd *StringCmd) Int64() (int64, error)

func (*StringCmd) Name

func (cmd *StringCmd) Name() string

func (*StringCmd) Result

func (cmd *StringCmd) Result() (string, error)

func (*StringCmd) Scan

func (cmd *StringCmd) Scan(val interface{}) error

func (*StringCmd) SetErr

func (cmd *StringCmd) SetErr(e error)

func (*StringCmd) SetFirstKeyPos

func (cmd *StringCmd) SetFirstKeyPos(keyPos int8)

func (*StringCmd) SetVal

func (cmd *StringCmd) SetVal(val string)

func (*StringCmd) String

func (cmd *StringCmd) String() string

func (*StringCmd) Time

func (cmd *StringCmd) Time() (time.Time, error)

func (*StringCmd) Uint64

func (cmd *StringCmd) Uint64() (uint64, error)

func (*StringCmd) Val

func (cmd *StringCmd) Val() string

type StringCmdable

type StringCmdable interface {
	Append(ctx context.Context, key, value string) *IntCmd
	Decr(ctx context.Context, key string) *IntCmd
	DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
	Get(ctx context.Context, key string) *StringCmd
	GetRange(ctx context.Context, key string, start, end int64) *StringCmd
	GetSet(ctx context.Context, key string, value interface{}) *StringCmd
	GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd
	GetDel(ctx context.Context, key string) *StringCmd
	Incr(ctx context.Context, key string) *IntCmd
	IncrBy(ctx context.Context, key string, value int64) *IntCmd
	IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
	LCS(ctx context.Context, q *LCSQuery) *LCSCmd
	MGet(ctx context.Context, keys ...string) *SliceCmd
	MSet(ctx context.Context, values ...interface{}) *StatusCmd
	MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
	Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
	SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd
	SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
	SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd
	SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd
	SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
	StrLen(ctx context.Context, key string) *IntCmd
}

type StringSliceCmd

type StringSliceCmd struct {
	// contains filtered or unexported fields
}

func NewStringSliceCmd

func NewStringSliceCmd(ctx context.Context, args ...interface{}) *StringSliceCmd

func NewStringSliceResult

func NewStringSliceResult(val []string, err error) *StringSliceCmd

NewStringSliceResult returns a StringSliceCmd initialised with val and err for testing.

func (*StringSliceCmd) Args

func (cmd *StringSliceCmd) Args() []interface{}

func (*StringSliceCmd) Err

func (cmd *StringSliceCmd) Err() error

func (*StringSliceCmd) FullName

func (cmd *StringSliceCmd) FullName() string

func (*StringSliceCmd) Name

func (cmd *StringSliceCmd) Name() string

func (*StringSliceCmd) Result

func (cmd *StringSliceCmd) Result() ([]string, error)

func (*StringSliceCmd) ScanSlice

func (cmd *StringSliceCmd) ScanSlice(container interface{}) error

func (*StringSliceCmd) SetErr

func (cmd *StringSliceCmd) SetErr(e error)

func (*StringSliceCmd) SetFirstKeyPos

func (cmd *StringSliceCmd) SetFirstKeyPos(keyPos int8)

func (*StringSliceCmd) SetVal

func (cmd *StringSliceCmd) SetVal(val []string)

func (*StringSliceCmd) String

func (cmd *StringSliceCmd) String() string

func (*StringSliceCmd) Val

func (cmd *StringSliceCmd) Val() []string

type StringStructMapCmd

type StringStructMapCmd struct {
	// contains filtered or unexported fields
}

func NewStringStructMapCmd

func NewStringStructMapCmd(ctx context.Context, args ...interface{}) *StringStructMapCmd

func (*StringStructMapCmd) Args

func (cmd *StringStructMapCmd) Args() []interface{}

func (*StringStructMapCmd) Err

func (cmd *StringStructMapCmd) Err() error

func (*StringStructMapCmd) FullName

func (cmd *StringStructMapCmd) FullName() string

func (*StringStructMapCmd) Name

func (cmd *StringStructMapCmd) Name() string

func (*StringStructMapCmd) Result

func (cmd *StringStructMapCmd) Result() (map[string]struct{}, error)

func (*StringStructMapCmd) SetErr

func (cmd *StringStructMapCmd) SetErr(e error)

func (*StringStructMapCmd) SetFirstKeyPos

func (cmd *StringStructMapCmd) SetFirstKeyPos(keyPos int8)

func (*StringStructMapCmd) SetVal

func (cmd *StringStructMapCmd) SetVal(val map[string]struct{})

func (*StringStructMapCmd) String

func (cmd *StringStructMapCmd) String() string

func (*StringStructMapCmd) Val

func (cmd *StringStructMapCmd) Val() map[string]struct{}

type Subscription

type Subscription struct {
	// Can be "subscribe", "unsubscribe", "psubscribe" or "punsubscribe".
	Kind string
	// Channel name we have subscribed to.
	Channel string
	// Number of channels we are currently subscribed to.
	Count int
}

Subscription received after a successful subscription to channel.

func (*Subscription) String

func (m *Subscription) String() string

type TDigestInfo

type TDigestInfo struct {
	Compression       int64
	Capacity          int64
	MergedNodes       int64
	UnmergedNodes     int64
	MergedWeight      int64
	UnmergedWeight    int64
	Observations      int64
	TotalCompressions int64
	MemoryUsage       int64
}

type TDigestInfoCmd

type TDigestInfoCmd struct {
	// contains filtered or unexported fields
}

func NewTDigestInfoCmd

func NewTDigestInfoCmd(ctx context.Context, args ...interface{}) *TDigestInfoCmd

func (*TDigestInfoCmd) Args

func (cmd *TDigestInfoCmd) Args() []interface{}

func (*TDigestInfoCmd) Err

func (cmd *TDigestInfoCmd) Err() error

func (*TDigestInfoCmd) FullName

func (cmd *TDigestInfoCmd) FullName() string

func (*TDigestInfoCmd) Name

func (cmd *TDigestInfoCmd) Name() string

func (*TDigestInfoCmd) Result

func (cmd *TDigestInfoCmd) Result() (TDigestInfo, error)

func (*TDigestInfoCmd) SetErr

func (cmd *TDigestInfoCmd) SetErr(e error)

func (*TDigestInfoCmd) SetFirstKeyPos

func (cmd *TDigestInfoCmd) SetFirstKeyPos(keyPos int8)

func (*TDigestInfoCmd) SetVal

func (cmd *TDigestInfoCmd) SetVal(val TDigestInfo)

func (*TDigestInfoCmd) String

func (cmd *TDigestInfoCmd) String() string

func (*TDigestInfoCmd) Val

func (cmd *TDigestInfoCmd) Val() TDigestInfo

type TDigestMergeOptions

type TDigestMergeOptions struct {
	Compression int64
	Override    bool
}

type TFCallOptions

type TFCallOptions struct {
	Keys      []string
	Arguments []string
}

type TFunctionListOptions

type TFunctionListOptions struct {
	Withcode bool
	Verbose  int
	Library  string
}

type TFunctionLoadOptions

type TFunctionLoadOptions struct {
	Replace bool
	Config  string
}

type TSAlterOptions

type TSAlterOptions struct {
	Retention       int
	ChunkSize       int
	DuplicatePolicy string
	Labels          map[string]string
}

type TSCreateRuleOptions

type TSCreateRuleOptions struct {
	// contains filtered or unexported fields
}

type TSGetOptions

type TSGetOptions struct {
	Latest bool
}

type TSIncrDecrOptions

type TSIncrDecrOptions struct {
	Timestamp    int64
	Retention    int
	ChunkSize    int
	Uncompressed bool
	Labels       map[string]string
}

type TSInfoOptions

type TSInfoOptions struct {
	Debug bool
}

type TSMGetOptions

type TSMGetOptions struct {
	Latest         bool
	WithLabels     bool
	SelectedLabels []interface{}
}

type TSMRangeOptions

type TSMRangeOptions struct {
	Latest          bool
	FilterByTS      []int
	FilterByValue   []int
	WithLabels      bool
	SelectedLabels  []interface{}
	Count           int
	Align           interface{}
	Aggregator      Aggregator
	BucketDuration  int
	BucketTimestamp interface{}
	Empty           bool
	GroupByLabel    interface{}
	Reducer         interface{}
}

type TSMRevRangeOptions

type TSMRevRangeOptions struct {
	Latest          bool
	FilterByTS      []int
	FilterByValue   []int
	WithLabels      bool
	SelectedLabels  []interface{}
	Count           int
	Align           interface{}
	Aggregator      Aggregator
	BucketDuration  int
	BucketTimestamp interface{}
	Empty           bool
	GroupByLabel    interface{}
	Reducer         interface{}
}

type TSOptions

type TSOptions struct {
	Retention       int
	ChunkSize       int
	Encoding        string
	DuplicatePolicy string
	Labels          map[string]string
}

type TSRangeOptions

type TSRangeOptions struct {
	Latest          bool
	FilterByTS      []int
	FilterByValue   []int
	Count           int
	Align           interface{}
	Aggregator      Aggregator
	BucketDuration  int
	BucketTimestamp interface{}
	Empty           bool
}

type TSRevRangeOptions

type TSRevRangeOptions struct {
	Latest          bool
	FilterByTS      []int
	FilterByValue   []int
	Count           int
	Align           interface{}
	Aggregator      Aggregator
	BucketDuration  int
	BucketTimestamp interface{}
	Empty           bool
}

type TSTimestampValue

type TSTimestampValue struct {
	Timestamp int64
	Value     float64
}

type TSTimestampValueCmd

type TSTimestampValueCmd struct {
	// contains filtered or unexported fields
}

func (*TSTimestampValueCmd) Args

func (cmd *TSTimestampValueCmd) Args() []interface{}

func (*TSTimestampValueCmd) Err

func (cmd *TSTimestampValueCmd) Err() error

func (*TSTimestampValueCmd) FullName

func (cmd *TSTimestampValueCmd) FullName() string

func (*TSTimestampValueCmd) Name

func (cmd *TSTimestampValueCmd) Name() string

func (*TSTimestampValueCmd) Result

func (cmd *TSTimestampValueCmd) Result() (TSTimestampValue, error)

func (*TSTimestampValueCmd) SetErr

func (cmd *TSTimestampValueCmd) SetErr(e error)

func (*TSTimestampValueCmd) SetFirstKeyPos

func (cmd *TSTimestampValueCmd) SetFirstKeyPos(keyPos int8)

func (*TSTimestampValueCmd) SetVal

func (cmd *TSTimestampValueCmd) SetVal(val TSTimestampValue)

func (*TSTimestampValueCmd) String

func (cmd *TSTimestampValueCmd) String() string

func (*TSTimestampValueCmd) Val

type TSTimestampValueSliceCmd

type TSTimestampValueSliceCmd struct {
	// contains filtered or unexported fields
}

func (*TSTimestampValueSliceCmd) Args

func (cmd *TSTimestampValueSliceCmd) Args() []interface{}

func (*TSTimestampValueSliceCmd) Err

func (cmd *TSTimestampValueSliceCmd) Err() error

func (*TSTimestampValueSliceCmd) FullName

func (cmd *TSTimestampValueSliceCmd) FullName() string

func (*TSTimestampValueSliceCmd) Name

func (cmd *TSTimestampValueSliceCmd) Name() string

func (*TSTimestampValueSliceCmd) Result

func (cmd *TSTimestampValueSliceCmd) Result() ([]TSTimestampValue, error)

func (*TSTimestampValueSliceCmd) SetErr

func (cmd *TSTimestampValueSliceCmd) SetErr(e error)

func (*TSTimestampValueSliceCmd) SetFirstKeyPos

func (cmd *TSTimestampValueSliceCmd) SetFirstKeyPos(keyPos int8)

func (*TSTimestampValueSliceCmd) SetVal

func (cmd *TSTimestampValueSliceCmd) SetVal(val []TSTimestampValue)

func (*TSTimestampValueSliceCmd) String

func (cmd *TSTimestampValueSliceCmd) String() string

func (*TSTimestampValueSliceCmd) Val

type TimeCmd

type TimeCmd struct {
	// contains filtered or unexported fields
}

func NewTimeCmd

func NewTimeCmd(ctx context.Context, args ...interface{}) *TimeCmd

func NewTimeCmdResult

func NewTimeCmdResult(val time.Time, err error) *TimeCmd

NewTimeCmdResult returns a TimeCmd initialised with val and err for testing.

func (*TimeCmd) Args

func (cmd *TimeCmd) Args() []interface{}

func (*TimeCmd) Err

func (cmd *TimeCmd) Err() error

func (*TimeCmd) FullName

func (cmd *TimeCmd) FullName() string

func (*TimeCmd) Name

func (cmd *TimeCmd) Name() string

func (*TimeCmd) Result

func (cmd *TimeCmd) Result() (time.Time, error)

func (*TimeCmd) SetErr

func (cmd *TimeCmd) SetErr(e error)

func (*TimeCmd) SetFirstKeyPos

func (cmd *TimeCmd) SetFirstKeyPos(keyPos int8)

func (*TimeCmd) SetVal

func (cmd *TimeCmd) SetVal(val time.Time)

func (*TimeCmd) String

func (cmd *TimeCmd) String() string

func (*TimeCmd) Val

func (cmd *TimeCmd) Val() time.Time

type TimeseriesCmdable

type TimeseriesCmdable interface {
	TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd
	TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd
	TSCreate(ctx context.Context, key string) *StatusCmd
	TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd
	TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd
	TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd
	TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd
	TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd
	TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd
	TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd
	TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd
	TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd
	TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd
	TSGet(ctx context.Context, key string) *TSTimestampValueCmd
	TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd
	TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd
	TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd
	TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd
	TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd
	TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd
	TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd
	TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd
	TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd
	TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd
	TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd
	TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd
	TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd
	TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd
	TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd
}

type TopKInfo

type TopKInfo struct {
	K     int64
	Width int64
	Depth int64
	Decay float64
}

type TopKInfoCmd

type TopKInfoCmd struct {
	// contains filtered or unexported fields
}

func NewTopKInfoCmd

func NewTopKInfoCmd(ctx context.Context, args ...interface{}) *TopKInfoCmd

func (*TopKInfoCmd) Args

func (cmd *TopKInfoCmd) Args() []interface{}

func (*TopKInfoCmd) Err

func (cmd *TopKInfoCmd) Err() error

func (*TopKInfoCmd) FullName

func (cmd *TopKInfoCmd) FullName() string

func (*TopKInfoCmd) Name

func (cmd *TopKInfoCmd) Name() string

func (*TopKInfoCmd) Result

func (cmd *TopKInfoCmd) Result() (TopKInfo, error)

func (*TopKInfoCmd) SetErr

func (cmd *TopKInfoCmd) SetErr(e error)

func (*TopKInfoCmd) SetFirstKeyPos

func (cmd *TopKInfoCmd) SetFirstKeyPos(keyPos int8)

func (*TopKInfoCmd) SetVal

func (cmd *TopKInfoCmd) SetVal(val TopKInfo)

func (*TopKInfoCmd) String

func (cmd *TopKInfoCmd) String() string

func (*TopKInfoCmd) Val

func (cmd *TopKInfoCmd) Val() TopKInfo

type Tx

type Tx struct {
	// contains filtered or unexported fields
}

Tx implements Redis transactions as described in http://redis.io/topics/transactions. It's NOT safe for concurrent use by multiple goroutines, because Exec resets list of watched keys.

If you don't need WATCH, use Pipeline instead.

func (Tx) ACLDryRun

func (c Tx) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd

func (Tx) ACLLog

func (c Tx) ACLLog(ctx context.Context, count int64) *ACLLogCmd

func (Tx) ACLLogReset

func (c Tx) ACLLogReset(ctx context.Context) *StatusCmd

func (*Tx) AddHook

func (hs *Tx) AddHook(hook Hook)

AddHook is to add a hook to the queue. Hook is a function executed during network connection, command execution, and pipeline, it is a first-in-first-out stack queue (FIFO). You need to execute the next hook in each hook, unless you want to terminate the execution of the command. For example, you added hook-1, hook-2:

client.AddHook(hook-1, hook-2)

hook-1:

func (Hook1) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
 	return func(ctx context.Context, cmd Cmder) error {
	 	print("hook-1 start")
	 	next(ctx, cmd)
	 	print("hook-1 end")
	 	return nil
 	}
}

hook-2:

func (Hook2) ProcessHook(next redis.ProcessHook) redis.ProcessHook {
	return func(ctx context.Context, cmd redis.Cmder) error {
		print("hook-2 start")
		next(ctx, cmd)
		print("hook-2 end")
		return nil
	}
}

The execution sequence is:

hook-1 start -> hook-2 start -> exec redis cmd -> hook-2 end -> hook-1 end

Please note: "next(ctx, cmd)" is very important, it will call the next hook, if "next(ctx, cmd)" is not executed, the redis command will not be executed.

func (Tx) Append

func (c Tx) Append(ctx context.Context, key, value string) *IntCmd

func (Tx) Auth

func (c Tx) Auth(ctx context.Context, password string) *StatusCmd

func (Tx) AuthACL

func (c Tx) AuthACL(ctx context.Context, username, password string) *StatusCmd

AuthACL Perform an AUTH command, using the given user and pass. Should be used to authenticate the current connection with one of the connections defined in the ACL list when connecting to a Redis 6.0 instance, or greater, that is using the Redis ACL system.

func (Tx) BFAdd

func (c Tx) BFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

BFAdd adds an item to a Bloom filter. For more information - https://redis.io/commands/bf.add/

func (Tx) BFCard

func (c Tx) BFCard(ctx context.Context, key string) *IntCmd

BFCard returns the cardinality of a Bloom filter - number of items that were added to a Bloom filter and detected as unique (items that caused at least one bit to be set in at least one sub-filter). For more information - https://redis.io/commands/bf.card/

func (Tx) BFExists

func (c Tx) BFExists(ctx context.Context, key string, element interface{}) *BoolCmd

BFExists determines whether a given item was added to a Bloom filter. For more information - https://redis.io/commands/bf.exists/

func (Tx) BFInfo

func (c Tx) BFInfo(ctx context.Context, key string) *BFInfoCmd

Returns information about a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoArg

func (c Tx) BFInfoArg(ctx context.Context, key, option string) *BFInfoCmd

BFInfoArg returns information about a specific option of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoCapacity

func (c Tx) BFInfoCapacity(ctx context.Context, key string) *BFInfoCmd

BFInfoCapacity returns information about the capacity of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoExpansion

func (c Tx) BFInfoExpansion(ctx context.Context, key string) *BFInfoCmd

BFInfoExpansion returns information about the expansion rate of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoFilters

func (c Tx) BFInfoFilters(ctx context.Context, key string) *BFInfoCmd

BFInfoFilters returns information about the filters of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoItems

func (c Tx) BFInfoItems(ctx context.Context, key string) *BFInfoCmd

BFInfoItems returns information about the items of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInfoSize

func (c Tx) BFInfoSize(ctx context.Context, key string) *BFInfoCmd

BFInfoSize returns information about the size of a Bloom filter. For more information - https://redis.io/commands/bf.info/

func (Tx) BFInsert

func (c Tx) BFInsert(ctx context.Context, key string, options *BFInsertOptions, elements ...interface{}) *BoolSliceCmd

BFInsert inserts elements into a Bloom filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. For more information - https://redis.io/commands/bf.insert/

func (Tx) BFLoadChunk

func (c Tx) BFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

BFLoadChunk restores a Bloom filter previously saved using BF.SCANDUMP. For more information - https://redis.io/commands/bf.loadchunk/

func (Tx) BFMAdd

func (c Tx) BFMAdd(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMAdd adds multiple elements to a Bloom filter. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/bf.madd/

func (Tx) BFMExists

func (c Tx) BFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

BFMExists check if multiple elements exist in a Bloom filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/bf.mexists/

func (Tx) BFReserve

func (c Tx) BFReserve(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserve creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. For more information - https://redis.io/commands/bf.reserve/

func (Tx) BFReserveExpansion

func (c Tx) BFReserveExpansion(ctx context.Context, key string, errorRate float64, capacity, expansion int64) *StatusCmd

BFReserveExpansion creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying an expansion rate for the filter. For more information - https://redis.io/commands/bf.reserve/

func (Tx) BFReserveNonScaling

func (c Tx) BFReserveNonScaling(ctx context.Context, key string, errorRate float64, capacity int64) *StatusCmd

BFReserveNonScaling creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying that the filter should not scale. For more information - https://redis.io/commands/bf.reserve/

func (Tx) BFReserveWithArgs

func (c Tx) BFReserveWithArgs(ctx context.Context, key string, options *BFReserveOptions) *StatusCmd

BFReserveWithArgs creates an empty Bloom filter with a single sub-filter for the initial specified capacity and with an upper bound error_rate. This function also allows for specifying additional options such as expansion rate and non-scaling behavior. For more information - https://redis.io/commands/bf.reserve/

func (Tx) BFScanDump

func (c Tx) BFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

Begins an incremental save of the Bloom filter. This command is useful for large Bloom filters that cannot fit into the DUMP and RESTORE model. For more information - https://redis.io/commands/bf.scandump/

func (Tx) BLMPop

func (c Tx) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd

func (Tx) BLMove

func (c Tx) BLMove(
	ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration,
) *StringCmd

func (Tx) BLPop

func (c Tx) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Tx) BRPop

func (c Tx) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd

func (Tx) BRPopLPush

func (c Tx) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd

func (Tx) BZMPop

func (c Tx) BZMPop(ctx context.Context, timeout time.Duration, order string, count int64, keys ...string) *ZSliceWithKeyCmd

BZMPop is the blocking variant of ZMPOP. When any of the sorted sets contains elements, this command behaves exactly like ZMPOP. When all sorted sets are empty, Redis will block the connection until another client adds members to one of the keys or until the timeout elapses. A timeout of zero can be used to block indefinitely. example: client.BZMPop(ctx, 0,"max", 1, "set")

func (Tx) BZPopMax

func (c Tx) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.

func (Tx) BZPopMin

func (c Tx) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd

BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.

func (Tx) BgRewriteAOF

func (c Tx) BgRewriteAOF(ctx context.Context) *StatusCmd

func (Tx) BgSave

func (c Tx) BgSave(ctx context.Context) *StatusCmd

func (Tx) BitCount

func (c Tx) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd

func (Tx) BitField

func (c Tx) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitField accepts multiple values:

  • BitField("set", "i1", "offset1", "value1","cmd2", "type2", "offset2", "value2")
  • BitField([]string{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})
  • BitField([]interface{}{"cmd1", "type1", "offset1", "value1","cmd2", "type2", "offset2", "value2"})

func (Tx) BitFieldRO

func (c Tx) BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd

BitFieldRO - Read-only variant of the BITFIELD command. It is like the original BITFIELD but only accepts GET subcommand and can safely be used in read-only replicas. - BitFieldRO(ctx, key, "<Encoding0>", "<Offset0>", "<Encoding1>","<Offset1>")

func (Tx) BitOpAnd

func (c Tx) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Tx) BitOpNot

func (c Tx) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd

func (Tx) BitOpOr

func (c Tx) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Tx) BitOpXor

func (c Tx) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd

func (Tx) BitPos

func (c Tx) BitPos(ctx context.Context, key string, bit int64, pos ...int64) *IntCmd

BitPos is an API before Redis version 7.0, cmd: bitpos key bit start end if you need the `byte | bit` parameter, please use `BitPosSpan`.

func (Tx) BitPosSpan

func (c Tx) BitPosSpan(ctx context.Context, key string, bit int8, start, end int64, span string) *IntCmd

BitPosSpan supports the `byte | bit` parameters in redis version 7.0, the bitpos command defaults to using byte type for the `start-end` range, which means it counts in bytes from start to end. you can set the value of "span" to determine the type of `start-end`. span = "bit", cmd: bitpos key bit start end bit span = "byte", cmd: bitpos key bit start end byte

func (Tx) CFAdd

func (c Tx) CFAdd(ctx context.Context, key string, element interface{}) *BoolCmd

CFAdd adds an element to a Cuckoo filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.add/

func (Tx) CFAddNX

func (c Tx) CFAddNX(ctx context.Context, key string, element interface{}) *BoolCmd

CFAddNX adds an element to a Cuckoo filter only if it does not already exist in the filter. Returns true if the element was added to the filter or false if it already exists in the filter. For more information - https://redis.io/commands/cf.addnx/

func (Tx) CFCount

func (c Tx) CFCount(ctx context.Context, key string, element interface{}) *IntCmd

CFCount returns an estimate of the number of times an element may be in a Cuckoo Filter. For more information - https://redis.io/commands/cf.count/

func (Tx) CFDel

func (c Tx) CFDel(ctx context.Context, key string, element interface{}) *BoolCmd

CFDel deletes an item once from the cuckoo filter. For more information - https://redis.io/commands/cf.del/

func (Tx) CFExists

func (c Tx) CFExists(ctx context.Context, key string, element interface{}) *BoolCmd

CFExists determines whether an item may exist in the Cuckoo Filter or not. For more information - https://redis.io/commands/cf.exists/

func (Tx) CFInfo

func (c Tx) CFInfo(ctx context.Context, key string) *CFInfoCmd

CFInfo returns information about a Cuckoo filter. For more information - https://redis.io/commands/cf.info/

func (Tx) CFInsert

func (c Tx) CFInsert(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *BoolSliceCmd

CFInsert inserts elements into a Cuckoo filter. This function also allows for specifying additional options such as capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of booleans indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insert/

func (Tx) CFInsertNX

func (c Tx) CFInsertNX(ctx context.Context, key string, options *CFInsertOptions, elements ...interface{}) *IntSliceCmd

CFInsertNX inserts elements into a Cuckoo filter only if they do not already exist in the filter. This function also allows for specifying additional options such as: capacity, error rate, expansion rate, and non-scaling behavior. Returns an array of integers indicating whether each element was added to the filter or not. For more information - https://redis.io/commands/cf.insertnx/

func (Tx) CFLoadChunk

func (c Tx) CFLoadChunk(ctx context.Context, key string, iterator int64, data interface{}) *StatusCmd

CFLoadChunk restores a filter previously saved using SCANDUMP. For more information - https://redis.io/commands/cf.loadchunk/

func (Tx) CFMExists

func (c Tx) CFMExists(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

CFMExists check if multiple elements exist in a Cuckoo filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/cf.mexists/

func (Tx) CFReserve

func (c Tx) CFReserve(ctx context.Context, key string, capacity int64) *StatusCmd

CFReserve creates an empty Cuckoo filter with the specified capacity. For more information - https://redis.io/commands/cf.reserve/

func (Tx) CFReserveBucketSize

func (c Tx) CFReserveBucketSize(ctx context.Context, key string, capacity int64, bucketsize int64) *StatusCmd

CFReserveBucketSize creates an empty Cuckoo filter with the specified capacity and bucket size. For more information - https://redis.io/commands/cf.reserve/

func (Tx) CFReserveExpansion

func (c Tx) CFReserveExpansion(ctx context.Context, key string, capacity int64, expansion int64) *StatusCmd

CFReserveExpansion creates an empty Cuckoo filter with the specified capacity and expansion rate. For more information - https://redis.io/commands/cf.reserve/

func (Tx) CFReserveMaxIterations

func (c Tx) CFReserveMaxIterations(ctx context.Context, key string, capacity int64, maxiterations int64) *StatusCmd

CFReserveMaxIterations creates an empty Cuckoo filter with the specified capacity and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Tx) CFReserveWithArgs

func (c Tx) CFReserveWithArgs(ctx context.Context, key string, options *CFReserveOptions) *StatusCmd

CFReserveWithArgs creates an empty Cuckoo filter with the specified options. This function allows for specifying additional options such as bucket size and maximum number of iterations. For more information - https://redis.io/commands/cf.reserve/

func (Tx) CFScanDump

func (c Tx) CFScanDump(ctx context.Context, key string, iterator int64) *ScanDumpCmd

CFScanDump begins an incremental save of the cuckoo filter. For more information - https://redis.io/commands/cf.scandump/

func (Tx) CMSIncrBy

func (c Tx) CMSIncrBy(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSIncrBy increments the count of one or more items in a Count-Min Sketch filter. Returns an array of integers representing the updated count of each item. For more information - https://redis.io/commands/cms.incrby/

func (Tx) CMSInfo

func (c Tx) CMSInfo(ctx context.Context, key string) *CMSInfoCmd

CMSInfo returns information about a Count-Min Sketch filter. For more information - https://redis.io/commands/cms.info/

func (Tx) CMSInitByDim

func (c Tx) CMSInitByDim(ctx context.Context, key string, width, depth int64) *StatusCmd

CMSInitByDim creates an empty Count-Min Sketch filter with the specified dimensions. For more information - https://redis.io/commands/cms.initbydim/

func (Tx) CMSInitByProb

func (c Tx) CMSInitByProb(ctx context.Context, key string, errorRate, probability float64) *StatusCmd

CMSInitByProb creates an empty Count-Min Sketch filter with the specified error rate and probability. For more information - https://redis.io/commands/cms.initbyprob/

func (Tx) CMSMerge

func (c Tx) CMSMerge(ctx context.Context, destKey string, sourceKeys ...string) *StatusCmd

CMSMerge merges multiple Count-Min Sketch filters into a single filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Tx) CMSMergeWithWeight

func (c Tx) CMSMergeWithWeight(ctx context.Context, destKey string, sourceKeys map[string]int64) *StatusCmd

CMSMergeWithWeight merges multiple Count-Min Sketch filters into a single filter with weights for each source filter. The destination filter must not exist and will be created with the dimensions of the first source filter. The number of items in each source filter must be equal. Returns OK on success or an error if the filters could not be merged. For more information - https://redis.io/commands/cms.merge/

func (Tx) CMSQuery

func (c Tx) CMSQuery(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

CMSQuery returns count for item(s). For more information - https://redis.io/commands/cms.query/

func (Tx) ClientGetName

func (c Tx) ClientGetName(ctx context.Context) *StringCmd

ClientGetName returns the name of the connection.

func (Tx) ClientID

func (c Tx) ClientID(ctx context.Context) *IntCmd

func (Tx) ClientInfo

func (c Tx) ClientInfo(ctx context.Context) *ClientInfoCmd

func (Tx) ClientKill

func (c Tx) ClientKill(ctx context.Context, ipPort string) *StatusCmd

func (Tx) ClientKillByFilter

func (c Tx) ClientKillByFilter(ctx context.Context, keys ...string) *IntCmd

ClientKillByFilter is new style syntax, while the ClientKill is old

CLIENT KILL <option> [value] ... <option> [value]

func (Tx) ClientList

func (c Tx) ClientList(ctx context.Context) *StringCmd

func (Tx) ClientPause

func (c Tx) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd

func (Tx) ClientSetInfo

func (c Tx) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd

ClientSetInfo sends a CLIENT SETINFO command with the provided info.

func (Tx) ClientSetName

func (c Tx) ClientSetName(ctx context.Context, name string) *BoolCmd

ClientSetName assigns a name to the connection.

func (Tx) ClientUnblock

func (c Tx) ClientUnblock(ctx context.Context, id int64) *IntCmd

func (Tx) ClientUnblockWithError

func (c Tx) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd

func (Tx) ClientUnpause

func (c Tx) ClientUnpause(ctx context.Context) *BoolCmd

func (*Tx) Close

func (c *Tx) Close(ctx context.Context) error

Close closes the transaction, releasing any open resources.

func (Tx) ClusterAddSlots

func (c Tx) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd

func (Tx) ClusterAddSlotsRange

func (c Tx) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Tx) ClusterCountFailureReports

func (c Tx) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd

func (Tx) ClusterCountKeysInSlot

func (c Tx) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd

func (Tx) ClusterDelSlots

func (c Tx) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd

func (Tx) ClusterDelSlotsRange

func (c Tx) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd

func (Tx) ClusterFailover

func (c Tx) ClusterFailover(ctx context.Context) *StatusCmd

func (Tx) ClusterForget

func (c Tx) ClusterForget(ctx context.Context, nodeID string) *StatusCmd

func (Tx) ClusterGetKeysInSlot

func (c Tx) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd

func (Tx) ClusterInfo

func (c Tx) ClusterInfo(ctx context.Context) *StringCmd

func (Tx) ClusterKeySlot

func (c Tx) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Tx) ClusterLinks(ctx context.Context) *ClusterLinksCmd

func (Tx) ClusterMeet

func (c Tx) ClusterMeet(ctx context.Context, host, port string) *StatusCmd

func (Tx) ClusterMyShardID

func (c Tx) ClusterMyShardID(ctx context.Context) *StringCmd

func (Tx) ClusterNodes

func (c Tx) ClusterNodes(ctx context.Context) *StringCmd

func (Tx) ClusterReplicate

func (c Tx) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd

func (Tx) ClusterResetHard

func (c Tx) ClusterResetHard(ctx context.Context) *StatusCmd

func (Tx) ClusterResetSoft

func (c Tx) ClusterResetSoft(ctx context.Context) *StatusCmd

func (Tx) ClusterSaveConfig

func (c Tx) ClusterSaveConfig(ctx context.Context) *StatusCmd

func (Tx) ClusterShards

func (c Tx) ClusterShards(ctx context.Context) *ClusterShardsCmd

func (Tx) ClusterSlaves

func (c Tx) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd

func (Tx) ClusterSlots

func (c Tx) ClusterSlots(ctx context.Context) *ClusterSlotsCmd

func (Tx) Command

func (c Tx) Command(ctx context.Context) *CommandsInfoCmd

func (Tx) CommandGetKeys

func (c Tx) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd

func (Tx) CommandGetKeysAndFlags

func (c Tx) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd

func (Tx) CommandList

func (c Tx) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd

func (Tx) ConfigGet

func (c Tx) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd

func (Tx) ConfigResetStat

func (c Tx) ConfigResetStat(ctx context.Context) *StatusCmd

func (Tx) ConfigRewrite

func (c Tx) ConfigRewrite(ctx context.Context) *StatusCmd

func (Tx) ConfigSet

func (c Tx) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd

func (Tx) Copy

func (c Tx) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd

func (Tx) DBSize

func (c Tx) DBSize(ctx context.Context) *IntCmd

func (Tx) DebugObject

func (c Tx) DebugObject(ctx context.Context, key string) *StringCmd

func (Tx) Decr

func (c Tx) Decr(ctx context.Context, key string) *IntCmd

func (Tx) DecrBy

func (c Tx) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd

func (Tx) Del

func (c Tx) Del(ctx context.Context, keys ...string) *IntCmd

func (Tx) Dump

func (c Tx) Dump(ctx context.Context, key string) *StringCmd

func (Tx) Echo

func (c Tx) Echo(ctx context.Context, message interface{}) *StringCmd

func (Tx) Eval

func (c Tx) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Tx) EvalRO

func (c Tx) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd

func (Tx) EvalSha

func (c Tx) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Tx) EvalShaRO

func (c Tx) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd

func (Tx) Exists

func (c Tx) Exists(ctx context.Context, keys ...string) *IntCmd

func (Tx) Expire

func (c Tx) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) ExpireAt

func (c Tx) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Tx) ExpireGT

func (c Tx) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) ExpireLT

func (c Tx) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) ExpireNX

func (c Tx) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) ExpireTime

func (c Tx) ExpireTime(ctx context.Context, key string) *DurationCmd

func (Tx) ExpireXX

func (c Tx) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) FCall

func (c Tx) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Tx) FCallRO

func (c Tx) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

func (Tx) FCallRo

func (c Tx) FCallRo(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd

FCallRo this function simply calls FCallRO, Deprecated: to maintain convention FCallRO.

func (Tx) FlushAll

func (c Tx) FlushAll(ctx context.Context) *StatusCmd

func (Tx) FlushAllAsync

func (c Tx) FlushAllAsync(ctx context.Context) *StatusCmd

func (Tx) FlushDB

func (c Tx) FlushDB(ctx context.Context) *StatusCmd

func (Tx) FlushDBAsync

func (c Tx) FlushDBAsync(ctx context.Context) *StatusCmd

func (Tx) FunctionDelete

func (c Tx) FunctionDelete(ctx context.Context, libName string) *StringCmd

func (Tx) FunctionDump

func (c Tx) FunctionDump(ctx context.Context) *StringCmd

func (Tx) FunctionFlush

func (c Tx) FunctionFlush(ctx context.Context) *StringCmd

func (Tx) FunctionFlushAsync

func (c Tx) FunctionFlushAsync(ctx context.Context) *StringCmd

func (Tx) FunctionKill

func (c Tx) FunctionKill(ctx context.Context) *StringCmd

func (Tx) FunctionList

func (c Tx) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd

func (Tx) FunctionLoad

func (c Tx) FunctionLoad(ctx context.Context, code string) *StringCmd

func (Tx) FunctionLoadReplace

func (c Tx) FunctionLoadReplace(ctx context.Context, code string) *StringCmd

func (Tx) FunctionRestore

func (c Tx) FunctionRestore(ctx context.Context, libDump string) *StringCmd

func (Tx) FunctionStats

func (c Tx) FunctionStats(ctx context.Context) *FunctionStatsCmd

func (Tx) GeoAdd

func (c Tx) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd

func (Tx) GeoDist

func (c Tx) GeoDist(
	ctx context.Context, key string, member1, member2, unit string,
) *FloatCmd

func (Tx) GeoHash

func (c Tx) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd

func (Tx) GeoPos

func (c Tx) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd

func (Tx) GeoRadius

func (c Tx) GeoRadius(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadius is a read-only GEORADIUS_RO command.

func (Tx) GeoRadiusByMember

func (c Tx) GeoRadiusByMember(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *GeoLocationCmd

GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.

func (Tx) GeoRadiusByMemberStore

func (c Tx) GeoRadiusByMemberStore(
	ctx context.Context, key, member string, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.

func (Tx) GeoRadiusStore

func (c Tx) GeoRadiusStore(
	ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery,
) *IntCmd

GeoRadiusStore is a writing GEORADIUS command.

func (Tx) GeoSearch

func (c Tx) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd

func (Tx) GeoSearchLocation

func (c Tx) GeoSearchLocation(
	ctx context.Context, key string, q *GeoSearchLocationQuery,
) *GeoSearchLocationCmd

func (Tx) GeoSearchStore

func (c Tx) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd

func (Tx) Get

func (c Tx) Get(ctx context.Context, key string) *StringCmd

Get Redis `GET key` command. It returns redis.Nil error when key does not exist.

func (Tx) GetBit

func (c Tx) GetBit(ctx context.Context, key string, offset int64) *IntCmd

func (Tx) GetDel

func (c Tx) GetDel(ctx context.Context, key string) *StringCmd

GetDel redis-server version >= 6.2.0.

func (Tx) GetEx

func (c Tx) GetEx(ctx context.Context, key string, expiration time.Duration) *StringCmd

GetEx An expiration of zero removes the TTL associated with the key (i.e. GETEX key persist). Requires Redis >= 6.2.0.

func (Tx) GetRange

func (c Tx) GetRange(ctx context.Context, key string, start, end int64) *StringCmd

func (Tx) GetSet

func (c Tx) GetSet(ctx context.Context, key string, value interface{}) *StringCmd

func (Tx) HDel

func (c Tx) HDel(ctx context.Context, key string, fields ...string) *IntCmd

func (Tx) HExists

func (c Tx) HExists(ctx context.Context, key, field string) *BoolCmd

func (Tx) HGet

func (c Tx) HGet(ctx context.Context, key, field string) *StringCmd

func (Tx) HGetAll

func (c Tx) HGetAll(ctx context.Context, key string) *MapStringStringCmd

func (Tx) HIncrBy

func (c Tx) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd

func (Tx) HIncrByFloat

func (c Tx) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd

func (Tx) HKeys

func (c Tx) HKeys(ctx context.Context, key string) *StringSliceCmd

func (Tx) HLen

func (c Tx) HLen(ctx context.Context, key string) *IntCmd

func (Tx) HMGet

func (c Tx) HMGet(ctx context.Context, key string, fields ...string) *SliceCmd

HMGet returns the values for the specified fields in the hash stored at key. It returns an interface{} to distinguish between empty string and nil value.

func (Tx) HMSet

func (c Tx) HMSet(ctx context.Context, key string, values ...interface{}) *BoolCmd

HMSet is a deprecated version of HSet left for compatibility with Redis 3.

func (Tx) HRandField

func (c Tx) HRandField(ctx context.Context, key string, count int) *StringSliceCmd

HRandField redis-server version >= 6.2.0.

func (Tx) HRandFieldWithValues

func (c Tx) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd

HRandFieldWithValues redis-server version >= 6.2.0.

func (Tx) HScan

func (c Tx) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Tx) HSet

func (c Tx) HSet(ctx context.Context, key string, values ...interface{}) *IntCmd

HSet accepts values in following formats:

  • HSet("myhash", "key1", "value1", "key2", "value2")

  • HSet("myhash", []string{"key1", "value1", "key2", "value2"})

  • HSet("myhash", map[string]interface{}{"key1": "value1", "key2": "value2"})

    Playing struct With "redis" tag. type MyHash struct { Key1 string `redis:"key1"`; Key2 int `redis:"key2"` }

  • HSet("myhash", MyHash{"value1", "value2"}) Warn: redis-server >= 4.0

    For struct, can be a structure pointer type, we only parse the field whose tag is redis. if you don't want the field to be read, you can use the `redis:"-"` flag to ignore it, or you don't need to set the redis tag. For the type of structure field, we only support simple data types: string, int/uint(8,16,32,64), float(32,64), time.Time(to RFC3339Nano), time.Duration(to Nanoseconds ), if you are other more complex or custom data types, please implement the encoding.BinaryMarshaler interface.

Note that in older versions of Redis server(redis-server < 4.0), HSet only supports a single key-value pair. redis-docs: https://redis.io/commands/hset (Starting with Redis version 4.0.0: Accepts multiple field and value arguments.) If you are using a Struct type and the number of fields is greater than one, you will receive an error similar to "ERR wrong number of arguments", you can use HMSet as a substitute.

func (Tx) HSetNX

func (c Tx) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd

func (Tx) HVals

func (c Tx) HVals(ctx context.Context, key string) *StringSliceCmd

func (Tx) Hello

func (c Tx) Hello(ctx context.Context,
	ver int, username, password, clientName string,
) *MapStringInterfaceCmd

Hello Set the resp protocol used.

func (Tx) Incr

func (c Tx) Incr(ctx context.Context, key string) *IntCmd

func (Tx) IncrBy

func (c Tx) IncrBy(ctx context.Context, key string, value int64) *IntCmd

func (Tx) IncrByFloat

func (c Tx) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd

func (Tx) Info

func (c Tx) Info(ctx context.Context, sections ...string) *StringCmd

func (Tx) InfoMap

func (c Tx) InfoMap(ctx context.Context, sections ...string) *InfoCmd

func (Tx) JSONArrAppend

func (c Tx) JSONArrAppend(ctx context.Context, key, path string, values ...interface{}) *IntSliceCmd

JSONArrAppend adds the provided JSON values to the end of the array at the given path. For more information, see https://redis.io/commands/json.arrappend

func (Tx) JSONArrIndex

func (c Tx) JSONArrIndex(ctx context.Context, key, path string, value ...interface{}) *IntSliceCmd

JSONArrIndex searches for the first occurrence of the provided JSON value in the array at the given path. For more information, see https://redis.io/commands/json.arrindex

func (Tx) JSONArrIndexWithArgs

func (c Tx) JSONArrIndexWithArgs(ctx context.Context, key, path string, options *JSONArrIndexArgs, value ...interface{}) *IntSliceCmd

JSONArrIndexWithArgs searches for the first occurrence of a JSON value in an array while allowing the start and stop options to be provided. For more information, see https://redis.io/commands/json.arrindex

func (Tx) JSONArrInsert

func (c Tx) JSONArrInsert(ctx context.Context, key, path string, index int64, values ...interface{}) *IntSliceCmd

JSONArrInsert inserts the JSON values into the array at the specified path before the index (shifts to the right). For more information, see https://redis.io/commands/json.arrinsert

func (Tx) JSONArrLen

func (c Tx) JSONArrLen(ctx context.Context, key, path string) *IntSliceCmd

JSONArrLen reports the length of the JSON array at the specified path in the given key. For more information, see https://redis.io/commands/json.arrlen

func (Tx) JSONArrPop

func (c Tx) JSONArrPop(ctx context.Context, key, path string, index int) *StringSliceCmd

JSONArrPop removes and returns an element from the specified index in the array. For more information, see https://redis.io/commands/json.arrpop

func (Tx) JSONArrTrim

func (c Tx) JSONArrTrim(ctx context.Context, key, path string) *IntSliceCmd

JSONArrTrim trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Tx) JSONArrTrimWithArgs

func (c Tx) JSONArrTrimWithArgs(ctx context.Context, key, path string, options *JSONArrTrimArgs) *IntSliceCmd

JSONArrTrimWithArgs trims an array to contain only the specified inclusive range of elements. For more information, see https://redis.io/commands/json.arrtrim

func (Tx) JSONClear

func (c Tx) JSONClear(ctx context.Context, key, path string) *IntCmd

JSONClear clears container values (arrays/objects) and sets numeric values to 0. For more information, see https://redis.io/commands/json.clear

func (Tx) JSONDebugMemory

func (c Tx) JSONDebugMemory(ctx context.Context, key, path string) *IntCmd

JSONDebugMemory reports a value's memory usage in bytes (unimplemented) For more information, see https://redis.io/commands/json.debug-memory

func (Tx) JSONDel

func (c Tx) JSONDel(ctx context.Context, key, path string) *IntCmd

JSONDel deletes a value. For more information, see https://redis.io/commands/json.del

func (Tx) JSONForget

func (c Tx) JSONForget(ctx context.Context, key, path string) *IntCmd

JSONForget deletes a value. For more information, see https://redis.io/commands/json.forget

func (Tx) JSONGet

func (c Tx) JSONGet(ctx context.Context, key string, paths ...string) *JSONCmd

JSONGet returns the value at path in JSON serialized form. JSON.GET returns an array of strings. This function parses out the wrapping array but leaves the internal strings unprocessed by default (see Val()) For more information - https://redis.io/commands/json.get/

func (Tx) JSONGetWithArgs

func (c Tx) JSONGetWithArgs(ctx context.Context, key string, options *JSONGetArgs, paths ...string) *JSONCmd

JSONGetWithArgs - Retrieves the value of a key from a JSON document. This function also allows for specifying additional options such as: Indention, NewLine and Space For more information - https://redis.io/commands/json.get/

func (Tx) JSONMGet

func (c Tx) JSONMGet(ctx context.Context, path string, keys ...string) *JSONSliceCmd

JSONMGet returns the values at the specified path from multiple key arguments. Note - the arguments are reversed when compared with `JSON.MGET` as we want to follow the pattern of having the last argument be variable. For more information, see https://redis.io/commands/json.mget

func (Tx) JSONMSet

func (c Tx) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd

func (Tx) JSONMSetArgs

func (c Tx) JSONMSetArgs(ctx context.Context, docs []JSONSetArgs) *StatusCmd

JSONMSetArgs sets or updates one or more JSON values according to the specified key-path-value triplets. For more information, see https://redis.io/commands/json.mset

func (Tx) JSONMerge

func (c Tx) JSONMerge(ctx context.Context, key, path string, value string) *StatusCmd

JSONMerge merges a given JSON value into matching paths. For more information, see https://redis.io/commands/json.merge

func (Tx) JSONNumIncrBy

func (c Tx) JSONNumIncrBy(ctx context.Context, key, path string, value float64) *JSONCmd

JSONNumIncrBy increments the number value stored at the specified path by the provided number. For more information, see https://redis.io/commands/json.numincreby

func (Tx) JSONObjKeys

func (c Tx) JSONObjKeys(ctx context.Context, key, path string) *SliceCmd

JSONObjKeys returns the keys in the object that's referenced by the specified path. For more information, see https://redis.io/commands/json.objkeys

func (Tx) JSONObjLen

func (c Tx) JSONObjLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONObjLen reports the number of keys in the JSON object at the specified path in the given key. For more information, see https://redis.io/commands/json.objlen

func (Tx) JSONSet

func (c Tx) JSONSet(ctx context.Context, key, path string, value interface{}) *StatusCmd

JSONSet sets the JSON value at the given path in the given key. The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or a []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Tx) JSONSetMode

func (c Tx) JSONSetMode(ctx context.Context, key, path string, value interface{}, mode string) *StatusCmd

JSONSetMode sets the JSON value at the given path in the given key and allows the mode to be set (the mode value must be "XX" or "NX"). The value must be something that can be marshaled to JSON (using encoding/JSON) unless the argument is a string or []byte when we assume that it can be passed directly as JSON. For more information, see https://redis.io/commands/json.set

func (Tx) JSONStrAppend

func (c Tx) JSONStrAppend(ctx context.Context, key, path, value string) *IntPointerSliceCmd

JSONStrAppend appends the JSON-string values to the string at the specified path. For more information, see https://redis.io/commands/json.strappend

func (Tx) JSONStrLen

func (c Tx) JSONStrLen(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONStrLen reports the length of the JSON String at the specified path in the given key. For more information, see https://redis.io/commands/json.strlen

func (Tx) JSONToggle

func (c Tx) JSONToggle(ctx context.Context, key, path string) *IntPointerSliceCmd

JSONToggle toggles a Boolean value stored at the specified path. For more information, see https://redis.io/commands/json.toggle

func (Tx) JSONType

func (c Tx) JSONType(ctx context.Context, key, path string) *JSONSliceCmd

JSONType reports the type of JSON value at the specified path. For more information, see https://redis.io/commands/json.type

func (Tx) Keys

func (c Tx) Keys(ctx context.Context, pattern string) *StringSliceCmd

func (Tx) LCS

func (c Tx) LCS(ctx context.Context, q *LCSQuery) *LCSCmd

func (Tx) LIndex

func (c Tx) LIndex(ctx context.Context, key string, index int64) *StringCmd

func (Tx) LInsert

func (c Tx) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd

func (Tx) LInsertAfter

func (c Tx) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Tx) LInsertBefore

func (c Tx) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd

func (Tx) LLen

func (c Tx) LLen(ctx context.Context, key string) *IntCmd

func (Tx) LMPop

func (c Tx) LMPop(ctx context.Context, direction string, count int64, keys ...string) *KeyValuesCmd

LMPop Pops one or more elements from the first non-empty list key from the list of provided key names. direction: left or right, count: > 0 example: client.LMPop(ctx, "left", 3, "key1", "key2")

func (Tx) LMove

func (c Tx) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd

func (Tx) LPop

func (c Tx) LPop(ctx context.Context, key string) *StringCmd

func (Tx) LPopCount

func (c Tx) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Tx) LPos

func (c Tx) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd

func (Tx) LPosCount

func (c Tx) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd

func (Tx) LPush

func (c Tx) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Tx) LPushX

func (c Tx) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Tx) LRange

func (c Tx) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Tx) LRem

func (c Tx) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd

func (Tx) LSet

func (c Tx) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd

func (Tx) LTrim

func (c Tx) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd

func (Tx) LastSave

func (c Tx) LastSave(ctx context.Context) *IntCmd

func (Tx) MGet

func (c Tx) MGet(ctx context.Context, keys ...string) *SliceCmd

func (Tx) MSet

func (c Tx) MSet(ctx context.Context, values ...interface{}) *StatusCmd

MSet is like Set but accepts multiple values:

  • MSet("key1", "value1", "key2", "value2")
  • MSet([]string{"key1", "value1", "key2", "value2"})
  • MSet(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSet(struct), For struct types, see HSet description.

func (Tx) MSetNX

func (c Tx) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd

MSetNX is like SetNX but accepts multiple values:

  • MSetNX("key1", "value1", "key2", "value2")
  • MSetNX([]string{"key1", "value1", "key2", "value2"})
  • MSetNX(map[string]interface{}{"key1": "value1", "key2": "value2"})
  • MSetNX(struct), For struct types, see HSet description.

func (Tx) MemoryUsage

func (c Tx) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd

func (Tx) Migrate

func (c Tx) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd

func (Tx) ModuleLoadex

func (c Tx) ModuleLoadex(ctx context.Context, conf *ModuleLoadexConfig) *StringCmd

ModuleLoadex Redis `MODULE LOADEX path [CONFIG name value [CONFIG name value ...]] [ARGS args [args ...]]` command.

func (Tx) Monitor

func (c Tx) Monitor(ctx context.Context, ch chan string) *MonitorCmd

Monitor - represents a Redis MONITOR command, allowing the user to capture and process all commands sent to a Redis server. This mimics the behavior of MONITOR in the redis-cli.

Notes: - Using MONITOR blocks the connection to the server for itself. It needs a dedicated connection - The user should create a channel of type string - This runs concurrently in the background. Trigger via the Start and Stop functions See further: Redis MONITOR command: https://redis.io/commands/monitor

func (Tx) Move

func (c Tx) Move(ctx context.Context, key string, db int) *BoolCmd

func (Tx) ObjectEncoding

func (c Tx) ObjectEncoding(ctx context.Context, key string) *StringCmd

func (Tx) ObjectFreq

func (c Tx) ObjectFreq(ctx context.Context, key string) *IntCmd

func (Tx) ObjectIdleTime

func (c Tx) ObjectIdleTime(ctx context.Context, key string) *DurationCmd

func (Tx) ObjectRefCount

func (c Tx) ObjectRefCount(ctx context.Context, key string) *IntCmd

func (Tx) PExpire

func (c Tx) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd

func (Tx) PExpireAt

func (c Tx) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd

func (Tx) PExpireTime

func (c Tx) PExpireTime(ctx context.Context, key string) *DurationCmd

func (Tx) PFAdd

func (c Tx) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd

func (Tx) PFCount

func (c Tx) PFCount(ctx context.Context, keys ...string) *IntCmd

func (Tx) PFMerge

func (c Tx) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd

func (Tx) PTTL

func (c Tx) PTTL(ctx context.Context, key string) *DurationCmd

func (Tx) Persist

func (c Tx) Persist(ctx context.Context, key string) *BoolCmd

func (Tx) Ping

func (c Tx) Ping(ctx context.Context) *StatusCmd

func (*Tx) Pipeline

func (c *Tx) Pipeline() Pipeliner

Pipeline creates a pipeline. Usually it is more convenient to use Pipelined.

func (*Tx) Pipelined

func (c *Tx) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

Pipelined executes commands queued in the fn outside of the transaction. Use TxPipelined if you need transactional behavior.

func (*Tx) Process

func (c *Tx) Process(ctx context.Context, cmd Cmder) error

func (Tx) PubSubChannels

func (c Tx) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Tx) PubSubNumPat

func (c Tx) PubSubNumPat(ctx context.Context) *IntCmd

func (Tx) PubSubNumSub

func (c Tx) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Tx) PubSubShardChannels

func (c Tx) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd

func (Tx) PubSubShardNumSub

func (c Tx) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd

func (Tx) Publish

func (c Tx) Publish(ctx context.Context, channel string, message interface{}) *IntCmd

Publish posts the message to the channel.

func (Tx) Quit

func (c Tx) Quit(_ context.Context) *StatusCmd

func (Tx) RPop

func (c Tx) RPop(ctx context.Context, key string) *StringCmd

func (Tx) RPopCount

func (c Tx) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd

func (Tx) RPopLPush

func (c Tx) RPopLPush(ctx context.Context, source, destination string) *StringCmd

func (Tx) RPush

func (c Tx) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Tx) RPushX

func (c Tx) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd

func (Tx) RandomKey

func (c Tx) RandomKey(ctx context.Context) *StringCmd

func (Tx) ReadOnly

func (c Tx) ReadOnly(ctx context.Context) *StatusCmd

func (Tx) ReadWrite

func (c Tx) ReadWrite(ctx context.Context) *StatusCmd

func (Tx) Rename

func (c Tx) Rename(ctx context.Context, key, newkey string) *StatusCmd

func (Tx) RenameNX

func (c Tx) RenameNX(ctx context.Context, key, newkey string) *BoolCmd

func (Tx) Restore

func (c Tx) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Tx) RestoreReplace

func (c Tx) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd

func (Tx) SAdd

func (c Tx) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Tx) SCard

func (c Tx) SCard(ctx context.Context, key string) *IntCmd

func (Tx) SDiff

func (c Tx) SDiff(ctx context.Context, keys ...string) *StringSliceCmd

func (Tx) SDiffStore

func (c Tx) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Tx) SInter

func (c Tx) SInter(ctx context.Context, keys ...string) *StringSliceCmd

func (Tx) SInterCard

func (c Tx) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Tx) SInterStore

func (c Tx) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Tx) SIsMember

func (c Tx) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd

func (Tx) SMIsMember

func (c Tx) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd

SMIsMember Redis `SMISMEMBER key member [member ...]` command.

func (Tx) SMembers

func (c Tx) SMembers(ctx context.Context, key string) *StringSliceCmd

SMembers Redis `SMEMBERS key` command output as a slice.

func (Tx) SMembersMap

func (c Tx) SMembersMap(ctx context.Context, key string) *StringStructMapCmd

SMembersMap Redis `SMEMBERS key` command output as a map.

func (Tx) SMove

func (c Tx) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd

func (Tx) SPop

func (c Tx) SPop(ctx context.Context, key string) *StringCmd

SPop Redis `SPOP key` command.

func (Tx) SPopN

func (c Tx) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd

SPopN Redis `SPOP key count` command.

func (Tx) SPublish

func (c Tx) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd

func (Tx) SRandMember

func (c Tx) SRandMember(ctx context.Context, key string) *StringCmd

SRandMember Redis `SRANDMEMBER key` command.

func (Tx) SRandMemberN

func (c Tx) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd

SRandMemberN Redis `SRANDMEMBER key count` command.

func (Tx) SRem

func (c Tx) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Tx) SScan

func (c Tx) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Tx) SUnion

func (c Tx) SUnion(ctx context.Context, keys ...string) *StringSliceCmd

func (Tx) SUnionStore

func (c Tx) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd

func (Tx) Save

func (c Tx) Save(ctx context.Context) *StatusCmd

func (Tx) Scan

func (c Tx) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd

func (Tx) ScanType

func (c Tx) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd

func (Tx) ScriptExists

func (c Tx) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd

func (Tx) ScriptFlush

func (c Tx) ScriptFlush(ctx context.Context) *StatusCmd

func (Tx) ScriptKill

func (c Tx) ScriptKill(ctx context.Context) *StatusCmd

func (Tx) ScriptLoad

func (c Tx) ScriptLoad(ctx context.Context, script string) *StringCmd

func (Tx) Select

func (c Tx) Select(ctx context.Context, index int) *StatusCmd

func (Tx) Set

func (c Tx) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

Set Redis `SET key value [expiration]` command. Use expiration for `SETEx`-like behavior.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Tx) SetArgs

func (c Tx) SetArgs(ctx context.Context, key string, value interface{}, a SetArgs) *StatusCmd

SetArgs supports all the options that the SET command supports. It is the alternative to the Set function when you want to have more control over the options.

func (Tx) SetBit

func (c Tx) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd

func (Tx) SetEx

func (c Tx) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd

SetEx Redis `SETEx key expiration value` command.

func (Tx) SetNX

func (c Tx) SetNX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetNX Redis `SET key value [expiration] NX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Tx) SetRange

func (c Tx) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd

func (Tx) SetXX

func (c Tx) SetXX(ctx context.Context, key string, value interface{}, expiration time.Duration) *BoolCmd

SetXX Redis `SET key value [expiration] XX` command.

Zero expiration means the key has no expiration time. KeepTTL is a Redis KEEPTTL option to keep existing TTL, it requires your redis-server version >= 6.0, otherwise you will receive an error: (error) ERR syntax error.

func (Tx) Shutdown

func (c Tx) Shutdown(ctx context.Context) *StatusCmd

func (Tx) ShutdownNoSave

func (c Tx) ShutdownNoSave(ctx context.Context) *StatusCmd

func (Tx) ShutdownSave

func (c Tx) ShutdownSave(ctx context.Context) *StatusCmd

func (Tx) SlaveOf

func (c Tx) SlaveOf(ctx context.Context, host, port string) *StatusCmd

func (Tx) SlowLogGet

func (c Tx) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd

func (Tx) Sort

func (c Tx) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Tx) SortInterfaces

func (c Tx) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd

func (Tx) SortRO

func (c Tx) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd

func (Tx) SortStore

func (c Tx) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd

func (Tx) StrLen

func (c Tx) StrLen(ctx context.Context, key string) *IntCmd

func (*Tx) String

func (c *Tx) String() string

func (Tx) SwapDB

func (c Tx) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd

func (Tx) Sync

func (c Tx) Sync(_ context.Context)

func (Tx) TDigestAdd

func (c Tx) TDigestAdd(ctx context.Context, key string, elements ...float64) *StatusCmd

TDigestAdd adds one or more elements to a t-Digest data structure. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.add/

func (Tx) TDigestByRank

func (c Tx) TDigestByRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRank returns an array of values from a t-Digest data structure based on their rank. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrank/

func (Tx) TDigestByRevRank

func (c Tx) TDigestByRevRank(ctx context.Context, key string, rank ...uint64) *FloatSliceCmd

TDigestByRevRank returns an array of values from a t-Digest data structure based on their reverse rank. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of floats representing the values at the specified ranks or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.byrevrank/

func (Tx) TDigestCDF

func (c Tx) TDigestCDF(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestCDF returns an array of cumulative distribution function (CDF) values for one or more elements in a t-Digest data structure. The CDF value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the CDF values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.cdf/

func (Tx) TDigestCreate

func (c Tx) TDigestCreate(ctx context.Context, key string) *StatusCmd

TDigestCreate creates an empty t-Digest data structure with default parameters. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Tx) TDigestCreateWithCompression

func (c Tx) TDigestCreateWithCompression(ctx context.Context, key string, compression int64) *StatusCmd

TDigestCreateWithCompression creates an empty t-Digest data structure with a specified compression parameter. The compression parameter controls the accuracy and memory usage of the t-Digest. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.create/

func (Tx) TDigestInfo

func (c Tx) TDigestInfo(ctx context.Context, key string) *TDigestInfoCmd

TDigestInfo returns information about a t-Digest data structure. For more information - https://redis.io/commands/tdigest.info/

func (Tx) TDigestMax

func (c Tx) TDigestMax(ctx context.Context, key string) *FloatCmd

TDigestMax returns the maximum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.max/

func (Tx) TDigestMerge

func (c Tx) TDigestMerge(ctx context.Context, destKey string, options *TDigestMergeOptions, sourceKeys ...string) *StatusCmd

TDigestMerge merges multiple t-Digest data structures into a single t-Digest. This function also allows for specifying additional options such as compression and override behavior. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.merge/

func (Tx) TDigestMin

func (c Tx) TDigestMin(ctx context.Context, key string) *FloatCmd

TDigestMin returns the minimum value from a t-Digest data structure. For more information - https://redis.io/commands/tdigest.min/

func (Tx) TDigestQuantile

func (c Tx) TDigestQuantile(ctx context.Context, key string, elements ...float64) *FloatSliceCmd

TDigestQuantile returns an array of quantile values for one or more elements in a t-Digest data structure. The quantile value for an element is the fraction of all elements in the t-Digest that are less than or equal to it. Returns an array of floats representing the quantile values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.quantile/

func (Tx) TDigestRank

func (c Tx) TDigestRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRank returns an array of rank values for one or more elements in a t-Digest data structure. The rank of an element is its position in the sorted list of all elements in the t-Digest. Returns an array of integers representing the rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.rank/

func (Tx) TDigestReset

func (c Tx) TDigestReset(ctx context.Context, key string) *StatusCmd

TDigestReset resets a t-Digest data structure to its initial state. Returns OK on success or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.reset/

func (Tx) TDigestRevRank

func (c Tx) TDigestRevRank(ctx context.Context, key string, values ...float64) *IntSliceCmd

TDigestRevRank returns an array of reverse rank values for one or more elements in a t-Digest data structure. The reverse rank of an element is its position in the sorted list of all elements in the t-Digest when sorted in descending order. Returns an array of integers representing the reverse rank values for each element or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.revrank/

func (Tx) TDigestTrimmedMean

func (c Tx) TDigestTrimmedMean(ctx context.Context, key string, lowCutQuantile, highCutQuantile float64) *FloatCmd

TDigestTrimmedMean returns the trimmed mean value from a t-Digest data structure. The trimmed mean is calculated by removing a specified fraction of the highest and lowest values from the t-Digest and then calculating the mean of the remaining values. Returns a float representing the trimmed mean value or an error if the operation could not be completed. For more information - https://redis.io/commands/tdigest.trimmed_mean/

func (Tx) TFCall

func (c Tx) TFCall(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCall - invoke a function. For more information - https://redis.io/commands/tfcall/

func (Tx) TFCallASYNC

func (c Tx) TFCallASYNC(ctx context.Context, libName string, funcName string, numKeys int) *Cmd

TFCallASYNC - invoke an asynchronous JavaScript function (coroutine). For more information - https://redis.io/commands/TFCallASYNC/

func (Tx) TFCallASYNCArgs

func (c Tx) TFCallASYNCArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Tx) TFCallArgs

func (c Tx) TFCallArgs(ctx context.Context, libName string, funcName string, numKeys int, options *TFCallOptions) *Cmd

func (Tx) TFunctionDelete

func (c Tx) TFunctionDelete(ctx context.Context, libName string) *StatusCmd

TFunctionDelete - delete a JavaScript library from Redis. For more information - https://redis.io/commands/tfunction-delete/

func (Tx) TFunctionList

func (c Tx) TFunctionList(ctx context.Context) *MapStringInterfaceSliceCmd

TFunctionList - list the functions with additional information about each function. For more information - https://redis.io/commands/tfunction-list/

func (Tx) TFunctionListArgs

func (c Tx) TFunctionListArgs(ctx context.Context, options *TFunctionListOptions) *MapStringInterfaceSliceCmd

func (Tx) TFunctionLoad

func (c Tx) TFunctionLoad(ctx context.Context, lib string) *StatusCmd

TFunctionLoad - load a new JavaScript library into Redis. For more information - https://redis.io/commands/tfunction-load/

func (Tx) TFunctionLoadArgs

func (c Tx) TFunctionLoadArgs(ctx context.Context, lib string, options *TFunctionLoadOptions) *StatusCmd

func (Tx) TSAdd

func (c Tx) TSAdd(ctx context.Context, key string, timestamp interface{}, value float64) *IntCmd

TSAdd - Adds one or more observations to a t-digest sketch. For more information - https://redis.io/commands/ts.add/

func (Tx) TSAddWithArgs

func (c Tx) TSAddWithArgs(ctx context.Context, key string, timestamp interface{}, value float64, options *TSOptions) *IntCmd

TSAddWithArgs - Adds one or more observations to a t-digest sketch. This function also allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.add/

func (Tx) TSAlter

func (c Tx) TSAlter(ctx context.Context, key string, options *TSAlterOptions) *StatusCmd

TSAlter - Alters an existing time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize and DuplicatePolicy. For more information - https://redis.io/commands/ts.alter/

func (Tx) TSCreate

func (c Tx) TSCreate(ctx context.Context, key string) *StatusCmd

TSCreate - Creates a new time-series key. For more information - https://redis.io/commands/ts.create/

func (Tx) TSCreateRule

func (c Tx) TSCreateRule(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int) *StatusCmd

TSCreateRule - Creates a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.createrule/

func (Tx) TSCreateRuleWithArgs

func (c Tx) TSCreateRuleWithArgs(ctx context.Context, sourceKey string, destKey string, aggregator Aggregator, bucketDuration int, options *TSCreateRuleOptions) *StatusCmd

TSCreateRuleWithArgs - Creates a compaction rule from sourceKey to destKey with additional option. This function allows for specifying additional option such as: alignTimestamp. For more information - https://redis.io/commands/ts.createrule/

func (Tx) TSCreateWithArgs

func (c Tx) TSCreateWithArgs(ctx context.Context, key string, options *TSOptions) *StatusCmd

TSCreateWithArgs - Creates a new time-series key with additional options. This function allows for specifying additional options such as: Retention, ChunkSize, Encoding, DuplicatePolicy and Labels. For more information - https://redis.io/commands/ts.create/

func (Tx) TSDecrBy

func (c Tx) TSDecrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSDecrBy - Decrements the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.decrby/

func (Tx) TSDecrByWithArgs

func (c Tx) TSDecrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSDecrByWithArgs - Decrements the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.decrby/

func (Tx) TSDel

func (c Tx) TSDel(ctx context.Context, Key string, fromTimestamp int, toTimestamp int) *IntCmd

TSDel - Deletes a range of samples from a time-series key. For more information - https://redis.io/commands/ts.del/

func (Tx) TSDeleteRule

func (c Tx) TSDeleteRule(ctx context.Context, sourceKey string, destKey string) *StatusCmd

TSDeleteRule - Deletes a compaction rule from sourceKey to destKey. For more information - https://redis.io/commands/ts.deleterule/

func (Tx) TSGet

func (c Tx) TSGet(ctx context.Context, key string) *TSTimestampValueCmd

TSGet - Gets the last sample of a time-series key. For more information - https://redis.io/commands/ts.get/

func (Tx) TSGetWithArgs

func (c Tx) TSGetWithArgs(ctx context.Context, key string, options *TSGetOptions) *TSTimestampValueCmd

TSGetWithArgs - Gets the last sample of a time-series key with additional option. This function allows for specifying additional option such as: Latest. For more information - https://redis.io/commands/ts.get/

func (Tx) TSIncrBy

func (c Tx) TSIncrBy(ctx context.Context, Key string, timestamp float64) *IntCmd

TSIncrBy - Increments the value of a time-series key by the specified timestamp. For more information - https://redis.io/commands/ts.incrby/

func (Tx) TSIncrByWithArgs

func (c Tx) TSIncrByWithArgs(ctx context.Context, key string, timestamp float64, options *TSIncrDecrOptions) *IntCmd

TSIncrByWithArgs - Increments the value of a time-series key by the specified timestamp with additional options. This function allows for specifying additional options such as: Timestamp, Retention, ChunkSize, Uncompressed and Labels. For more information - https://redis.io/commands/ts.incrby/

func (Tx) TSInfo

func (c Tx) TSInfo(ctx context.Context, key string) *MapStringInterfaceCmd

TSInfo - Returns information about a time-series key. For more information - https://redis.io/commands/ts.info/

func (Tx) TSInfoWithArgs

func (c Tx) TSInfoWithArgs(ctx context.Context, key string, options *TSInfoOptions) *MapStringInterfaceCmd

TSInfoWithArgs - Returns information about a time-series key with additional option. This function allows for specifying additional option such as: Debug. For more information - https://redis.io/commands/ts.info/

func (Tx) TSMAdd

func (c Tx) TSMAdd(ctx context.Context, ktvSlices [][]interface{}) *IntSliceCmd

TSMAdd - Adds multiple samples to multiple time-series keys. It accepts a slice of 'ktv' slices, each containing exactly three elements: key, timestamp, and value. This struct must be provided for this command to work. For more information - https://redis.io/commands/ts.madd/

func (Tx) TSMGet

func (c Tx) TSMGet(ctx context.Context, filters []string) *MapStringSliceInterfaceCmd

TSMGet - Returns the last sample of multiple time-series keys. For more information - https://redis.io/commands/ts.mget/

func (Tx) TSMGetWithArgs

func (c Tx) TSMGetWithArgs(ctx context.Context, filters []string, options *TSMGetOptions) *MapStringSliceInterfaceCmd

TSMGetWithArgs - Returns the last sample of multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, WithLabels and SelectedLabels. For more information - https://redis.io/commands/ts.mget/

func (Tx) TSMRange

func (c Tx) TSMRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRange - Returns a range of samples from multiple time-series keys. For more information - https://redis.io/commands/ts.mrange/

func (Tx) TSMRangeWithArgs

func (c Tx) TSMRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRangeOptions) *MapStringSliceInterfaceCmd

TSMRangeWithArgs - Returns a range of samples from multiple time-series keys with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrange/

func (Tx) TSMRevRange

func (c Tx) TSMRevRange(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string) *MapStringSliceInterfaceCmd

TSMRevRange - Returns a range of samples from multiple time-series keys in reverse order. For more information - https://redis.io/commands/ts.mrevrange/

func (Tx) TSMRevRangeWithArgs

func (c Tx) TSMRevRangeWithArgs(ctx context.Context, fromTimestamp int, toTimestamp int, filterExpr []string, options *TSMRevRangeOptions) *MapStringSliceInterfaceCmd

TSMRevRangeWithArgs - Returns a range of samples from multiple time-series keys in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, WithLabels, SelectedLabels, Count, Align, Aggregator, BucketDuration, BucketTimestamp, Empty, GroupByLabel and Reducer. For more information - https://redis.io/commands/ts.mrevrange/

func (Tx) TSQueryIndex

func (c Tx) TSQueryIndex(ctx context.Context, filterExpr []string) *StringSliceCmd

TSQueryIndex - Returns all the keys matching the filter expression. For more information - https://redis.io/commands/ts.queryindex/

func (Tx) TSRange

func (c Tx) TSRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRange - Returns a range of samples from a time-series key. For more information - https://redis.io/commands/ts.range/

func (Tx) TSRangeWithArgs

func (c Tx) TSRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRangeOptions) *TSTimestampValueSliceCmd

TSRangeWithArgs - Returns a range of samples from a time-series key with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.range/

func (Tx) TSRevRange

func (c Tx) TSRevRange(ctx context.Context, key string, fromTimestamp int, toTimestamp int) *TSTimestampValueSliceCmd

TSRevRange - Returns a range of samples from a time-series key in reverse order. For more information - https://redis.io/commands/ts.revrange/

func (Tx) TSRevRangeWithArgs

func (c Tx) TSRevRangeWithArgs(ctx context.Context, key string, fromTimestamp int, toTimestamp int, options *TSRevRangeOptions) *TSTimestampValueSliceCmd

TSRevRangeWithArgs - Returns a range of samples from a time-series key in reverse order with additional options. This function allows for specifying additional options such as: Latest, FilterByTS, FilterByValue, Count, Align, Aggregator, BucketDuration, BucketTimestamp and Empty. For more information - https://redis.io/commands/ts.revrange/

func (Tx) TTL

func (c Tx) TTL(ctx context.Context, key string) *DurationCmd

func (Tx) Time

func (c Tx) Time(ctx context.Context) *TimeCmd

func (Tx) TopKAdd

func (c Tx) TopKAdd(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKAdd adds one or more elements to a Top-K filter. Returns an array of strings representing the items that were removed from the filter, if any. For more information - https://redis.io/commands/topk.add/

func (Tx) TopKCount

func (c Tx) TopKCount(ctx context.Context, key string, elements ...interface{}) *IntSliceCmd

TopKCount returns an estimate of the number of times an item may be in a Top-K filter. For more information - https://redis.io/commands/topk.count/

func (Tx) TopKIncrBy

func (c Tx) TopKIncrBy(ctx context.Context, key string, elements ...interface{}) *StringSliceCmd

TopKIncrBy increases the count of one or more items in a Top-K filter. For more information - https://redis.io/commands/topk.incrby/

func (Tx) TopKInfo

func (c Tx) TopKInfo(ctx context.Context, key string) *TopKInfoCmd

TopKInfo returns information about a Top-K filter. For more information - https://redis.io/commands/topk.info/

func (Tx) TopKList

func (c Tx) TopKList(ctx context.Context, key string) *StringSliceCmd

TopKList returns all items in Top-K list. For more information - https://redis.io/commands/topk.list/

func (Tx) TopKListWithCount

func (c Tx) TopKListWithCount(ctx context.Context, key string) *MapStringIntCmd

TopKListWithCount returns all items in Top-K list with their respective count. For more information - https://redis.io/commands/topk.list/

func (Tx) TopKQuery

func (c Tx) TopKQuery(ctx context.Context, key string, elements ...interface{}) *BoolSliceCmd

TopKQuery check if multiple elements exist in a Top-K filter. Returns an array of booleans indicating whether each element exists in the filter or not. For more information - https://redis.io/commands/topk.query/

func (Tx) TopKReserve

func (c Tx) TopKReserve(ctx context.Context, key string, k int64) *StatusCmd

TopKReserve creates an empty Top-K filter with the specified number of top items to keep. For more information - https://redis.io/commands/topk.reserve/

func (Tx) TopKReserveWithOptions

func (c Tx) TopKReserveWithOptions(ctx context.Context, key string, k int64, width, depth int64, decay float64) *StatusCmd

TopKReserveWithOptions creates an empty Top-K filter with the specified number of top items to keep and additional options. This function allows for specifying additional options such as width, depth and decay. For more information - https://redis.io/commands/topk.reserve/

func (Tx) Touch

func (c Tx) Touch(ctx context.Context, keys ...string) *IntCmd

func (*Tx) TxPipeline

func (c *Tx) TxPipeline() Pipeliner

TxPipeline creates a pipeline. Usually it is more convenient to use TxPipelined.

func (*Tx) TxPipelined

func (c *Tx) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)

TxPipelined executes commands queued in the fn in the transaction.

When using WATCH, EXEC will execute commands only if the watched keys were not modified, allowing for a check-and-set mechanism.

Exec always returns list of commands. If transaction fails TxFailedErr is returned. Otherwise Exec returns an error of the first failed command or nil.

func (Tx) Type

func (c Tx) Type(ctx context.Context, key string) *StatusCmd
func (c Tx) Unlink(ctx context.Context, keys ...string) *IntCmd

func (*Tx) Unwatch

func (c *Tx) Unwatch(ctx context.Context, keys ...string) *StatusCmd

Unwatch flushes all the previously watched keys for a transaction.

func (Tx) Wait

func (c Tx) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd

func (Tx) WaitAOF

func (c Tx) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd

func (*Tx) Watch

func (c *Tx) Watch(ctx context.Context, keys ...string) *StatusCmd

Watch marks the keys to be watched for conditional execution of a transaction.

func (Tx) XAck

func (c Tx) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd

func (Tx) XAdd

func (c Tx) XAdd(ctx context.Context, a *XAddArgs) *StringCmd

func (Tx) XAutoClaim

func (c Tx) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd

func (Tx) XAutoClaimJustID

func (c Tx) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd

func (Tx) XClaim

func (c Tx) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd

func (Tx) XClaimJustID

func (c Tx) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd

func (Tx) XDel

func (c Tx) XDel(ctx context.Context, stream string, ids ...string) *IntCmd

func (Tx) XGroupCreate

func (c Tx) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd

func (Tx) XGroupCreateConsumer

func (c Tx) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Tx) XGroupCreateMkStream

func (c Tx) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd

func (Tx) XGroupDelConsumer

func (c Tx) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd

func (Tx) XGroupDestroy

func (c Tx) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd

func (Tx) XGroupSetID

func (c Tx) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd

func (Tx) XInfoConsumers

func (c Tx) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd

func (Tx) XInfoGroups

func (c Tx) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd

func (Tx) XInfoStream

func (c Tx) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd

func (Tx) XInfoStreamFull

func (c Tx) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd

XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.

func (Tx) XLen

func (c Tx) XLen(ctx context.Context, stream string) *IntCmd

func (Tx) XPending

func (c Tx) XPending(ctx context.Context, stream, group string) *XPendingCmd

func (Tx) XPendingExt

func (c Tx) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd

func (Tx) XRange

func (c Tx) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Tx) XRangeN

func (c Tx) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Tx) XRead

func (c Tx) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd

func (Tx) XReadGroup

func (c Tx) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd

func (Tx) XReadStreams

func (c Tx) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd

func (Tx) XRevRange

func (c Tx) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd

func (Tx) XRevRangeN

func (c Tx) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd

func (Tx) XTrimMaxLen

func (c Tx) XTrimMaxLen(ctx context.Context, key string, maxLen int64) *IntCmd

XTrimMaxLen No `~` rules are used, `limit` cannot be used. cmd: XTRIM key MAXLEN maxLen

func (Tx) XTrimMaxLenApprox

func (c Tx) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd

func (Tx) XTrimMinID

func (c Tx) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd

func (Tx) XTrimMinIDApprox

func (c Tx) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd

func (Tx) ZAdd

func (c Tx) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd

ZAdd Redis `ZADD key score member [score member ...]` command.

func (Tx) ZAddArgs

func (c Tx) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd

func (Tx) ZAddArgsIncr

func (c Tx) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd

func (Tx) ZAddGT

func (c Tx) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddGT Redis `ZADD key GT score member [score member ...]` command.

func (Tx) ZAddLT

func (c Tx) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd

ZAddLT Redis `ZADD key LT score member [score member ...]` command.

func (Tx) ZAddNX

func (c Tx) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddNX Redis `ZADD key NX score member [score member ...]` command.

func (Tx) ZAddXX

func (c Tx) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd

ZAddXX Redis `ZADD key XX score member [score member ...]` command.

func (Tx) ZCard

func (c Tx) ZCard(ctx context.Context, key string) *IntCmd

func (Tx) ZCount

func (c Tx) ZCount(ctx context.Context, key, min, max string) *IntCmd

func (Tx) ZDiff

func (c Tx) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd

ZDiff redis-server version >= 6.2.0.

func (Tx) ZDiffStore

func (c Tx) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd

ZDiffStore redis-server version >=6.2.0.

func (Tx) ZDiffWithScores

func (c Tx) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd

ZDiffWithScores redis-server version >= 6.2.0.

func (Tx) ZIncrBy

func (c Tx) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd

func (Tx) ZInter

func (c Tx) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd

func (Tx) ZInterCard

func (c Tx) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd

func (Tx) ZInterStore

func (c Tx) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd

func (Tx) ZInterWithScores

func (c Tx) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd

func (Tx) ZLexCount

func (c Tx) ZLexCount(ctx context.Context, key, min, max string) *IntCmd

func (Tx) ZMPop

func (c Tx) ZMPop(ctx context.Context, order string, count int64, keys ...string) *ZSliceWithKeyCmd

ZMPop Pops one or more elements with the highest or lowest score from the first non-empty sorted set key from the list of provided key names. direction: "max" (highest score) or "min" (lowest score), count: > 0 example: client.ZMPop(ctx, "max", 5, "set1", "set2")

func (Tx) ZMScore

func (c Tx) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd

func (Tx) ZPopMax

func (c Tx) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Tx) ZPopMin

func (c Tx) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd

func (Tx) ZRandMember

func (c Tx) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd

ZRandMember redis-server version >= 6.2.0.

func (Tx) ZRandMemberWithScores

func (c Tx) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd

ZRandMemberWithScores redis-server version >= 6.2.0.

func (Tx) ZRange

func (c Tx) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Tx) ZRangeArgs

func (c Tx) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd

func (Tx) ZRangeArgsWithScores

func (c Tx) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd

func (Tx) ZRangeByLex

func (c Tx) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Tx) ZRangeByScore

func (c Tx) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Tx) ZRangeByScoreWithScores

func (c Tx) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Tx) ZRangeStore

func (c Tx) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd

func (Tx) ZRangeWithScores

func (c Tx) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

func (Tx) ZRank

func (c Tx) ZRank(ctx context.Context, key, member string) *IntCmd

func (Tx) ZRankWithScore

func (c Tx) ZRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

ZRankWithScore according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Tx) ZRem

func (c Tx) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd

func (Tx) ZRemRangeByLex

func (c Tx) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd

func (Tx) ZRemRangeByRank

func (c Tx) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd

func (Tx) ZRemRangeByScore

func (c Tx) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd

func (Tx) ZRevRange

func (c Tx) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd

func (Tx) ZRevRangeByLex

func (c Tx) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Tx) ZRevRangeByScore

func (c Tx) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd

func (Tx) ZRevRangeByScoreWithScores

func (c Tx) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd

func (Tx) ZRevRangeWithScores

func (c Tx) ZRevRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd

ZRevRangeWithScores according to the Redis documentation, if member does not exist in the sorted set or key does not exist, it will return a redis.Nil error.

func (Tx) ZRevRank

func (c Tx) ZRevRank(ctx context.Context, key, member string) *IntCmd

func (Tx) ZRevRankWithScore

func (c Tx) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd

func (Tx) ZScan

func (c Tx) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd

func (Tx) ZScore

func (c Tx) ZScore(ctx context.Context, key, member string) *FloatCmd

func (Tx) ZUnion

func (c Tx) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd

func (Tx) ZUnionStore

func (c Tx) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd

func (Tx) ZUnionWithScores

func (c Tx) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd

type UniversalClient

type UniversalClient interface {
	Cmdable
	AddHook(Hook)
	Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error
	Do(ctx context.Context, args ...interface{}) *Cmd
	Process(ctx context.Context, cmd Cmder) error
	Subscribe(ctx context.Context, channels ...string) *PubSub
	PSubscribe(ctx context.Context, channels ...string) *PubSub
	SSubscribe(ctx context.Context, channels ...string) *PubSub
	Close() error
	PoolStats() *PoolStats
}

UniversalClient is an abstract client which - based on the provided options - represents either a ClusterClient, a FailoverClient, or a single-node Client. This can be useful for testing cluster-specific applications locally or having different clients in different environments.

func NewUniversalClient

func NewUniversalClient(opts *UniversalOptions) UniversalClient

NewUniversalClient returns a new multi client. The type of the returned client depends on the following conditions:

1. If the MasterName option is specified, a sentinel-backed FailoverClient is returned. 2. if the number of Addrs is two or more, a ClusterClient is returned. 3. Otherwise, a single-node Client is returned.

Example (Cluster)
rdb := redis.NewUniversalClient(&redis.UniversalOptions{
	Addrs: []string{":7000", ":7001", ":7002", ":7003", ":7004", ":7005"},
})
defer rdb.Close()

rdb.Ping(ctx)
Output:

Example (Failover)
rdb := redis.NewUniversalClient(&redis.UniversalOptions{
	MasterName: "master",
	Addrs:      []string{":26379"},
})
defer rdb.Close()

rdb.Ping(ctx)
Output:

Example (Simple)
rdb := redis.NewUniversalClient(&redis.UniversalOptions{
	Addrs: []string{":6379"},
})
defer rdb.Close()

rdb.Ping(ctx)
Output:

type UniversalOptions

type UniversalOptions struct {
	// Either a single address or a seed list of host:port addresses
	// of cluster/sentinel nodes.
	Addrs []string

	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn.
	ClientName string

	// Database to be selected after connecting to the server.
	// Only single-node and failover clients.
	DB int

	Dialer    func(ctx context.Context, network, addr string) (net.Conn, error)
	OnConnect func(ctx context.Context, cn *Conn) error

	Protocol         int
	Username         string
	Password         string
	SentinelUsername string
	SentinelPassword string

	MaxRetries      int
	MinRetryBackoff time.Duration
	MaxRetryBackoff time.Duration

	DialTimeout           time.Duration
	ReadTimeout           time.Duration
	WriteTimeout          time.Duration
	ContextTimeoutEnabled bool

	// PoolFIFO uses FIFO mode for each node connection pool GET/PUT (default LIFO).
	PoolFIFO bool

	PoolSize        int
	PoolTimeout     time.Duration
	MinIdleConns    int
	MaxIdleConns    int
	MaxActiveConns  int
	ConnMaxIdleTime time.Duration
	ConnMaxLifetime time.Duration

	TLSConfig *tls.Config

	MaxRedirects   int
	ReadOnly       bool
	RouteByLatency bool
	RouteRandomly  bool

	MasterName string

	DisableIndentity bool
	IdentitySuffix   string
}

UniversalOptions information is required by UniversalClient to establish connections.

func (*UniversalOptions) Cluster

func (o *UniversalOptions) Cluster() *ClusterOptions

Cluster returns cluster options created from the universal options.

func (*UniversalOptions) Failover

func (o *UniversalOptions) Failover() *FailoverOptions

Failover returns failover options created from the universal options.

func (*UniversalOptions) Simple

func (o *UniversalOptions) Simple() *Options

Simple returns basic options created from the universal options.

type XAddArgs

type XAddArgs struct {
	Stream     string
	NoMkStream bool
	MaxLen     int64 // MAXLEN N
	MinID      string
	// Approx causes MaxLen and MinID to use "~" matcher (instead of "=").
	Approx bool
	Limit  int64
	ID     string
	Values interface{}
}

XAddArgs accepts values in the following formats:

  • XAddArgs.Values = []interface{}{"key1", "value1", "key2", "value2"}
  • XAddArgs.Values = []string("key1", "value1", "key2", "value2")
  • XAddArgs.Values = map[string]interface{}{"key1": "value1", "key2": "value2"}

Note that map will not preserve the order of key-value pairs. MaxLen/MaxLenApprox and MinID are in conflict, only one of them can be used.

type XAutoClaimArgs

type XAutoClaimArgs struct {
	Stream   string
	Group    string
	MinIdle  time.Duration
	Start    string
	Count    int64
	Consumer string
}

type XAutoClaimCmd

type XAutoClaimCmd struct {
	// contains filtered or unexported fields
}

func NewXAutoClaimCmd

func NewXAutoClaimCmd(ctx context.Context, args ...interface{}) *XAutoClaimCmd

func (*XAutoClaimCmd) Args

func (cmd *XAutoClaimCmd) Args() []interface{}

func (*XAutoClaimCmd) Err

func (cmd *XAutoClaimCmd) Err() error

func (*XAutoClaimCmd) FullName

func (cmd *XAutoClaimCmd) FullName() string

func (*XAutoClaimCmd) Name

func (cmd *XAutoClaimCmd) Name() string

func (*XAutoClaimCmd) Result

func (cmd *XAutoClaimCmd) Result() (messages []XMessage, start string, err error)

func (*XAutoClaimCmd) SetErr

func (cmd *XAutoClaimCmd) SetErr(e error)

func (*XAutoClaimCmd) SetFirstKeyPos

func (cmd *XAutoClaimCmd) SetFirstKeyPos(keyPos int8)

func (*XAutoClaimCmd) SetVal

func (cmd *XAutoClaimCmd) SetVal(val []XMessage, start string)

func (*XAutoClaimCmd) String

func (cmd *XAutoClaimCmd) String() string

func (*XAutoClaimCmd) Val

func (cmd *XAutoClaimCmd) Val() (messages []XMessage, start string)

type XAutoClaimJustIDCmd

type XAutoClaimJustIDCmd struct {
	// contains filtered or unexported fields
}

func NewXAutoClaimJustIDCmd

func NewXAutoClaimJustIDCmd(ctx context.Context, args ...interface{}) *XAutoClaimJustIDCmd

func (*XAutoClaimJustIDCmd) Args

func (cmd *XAutoClaimJustIDCmd) Args() []interface{}

func (*XAutoClaimJustIDCmd) Err

func (cmd *XAutoClaimJustIDCmd) Err() error

func (*XAutoClaimJustIDCmd) FullName

func (cmd *XAutoClaimJustIDCmd) FullName() string

func (*XAutoClaimJustIDCmd) Name

func (cmd *XAutoClaimJustIDCmd) Name() string

func (*XAutoClaimJustIDCmd) Result

func (cmd *XAutoClaimJustIDCmd) Result() (ids []string, start string, err error)

func (*XAutoClaimJustIDCmd) SetErr

func (cmd *XAutoClaimJustIDCmd) SetErr(e error)

func (*XAutoClaimJustIDCmd) SetFirstKeyPos

func (cmd *XAutoClaimJustIDCmd) SetFirstKeyPos(keyPos int8)

func (*XAutoClaimJustIDCmd) SetVal

func (cmd *XAutoClaimJustIDCmd) SetVal(val []string, start string)

func (*XAutoClaimJustIDCmd) String

func (cmd *XAutoClaimJustIDCmd) String() string

func (*XAutoClaimJustIDCmd) Val

func (cmd *XAutoClaimJustIDCmd) Val() (ids []string, start string)

type XClaimArgs

type XClaimArgs struct {
	Stream   string
	Group    string
	Consumer string
	MinIdle  time.Duration
	Messages []string
}

type XInfoConsumer

type XInfoConsumer struct {
	Name     string
	Pending  int64
	Idle     time.Duration
	Inactive time.Duration
}

type XInfoConsumersCmd

type XInfoConsumersCmd struct {
	// contains filtered or unexported fields
}

func NewXInfoConsumersCmd

func NewXInfoConsumersCmd(ctx context.Context, stream string, group string) *XInfoConsumersCmd

func (*XInfoConsumersCmd) Args

func (cmd *XInfoConsumersCmd) Args() []interface{}

func (*XInfoConsumersCmd) Err

func (cmd *XInfoConsumersCmd) Err() error

func (*XInfoConsumersCmd) FullName

func (cmd *XInfoConsumersCmd) FullName() string

func (*XInfoConsumersCmd) Name

func (cmd *XInfoConsumersCmd) Name() string

func (*XInfoConsumersCmd) Result

func (cmd *XInfoConsumersCmd) Result() ([]XInfoConsumer, error)

func (*XInfoConsumersCmd) SetErr

func (cmd *XInfoConsumersCmd) SetErr(e error)

func (*XInfoConsumersCmd) SetFirstKeyPos

func (cmd *XInfoConsumersCmd) SetFirstKeyPos(keyPos int8)

func (*XInfoConsumersCmd) SetVal

func (cmd *XInfoConsumersCmd) SetVal(val []XInfoConsumer)

func (*XInfoConsumersCmd) String

func (cmd *XInfoConsumersCmd) String() string

func (*XInfoConsumersCmd) Val

func (cmd *XInfoConsumersCmd) Val() []XInfoConsumer

type XInfoGroup

type XInfoGroup struct {
	Name            string
	Consumers       int64
	Pending         int64
	LastDeliveredID string
	EntriesRead     int64
	Lag             int64
}

type XInfoGroupsCmd

type XInfoGroupsCmd struct {
	// contains filtered or unexported fields
}

func NewXInfoGroupsCmd

func NewXInfoGroupsCmd(ctx context.Context, stream string) *XInfoGroupsCmd

func (*XInfoGroupsCmd) Args

func (cmd *XInfoGroupsCmd) Args() []interface{}

func (*XInfoGroupsCmd) Err

func (cmd *XInfoGroupsCmd) Err() error

func (*XInfoGroupsCmd) FullName

func (cmd *XInfoGroupsCmd) FullName() string

func (*XInfoGroupsCmd) Name

func (cmd *XInfoGroupsCmd) Name() string

func (*XInfoGroupsCmd) Result

func (cmd *XInfoGroupsCmd) Result() ([]XInfoGroup, error)

func (*XInfoGroupsCmd) SetErr

func (cmd *XInfoGroupsCmd) SetErr(e error)

func (*XInfoGroupsCmd) SetFirstKeyPos

func (cmd *XInfoGroupsCmd) SetFirstKeyPos(keyPos int8)

func (*XInfoGroupsCmd) SetVal

func (cmd *XInfoGroupsCmd) SetVal(val []XInfoGroup)

func (*XInfoGroupsCmd) String

func (cmd *XInfoGroupsCmd) String() string

func (*XInfoGroupsCmd) Val

func (cmd *XInfoGroupsCmd) Val() []XInfoGroup

type XInfoStream

type XInfoStream struct {
	Length               int64
	RadixTreeKeys        int64
	RadixTreeNodes       int64
	Groups               int64
	LastGeneratedID      string
	MaxDeletedEntryID    string
	EntriesAdded         int64
	FirstEntry           XMessage
	LastEntry            XMessage
	RecordedFirstEntryID string
}

type XInfoStreamCmd

type XInfoStreamCmd struct {
	// contains filtered or unexported fields
}

func NewXInfoStreamCmd

func NewXInfoStreamCmd(ctx context.Context, stream string) *XInfoStreamCmd

func (*XInfoStreamCmd) Args

func (cmd *XInfoStreamCmd) Args() []interface{}

func (*XInfoStreamCmd) Err

func (cmd *XInfoStreamCmd) Err() error

func (*XInfoStreamCmd) FullName

func (cmd *XInfoStreamCmd) FullName() string

func (*XInfoStreamCmd) Name

func (cmd *XInfoStreamCmd) Name() string

func (*XInfoStreamCmd) Result

func (cmd *XInfoStreamCmd) Result() (*XInfoStream, error)

func (*XInfoStreamCmd) SetErr

func (cmd *XInfoStreamCmd) SetErr(e error)

func (*XInfoStreamCmd) SetFirstKeyPos

func (cmd *XInfoStreamCmd) SetFirstKeyPos(keyPos int8)

func (*XInfoStreamCmd) SetVal

func (cmd *XInfoStreamCmd) SetVal(val *XInfoStream)

func (*XInfoStreamCmd) String

func (cmd *XInfoStreamCmd) String() string

func (*XInfoStreamCmd) Val

func (cmd *XInfoStreamCmd) Val() *XInfoStream

type XInfoStreamConsumer

type XInfoStreamConsumer struct {
	Name       string
	SeenTime   time.Time
	ActiveTime time.Time
	PelCount   int64
	Pending    []XInfoStreamConsumerPending
}

type XInfoStreamConsumerPending

type XInfoStreamConsumerPending struct {
	ID            string
	DeliveryTime  time.Time
	DeliveryCount int64
}

type XInfoStreamFull

type XInfoStreamFull struct {
	Length               int64
	RadixTreeKeys        int64
	RadixTreeNodes       int64
	LastGeneratedID      string
	MaxDeletedEntryID    string
	EntriesAdded         int64
	Entries              []XMessage
	Groups               []XInfoStreamGroup
	RecordedFirstEntryID string
}

type XInfoStreamFullCmd

type XInfoStreamFullCmd struct {
	// contains filtered or unexported fields
}

func NewXInfoStreamFullCmd

func NewXInfoStreamFullCmd(ctx context.Context, args ...interface{}) *XInfoStreamFullCmd

func (*XInfoStreamFullCmd) Args

func (cmd *XInfoStreamFullCmd) Args() []interface{}

func (*XInfoStreamFullCmd) Err

func (cmd *XInfoStreamFullCmd) Err() error

func (*XInfoStreamFullCmd) FullName

func (cmd *XInfoStreamFullCmd) FullName() string

func (*XInfoStreamFullCmd) Name

func (cmd *XInfoStreamFullCmd) Name() string

func (*XInfoStreamFullCmd) Result

func (cmd *XInfoStreamFullCmd) Result() (*XInfoStreamFull, error)

func (*XInfoStreamFullCmd) SetErr

func (cmd *XInfoStreamFullCmd) SetErr(e error)

func (*XInfoStreamFullCmd) SetFirstKeyPos

func (cmd *XInfoStreamFullCmd) SetFirstKeyPos(keyPos int8)

func (*XInfoStreamFullCmd) SetVal

func (cmd *XInfoStreamFullCmd) SetVal(val *XInfoStreamFull)

func (*XInfoStreamFullCmd) String

func (cmd *XInfoStreamFullCmd) String() string

func (*XInfoStreamFullCmd) Val

func (cmd *XInfoStreamFullCmd) Val() *XInfoStreamFull

type XInfoStreamGroup

type XInfoStreamGroup struct {
	Name            string
	LastDeliveredID string
	EntriesRead     int64
	Lag             int64
	PelCount        int64
	Pending         []XInfoStreamGroupPending
	Consumers       []XInfoStreamConsumer
}

type XInfoStreamGroupPending

type XInfoStreamGroupPending struct {
	ID            string
	Consumer      string
	DeliveryTime  time.Time
	DeliveryCount int64
}

type XMessage

type XMessage struct {
	ID     string
	Values map[string]interface{}
}

type XMessageSliceCmd

type XMessageSliceCmd struct {
	// contains filtered or unexported fields
}

func NewXMessageSliceCmd

func NewXMessageSliceCmd(ctx context.Context, args ...interface{}) *XMessageSliceCmd

func NewXMessageSliceCmdResult

func NewXMessageSliceCmdResult(val []XMessage, err error) *XMessageSliceCmd

NewXMessageSliceCmdResult returns a XMessageSliceCmd initialised with val and err for testing.

func (*XMessageSliceCmd) Args

func (cmd *XMessageSliceCmd) Args() []interface{}

func (*XMessageSliceCmd) Err

func (cmd *XMessageSliceCmd) Err() error

func (*XMessageSliceCmd) FullName

func (cmd *XMessageSliceCmd) FullName() string

func (*XMessageSliceCmd) Name

func (cmd *XMessageSliceCmd) Name() string

func (*XMessageSliceCmd) Result

func (cmd *XMessageSliceCmd) Result() ([]XMessage, error)

func (*XMessageSliceCmd) SetErr

func (cmd *XMessageSliceCmd) SetErr(e error)

func (*XMessageSliceCmd) SetFirstKeyPos

func (cmd *XMessageSliceCmd) SetFirstKeyPos(keyPos int8)

func (*XMessageSliceCmd) SetVal

func (cmd *XMessageSliceCmd) SetVal(val []XMessage)

func (*XMessageSliceCmd) String

func (cmd *XMessageSliceCmd) String() string

func (*XMessageSliceCmd) Val

func (cmd *XMessageSliceCmd) Val() []XMessage

type XPending

type XPending struct {
	Count     int64
	Lower     string
	Higher    string
	Consumers map[string]int64
}

type XPendingCmd

type XPendingCmd struct {
	// contains filtered or unexported fields
}

func NewXPendingCmd

func NewXPendingCmd(ctx context.Context, args ...interface{}) *XPendingCmd

func NewXPendingResult

func NewXPendingResult(val *XPending, err error) *XPendingCmd

NewXPendingResult returns a XPendingCmd initialised with val and err for testing.

func (*XPendingCmd) Args

func (cmd *XPendingCmd) Args() []interface{}

func (*XPendingCmd) Err

func (cmd *XPendingCmd) Err() error

func (*XPendingCmd) FullName

func (cmd *XPendingCmd) FullName() string

func (*XPendingCmd) Name

func (cmd *XPendingCmd) Name() string

func (*XPendingCmd) Result

func (cmd *XPendingCmd) Result() (*XPending, error)

func (*XPendingCmd) SetErr

func (cmd *XPendingCmd) SetErr(e error)

func (*XPendingCmd) SetFirstKeyPos

func (cmd *XPendingCmd) SetFirstKeyPos(keyPos int8)

func (*XPendingCmd) SetVal

func (cmd *XPendingCmd) SetVal(val *XPending)

func (*XPendingCmd) String

func (cmd *XPendingCmd) String() string

func (*XPendingCmd) Val

func (cmd *XPendingCmd) Val() *XPending

type XPendingExt

type XPendingExt struct {
	ID         string
	Consumer   string
	Idle       time.Duration
	RetryCount int64
}

type XPendingExtArgs

type XPendingExtArgs struct {
	Stream   string
	Group    string
	Idle     time.Duration
	Start    string
	End      string
	Count    int64
	Consumer string
}

type XPendingExtCmd

type XPendingExtCmd struct {
	// contains filtered or unexported fields
}

func NewXPendingExtCmd

func NewXPendingExtCmd(ctx context.Context, args ...interface{}) *XPendingExtCmd

func (*XPendingExtCmd) Args

func (cmd *XPendingExtCmd) Args() []interface{}

func (*XPendingExtCmd) Err

func (cmd *XPendingExtCmd) Err() error

func (*XPendingExtCmd) FullName

func (cmd *XPendingExtCmd) FullName() string

func (*XPendingExtCmd) Name

func (cmd *XPendingExtCmd) Name() string

func (*XPendingExtCmd) Result

func (cmd *XPendingExtCmd) Result() ([]XPendingExt, error)

func (*XPendingExtCmd) SetErr

func (cmd *XPendingExtCmd) SetErr(e error)

func (*XPendingExtCmd) SetFirstKeyPos

func (cmd *XPendingExtCmd) SetFirstKeyPos(keyPos int8)

func (*XPendingExtCmd) SetVal

func (cmd *XPendingExtCmd) SetVal(val []XPendingExt)

func (*XPendingExtCmd) String

func (cmd *XPendingExtCmd) String() string

func (*XPendingExtCmd) Val

func (cmd *XPendingExtCmd) Val() []XPendingExt

type XReadArgs

type XReadArgs struct {
	Streams []string // list of streams and ids, e.g. stream1 stream2 id1 id2
	Count   int64
	Block   time.Duration
}

type XReadGroupArgs

type XReadGroupArgs struct {
	Group    string
	Consumer string
	Streams  []string // list of streams and ids, e.g. stream1 stream2 id1 id2
	Count    int64
	Block    time.Duration
	NoAck    bool
}

type XStream

type XStream struct {
	Stream   string
	Messages []XMessage
}

type XStreamSliceCmd

type XStreamSliceCmd struct {
	// contains filtered or unexported fields
}

func NewXStreamSliceCmd

func NewXStreamSliceCmd(ctx context.Context, args ...interface{}) *XStreamSliceCmd

func NewXStreamSliceCmdResult

func NewXStreamSliceCmdResult(val []XStream, err error) *XStreamSliceCmd

NewXStreamSliceCmdResult returns a XStreamSliceCmd initialised with val and err for testing.

func (*XStreamSliceCmd) Args

func (cmd *XStreamSliceCmd) Args() []interface{}

func (*XStreamSliceCmd) Err

func (cmd *XStreamSliceCmd) Err() error

func (*XStreamSliceCmd) FullName

func (cmd *XStreamSliceCmd) FullName() string

func (*XStreamSliceCmd) Name

func (cmd *XStreamSliceCmd) Name() string

func (*XStreamSliceCmd) Result

func (cmd *XStreamSliceCmd) Result() ([]XStream, error)

func (*XStreamSliceCmd) SetErr

func (cmd *XStreamSliceCmd) SetErr(e error)

func (*XStreamSliceCmd) SetFirstKeyPos

func (cmd *XStreamSliceCmd) SetFirstKeyPos(keyPos int8)

func (*XStreamSliceCmd) SetVal

func (cmd *XStreamSliceCmd) SetVal(val []XStream)

func (*XStreamSliceCmd) String

func (cmd *XStreamSliceCmd) String() string

func (*XStreamSliceCmd) Val

func (cmd *XStreamSliceCmd) Val() []XStream

type Z

type Z struct {
	Score  float64
	Member interface{}
}

Z represents sorted set member.

type ZAddArgs

type ZAddArgs struct {
	NX      bool
	XX      bool
	LT      bool
	GT      bool
	Ch      bool
	Members []Z
}

ZAddArgs WARN: The GT, LT and NX options are mutually exclusive.

type ZRangeArgs

type ZRangeArgs struct {
	Key string

	// When the ByScore option is provided, the open interval(exclusive) can be set.
	// By default, the score intervals specified by <Start> and <Stop> are closed (inclusive).
	// It is similar to the deprecated(6.2.0+) ZRangeByScore command.
	// For example:
	//		ZRangeArgs{
	//			Key: 				"example-key",
	//	 		Start: 				"(3",
	//	 		Stop: 				8,
	//			ByScore:			true,
	//	 	}
	// 	 	cmd: "ZRange example-key (3 8 ByScore"  (3 < score <= 8).
	//
	// For the ByLex option, it is similar to the deprecated(6.2.0+) ZRangeByLex command.
	// You can set the <Start> and <Stop> options as follows:
	//		ZRangeArgs{
	//			Key: 				"example-key",
	//	 		Start: 				"[abc",
	//	 		Stop: 				"(def",
	//			ByLex:				true,
	//	 	}
	//		cmd: "ZRange example-key [abc (def ByLex"
	//
	// For normal cases (ByScore==false && ByLex==false), <Start> and <Stop> should be set to the index range (int).
	// You can read the documentation for more information: https://redis.io/commands/zrange
	Start interface{}
	Stop  interface{}

	// The ByScore and ByLex options are mutually exclusive.
	ByScore bool
	ByLex   bool

	Rev bool

	// limit offset count.
	Offset int64
	Count  int64
}

ZRangeArgs is all the options of the ZRange command. In version> 6.2.0, you can replace the(cmd):

ZREVRANGE,
ZRANGEBYSCORE,
ZREVRANGEBYSCORE,
ZRANGEBYLEX,
ZREVRANGEBYLEX.

Please pay attention to your redis-server version.

Rev, ByScore, ByLex and Offset+Count options require redis-server 6.2.0 and higher.

type ZRangeBy

type ZRangeBy struct {
	Min, Max      string
	Offset, Count int64
}

type ZSliceCmd

type ZSliceCmd struct {
	// contains filtered or unexported fields
}

func NewZSliceCmd

func NewZSliceCmd(ctx context.Context, args ...interface{}) *ZSliceCmd

func NewZSliceCmdResult

func NewZSliceCmdResult(val []Z, err error) *ZSliceCmd

NewZSliceCmdResult returns a ZSliceCmd initialised with val and err for testing.

func (*ZSliceCmd) Args

func (cmd *ZSliceCmd) Args() []interface{}

func (*ZSliceCmd) Err

func (cmd *ZSliceCmd) Err() error

func (*ZSliceCmd) FullName

func (cmd *ZSliceCmd) FullName() string

func (*ZSliceCmd) Name

func (cmd *ZSliceCmd) Name() string

func (*ZSliceCmd) Result

func (cmd *ZSliceCmd) Result() ([]Z, error)

func (*ZSliceCmd) SetErr

func (cmd *ZSliceCmd) SetErr(e error)

func (*ZSliceCmd) SetFirstKeyPos

func (cmd *ZSliceCmd) SetFirstKeyPos(keyPos int8)

func (*ZSliceCmd) SetVal

func (cmd *ZSliceCmd) SetVal(val []Z)

func (*ZSliceCmd) String

func (cmd *ZSliceCmd) String() string

func (*ZSliceCmd) Val

func (cmd *ZSliceCmd) Val() []Z

type ZSliceWithKeyCmd

type ZSliceWithKeyCmd struct {
	// contains filtered or unexported fields
}

func NewZSliceWithKeyCmd

func NewZSliceWithKeyCmd(ctx context.Context, args ...interface{}) *ZSliceWithKeyCmd

func (*ZSliceWithKeyCmd) Args

func (cmd *ZSliceWithKeyCmd) Args() []interface{}

func (*ZSliceWithKeyCmd) Err

func (cmd *ZSliceWithKeyCmd) Err() error

func (*ZSliceWithKeyCmd) FullName

func (cmd *ZSliceWithKeyCmd) FullName() string

func (*ZSliceWithKeyCmd) Name

func (cmd *ZSliceWithKeyCmd) Name() string

func (*ZSliceWithKeyCmd) Result

func (cmd *ZSliceWithKeyCmd) Result() (string, []Z, error)

func (*ZSliceWithKeyCmd) SetErr

func (cmd *ZSliceWithKeyCmd) SetErr(e error)

func (*ZSliceWithKeyCmd) SetFirstKeyPos

func (cmd *ZSliceWithKeyCmd) SetFirstKeyPos(keyPos int8)

func (*ZSliceWithKeyCmd) SetVal

func (cmd *ZSliceWithKeyCmd) SetVal(key string, val []Z)

func (*ZSliceWithKeyCmd) String

func (cmd *ZSliceWithKeyCmd) String() string

func (*ZSliceWithKeyCmd) Val

func (cmd *ZSliceWithKeyCmd) Val() (string, []Z)

type ZStore

type ZStore struct {
	Keys    []string
	Weights []float64
	// Can be SUM, MIN or MAX.
	Aggregate string
}

ZStore is used as an arg to ZInter/ZInterStore and ZUnion/ZUnionStore.

type ZWithKey

type ZWithKey struct {
	Z
	Key string
}

ZWithKey represents sorted set member including the name of the key where it was popped.

type ZWithKeyCmd

type ZWithKeyCmd struct {
	// contains filtered or unexported fields
}

func NewZWithKeyCmd

func NewZWithKeyCmd(ctx context.Context, args ...interface{}) *ZWithKeyCmd

func NewZWithKeyCmdResult

func NewZWithKeyCmdResult(val *ZWithKey, err error) *ZWithKeyCmd

NewZWithKeyCmdResult returns a ZWithKeyCmd initialised with val and err for testing.

func (*ZWithKeyCmd) Args

func (cmd *ZWithKeyCmd) Args() []interface{}

func (*ZWithKeyCmd) Err

func (cmd *ZWithKeyCmd) Err() error

func (*ZWithKeyCmd) FullName

func (cmd *ZWithKeyCmd) FullName() string

func (*ZWithKeyCmd) Name

func (cmd *ZWithKeyCmd) Name() string

func (*ZWithKeyCmd) Result

func (cmd *ZWithKeyCmd) Result() (*ZWithKey, error)

func (*ZWithKeyCmd) SetErr

func (cmd *ZWithKeyCmd) SetErr(e error)

func (*ZWithKeyCmd) SetFirstKeyPos

func (cmd *ZWithKeyCmd) SetFirstKeyPos(keyPos int8)

func (*ZWithKeyCmd) SetVal

func (cmd *ZWithKeyCmd) SetVal(val *ZWithKey)

func (*ZWithKeyCmd) String

func (cmd *ZWithKeyCmd) String() string

func (*ZWithKeyCmd) Val

func (cmd *ZWithKeyCmd) Val() *ZWithKey

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL