const (
SearchInvalid = SearchAggregator(iota)
SearchAvg
SearchSum
SearchMin
SearchMax
SearchCount
SearchCountDistinct
SearchCountDistinctish
SearchStdDev
SearchQuantile
SearchToList
SearchFirstValue
SearchRandomSample
)
const (
SearchFieldTypeInvalid = SearchFieldType(iota)
SearchFieldTypeNumeric
SearchFieldTypeTag
SearchFieldTypeText
SearchFieldTypeGeo
SearchFieldTypeVector
SearchFieldTypeGeoShape
)
const (
Invalid = Aggregator(iota)
Avg
Sum
Min
Max
Range
Count
First
Last
StdP
StdS
VarP
VarS
Twa
)
const BitCountIndexBit string = "BIT"
const BitCountIndexByte string = "BYTE"
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)
const KeepTTL = -1
Nil reply returned by Redis when key does not exist.
const Nil = proto.Nil
TxFailedErr transaction redis failed.
const TxFailedErr = proto.RedisError("redis: transaction failed")
ErrClosed performs any operation on the closed client will return this error.
var ErrClosed = pool.ErrClosed
ErrCrossSlot is returned when keys are used in the same Redis command and the keys are not in the same hash slot. This error is returned by Redis Cluster and will be returned by the client when TxPipeline or TxPipelined is used on a ClusterClient with keys in different slots.
var ErrCrossSlot = proto.RedisError("CROSSSLOT Keys in request don't hash to the same slot")
ErrPoolExhausted is returned from a pool connection method when the maximum number of database connections in the pool has been reached.
var ErrPoolExhausted = pool.ErrPoolExhausted
ErrPoolTimeout timed out waiting to get a connection from the connection pool.
var ErrPoolTimeout = pool.ErrPoolTimeout
func HasErrorPrefix(err error, prefix string) bool
HasErrorPrefix checks if the err is a Redis error and the message contains a prefix.
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(logger internal.Logging)
SetLogger set custom log
func Version() string
Version is the current release version.
type ACLCatArgs struct {
Category string
}
type ACLCmdable interface {
ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
ACLLog(ctx context.Context, count int64) *ACLLogCmd
ACLLogReset(ctx context.Context) *StatusCmd
ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
ACLDelUser(ctx context.Context, username string) *IntCmd
ACLList(ctx context.Context) *StringSliceCmd
ACLCat(ctx context.Context) *StringSliceCmd
ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
}
type ACLLogCmd struct {
// contains filtered or unexported fields
}
func NewACLLogCmd(ctx context.Context, args ...interface{}) *ACLLogCmd
func (cmd *ACLLogCmd) Args() []interface{}
func (cmd *ACLLogCmd) Err() error
func (cmd *ACLLogCmd) FullName() string
func (cmd *ACLLogCmd) Name() string
func (cmd *ACLLogCmd) Result() ([]*ACLLogEntry, error)
func (cmd *ACLLogCmd) SetErr(e error)
func (cmd *ACLLogCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ACLLogCmd) SetVal(val []*ACLLogEntry)
func (cmd *ACLLogCmd) String() string
func (cmd *ACLLogCmd) Val() []*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 AggregateBuilder struct {
// contains filtered or unexported fields
}
func (b *AggregateBuilder) AddScores() *AggregateBuilder
AddScores includes ADDSCORES.
func (b *AggregateBuilder) Apply(field string, alias ...string) *AggregateBuilder
Apply adds APPLY <field> [AS alias].
func (b *AggregateBuilder) Dialect(version int) *AggregateBuilder
Dialect sets DIALECT <version>.
func (b *AggregateBuilder) Filter(expr string) *AggregateBuilder
Filter sets FILTER <expr>.
func (b *AggregateBuilder) GroupBy(fields ...interface{}) *AggregateBuilder
GroupBy starts a new GROUPBY <fields...> clause.
func (b *AggregateBuilder) Load(field string, alias ...string) *AggregateBuilder
Load adds LOAD <n> <field> [AS alias]... You can call it multiple times for multiple fields.
func (b *AggregateBuilder) LoadAll() *AggregateBuilder
LoadAll includes LOAD * (mutually exclusive with Load).
func (b *AggregateBuilder) Params(p map[string]interface{}) *AggregateBuilder
Params adds PARAMS <k v> pairs.
func (b *AggregateBuilder) Reduce(fn SearchAggregator, args ...interface{}) *AggregateBuilder
Reduce adds a REDUCE <fn> [<#args> <args...>] clause to the *last* GROUPBY.
func (b *AggregateBuilder) ReduceAs(fn SearchAggregator, alias string, args ...interface{}) *AggregateBuilder
ReduceAs does the same but also sets an alias: REDUCE <fn> … AS <alias>
func (b *AggregateBuilder) Run() (*FTAggregateResult, error)
Run executes FT.AGGREGATE and returns a typed result.
func (b *AggregateBuilder) Scorer(s string) *AggregateBuilder
Scorer sets SCORER <scorer>.
func (b *AggregateBuilder) SortBy(field string, asc bool) *AggregateBuilder
SortBy adds SORTBY <field> ASC|DESC.
func (b *AggregateBuilder) SortByMax(max int) *AggregateBuilder
SortByMax sets MAX <n> (only if SortBy was called).
func (b *AggregateBuilder) Timeout(ms int) *AggregateBuilder
Timeout sets TIMEOUT <ms>.
func (b *AggregateBuilder) Verbatim() *AggregateBuilder
Verbatim includes VERBATIM.
func (b *AggregateBuilder) WithCursor(count, maxIdle int) *AggregateBuilder
WithCursor enables WITHCURSOR [COUNT <n>] [MAXIDLE <ms>].
type AggregateCmd struct {
// contains filtered or unexported fields
}
func NewAggregateCmd(ctx context.Context, args ...interface{}) *AggregateCmd
func (cmd *AggregateCmd) Args() []interface{}
func (cmd *AggregateCmd) Err() error
func (cmd *AggregateCmd) FullName() string
func (cmd *AggregateCmd) Name() string
func (cmd *AggregateCmd) RawResult() (interface{}, error)
func (cmd *AggregateCmd) RawVal() interface{}
func (cmd *AggregateCmd) Result() (*FTAggregateResult, error)
func (cmd *AggregateCmd) SetErr(e error)
func (cmd *AggregateCmd) SetFirstKeyPos(keyPos int8)
func (cmd *AggregateCmd) SetVal(val *FTAggregateResult)
func (cmd *AggregateCmd) String() string
func (cmd *AggregateCmd) Val() *FTAggregateResult
type AggregateQuery []interface{}
func FTAggregateQuery(query string, options *FTAggregateOptions) (AggregateQuery, error)
type AggregateRow struct {
Fields map[string]interface{}
}
type Aggregator int
func (a Aggregator) String() string
---------------------- AliasBuilder for FT.ALIAS* commands ---------------------- AliasBuilder is builder for FT.ALIAS* commands EXPERIMENTAL: this API is subject to change, use with caution.
type AliasBuilder struct {
// contains filtered or unexported fields
}
func (b *AliasBuilder) Action(action string) *AliasBuilder
Action sets the action for the alias builder.
func (b *AliasBuilder) Add(index string) *AliasBuilder
Add sets the action to "add" and requires an index.
func (b *AliasBuilder) Del() *AliasBuilder
Del sets the action to "del".
func (b *AliasBuilder) Run() (string, error)
Run executes the configured alias command.
func (b *AliasBuilder) Update(index string) *AliasBuilder
Update sets the action to "update" and requires an index.
type BFInfo struct {
Capacity int64
Size int64
Filters int64
ItemsInserted int64
ExpansionRate int64
}
type BFInfoCmd struct {
// contains filtered or unexported fields
}
func NewBFInfoCmd(ctx context.Context, args ...interface{}) *BFInfoCmd
func (cmd *BFInfoCmd) Args() []interface{}
func (cmd *BFInfoCmd) Err() error
func (cmd *BFInfoCmd) FullName() string
func (cmd *BFInfoCmd) Name() string
func (cmd *BFInfoCmd) Result() (BFInfo, error)
func (cmd *BFInfoCmd) SetErr(e error)
func (cmd *BFInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *BFInfoCmd) SetVal(val BFInfo)
func (cmd *BFInfoCmd) String() string
func (cmd *BFInfoCmd) Val() BFInfo
type BFInsertOptions struct {
Capacity int64
Error float64
Expansion int64
NonScaling bool
NoCreate bool
}
type BFReserveOptions struct {
Capacity int64
Error float64
Expansion int64
NonScaling bool
}
type BitCount struct {
Start, End int64
Unit string // BYTE(default) | BIT
}
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
BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne(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
BitFieldRO(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
}
type BoolCmd struct {
// contains filtered or unexported fields
}
func NewBoolCmd(ctx context.Context, args ...interface{}) *BoolCmd
func NewBoolResult(val bool, err error) *BoolCmd
NewBoolResult returns a BoolCmd initialised with val and err for testing.
func (cmd *BoolCmd) Args() []interface{}
func (cmd *BoolCmd) Err() error
func (cmd *BoolCmd) FullName() string
func (cmd *BoolCmd) Name() string
func (cmd *BoolCmd) Result() (bool, error)
func (cmd *BoolCmd) SetErr(e error)
func (cmd *BoolCmd) SetFirstKeyPos(keyPos int8)
func (cmd *BoolCmd) SetVal(val bool)
func (cmd *BoolCmd) String() string
func (cmd *BoolCmd) Val() bool
type BoolSliceCmd struct {
// contains filtered or unexported fields
}
func NewBoolSliceCmd(ctx context.Context, args ...interface{}) *BoolSliceCmd
func NewBoolSliceResult(val []bool, err error) *BoolSliceCmd
NewBoolSliceResult returns a BoolSliceCmd initialised with val and err for testing.
func (cmd *BoolSliceCmd) Args() []interface{}
func (cmd *BoolSliceCmd) Err() error
func (cmd *BoolSliceCmd) FullName() string
func (cmd *BoolSliceCmd) Name() string
func (cmd *BoolSliceCmd) Result() ([]bool, error)
func (cmd *BoolSliceCmd) SetErr(e error)
func (cmd *BoolSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *BoolSliceCmd) SetVal(val []bool)
func (cmd *BoolSliceCmd) String() string
func (cmd *BoolSliceCmd) Val() []bool
type CFInfo struct {
Size int64
NumBuckets int64
NumFilters int64
NumItemsInserted int64
NumItemsDeleted int64
BucketSize int64
ExpansionRate int64
MaxIteration int64
}
type CFInfoCmd struct {
// contains filtered or unexported fields
}
func NewCFInfoCmd(ctx context.Context, args ...interface{}) *CFInfoCmd
func (cmd *CFInfoCmd) Args() []interface{}
func (cmd *CFInfoCmd) Err() error
func (cmd *CFInfoCmd) FullName() string
func (cmd *CFInfoCmd) Name() string
func (cmd *CFInfoCmd) Result() (CFInfo, error)
func (cmd *CFInfoCmd) SetErr(e error)
func (cmd *CFInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *CFInfoCmd) SetVal(val CFInfo)
func (cmd *CFInfoCmd) String() string
func (cmd *CFInfoCmd) Val() CFInfo
type CFInsertOptions struct {
Capacity int64
NoCreate bool
}
type CFReserveOptions struct {
Capacity int64
BucketSize int64
MaxIterations int64
Expansion int64
}
type CMSInfo struct {
Width int64
Depth int64
Count int64
}
type CMSInfoCmd struct {
// contains filtered or unexported fields
}
func NewCMSInfoCmd(ctx context.Context, args ...interface{}) *CMSInfoCmd
func (cmd *CMSInfoCmd) Args() []interface{}
func (cmd *CMSInfoCmd) Err() error
func (cmd *CMSInfoCmd) FullName() string
func (cmd *CMSInfoCmd) Name() string
func (cmd *CMSInfoCmd) Result() (CMSInfo, error)
func (cmd *CMSInfoCmd) SetErr(e error)
func (cmd *CMSInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *CMSInfoCmd) SetVal(val CMSInfo)
func (cmd *CMSInfoCmd) String() string
func (cmd *CMSInfoCmd) Val() CMSInfo
type ChannelOption func(c *channel)
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(d time.Duration) ChannelOption
WithChannelSendTimeout specifies the channel send timeout after which the message is dropped.
The default is 60 seconds.
func WithChannelSize(size int) ChannelOption
WithChannelSize specifies the Go chan size that is used to buffer incoming messages.
The default is 100 messages.
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.
type Client struct {
// contains filtered or unexported fields
}
▹ Example
func NewClient(opt *Options) *Client
NewClient returns a client to the Redis Server specified by Options.
▹ Example
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
func (c Client) ACLCat(ctx context.Context) *StringSliceCmd
func (c Client) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c Client) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c Client) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c Client) ACLList(ctx context.Context) *StringSliceCmd
func (c Client) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c Client) ACLLogReset(ctx context.Context) *StatusCmd
func (c Client) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
func (c Client) Append(ctx context.Context, key, value string) *IntCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Client) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c Client) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c Client) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Client) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Client) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c Client) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c Client) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c Client) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c Client) BgSave(ctx context.Context) *StatusCmd
func (c Client) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c Client) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c Client) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c Client) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Client) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Client) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c Client) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c Client) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c Client) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c Client) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Client) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c Client) ClientID(ctx context.Context) *IntCmd
func (c Client) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c Client) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c Client) ClientList(ctx context.Context) *StringCmd
func (c Client) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c Client) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c Client) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c Client) ClientUnpause(ctx context.Context) *BoolCmd
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 (c Client) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Client) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Client) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c Client) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c Client) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Client) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Client) ClusterFailover(ctx context.Context) *StatusCmd
func (c Client) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c Client) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c Client) ClusterInfo(ctx context.Context) *StringCmd
func (c Client) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Client) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c Client) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c Client) ClusterMyID(ctx context.Context) *StringCmd
func (c Client) ClusterMyShardID(ctx context.Context) *StringCmd
func (c Client) ClusterNodes(ctx context.Context) *StringCmd
func (c Client) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c Client) ClusterResetHard(ctx context.Context) *StatusCmd
func (c Client) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c Client) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c Client) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c Client) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c Client) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c Client) Command(ctx context.Context) *CommandsInfoCmd
func (c Client) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c Client) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c Client) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c Client) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c Client) ConfigResetStat(ctx context.Context) *StatusCmd
func (c Client) ConfigRewrite(ctx context.Context) *StatusCmd
func (c Client) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c *Client) Conn() *Conn
func (c Client) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c Client) DBSize(ctx context.Context) *IntCmd
func (c Client) DebugObject(ctx context.Context, key string) *StringCmd
func (c Client) Decr(ctx context.Context, key string) *IntCmd
func (c Client) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c Client) Del(ctx context.Context, keys ...string) *IntCmd
func (c Client) Do(ctx context.Context, args ...interface{}) *Cmd
func (c Client) Dump(ctx context.Context, key string) *StringCmd
func (c Client) Echo(ctx context.Context, message interface{}) *StringCmd
func (c Client) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Client) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Client) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Client) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Client) Exists(ctx context.Context, keys ...string) *IntCmd
func (c Client) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Client) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c Client) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c Client) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c Client) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Client) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Client) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c Client) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c Client) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c Client) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c Client) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c Client) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c Client) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c Client) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c Client) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c Client) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c Client) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c Client) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c Client) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Client) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Client) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Client) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c Client) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Client) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c Client) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Client) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Client) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Client) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Client) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c Client) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Client) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Client) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c Client) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c Client) FlushAll(ctx context.Context) *StatusCmd
func (c Client) FlushAllAsync(ctx context.Context) *StatusCmd
func (c Client) FlushDB(ctx context.Context) *StatusCmd
func (c Client) FlushDBAsync(ctx context.Context) *StatusCmd
func (c Client) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c Client) FunctionDump(ctx context.Context) *StringCmd
func (c Client) FunctionFlush(ctx context.Context) *StringCmd
func (c Client) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c Client) FunctionKill(ctx context.Context) *StringCmd
func (c Client) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c Client) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c Client) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c Client) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c Client) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c Client) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c Client) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c Client) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c Client) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c Client) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c Client) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c Client) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c Client) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c Client) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c Client) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c Client) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c Client) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c Client) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c Client) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c Client) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c Client) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c Client) HExists(ctx context.Context, key, field string) *BoolCmd
func (c Client) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Client) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Client) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Client) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Client) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Client) HGet(ctx context.Context, key, field string) *StringCmd
func (c Client) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c Client) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Client) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Client) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c Client) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c Client) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c Client) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c Client) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c Client) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Client) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Client) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Client) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Client) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Client) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c Client) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c Client) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c Client) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c Client) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Client) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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.
func (c Client) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c Client) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c Client) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c Client) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c Client) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c Client) HVals(ctx context.Context, key string) *StringSliceCmd
func (c Client) Incr(ctx context.Context, key string) *IntCmd
func (c Client) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c Client) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c Client) Info(ctx context.Context, sections ...string) *StringCmd
func (c Client) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Client) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c Client) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c Client) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c Client) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c Client) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c Client) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Client) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Client) LLen(ctx context.Context, key string) *IntCmd
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 (c Client) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c Client) LPop(ctx context.Context, key string) *StringCmd
func (c Client) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Client) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c Client) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c Client) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Client) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Client) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Client) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c Client) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c Client) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c Client) LastSave(ctx context.Context) *IntCmd
func (c Client) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c Client) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c Client) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c Client) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c Client) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c Client) Move(ctx context.Context, key string, db int) *BoolCmd
func (c *Client) NewAggregateBuilder(ctx context.Context, index, query string) *AggregateBuilder
NewAggregateBuilder creates a new AggregateBuilder for FT.AGGREGATE commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewAliasBuilder(ctx context.Context, alias string) *AliasBuilder
NewAliasBuilder creates a new AliasBuilder for FT.ALIAS* commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewCreateIndexBuilder(ctx context.Context, index string) *CreateIndexBuilder
NewCreateIndexBuilder creates a new CreateIndexBuilder for FT.CREATE commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewCursorBuilder(ctx context.Context, index string, cursorId int64) *CursorBuilder
NewCursorBuilder creates a new CursorBuilder for FT.CURSOR* commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewDictBuilder(ctx context.Context, dict string) *DictBuilder
NewDictBuilder creates a new DictBuilder for FT.DICT* commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewDropIndexBuilder(ctx context.Context, index string) *DropIndexBuilder
NewDropIndexBuilder creates a new DropIndexBuilder for FT.DROPINDEX commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewExplainBuilder(ctx context.Context, index, query string) *ExplainBuilder
NewExplainBuilder creates a new ExplainBuilder for FT.EXPLAIN commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewSearchBuilder(ctx context.Context, index, query string) *SearchBuilder
NewSearchBuilder creates a new SearchBuilder for FT.SEARCH commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewSearchInfoBuilder(ctx context.Context, index string) *FTInfoBuilder
NewSearchInfoBuilder creates a new FTInfoBuilder for FT.INFO commands.
func (c *Client) NewSpellCheckBuilder(ctx context.Context, index, query string) *SpellCheckBuilder
NewSpellCheckBuilder creates a new SpellCheckBuilder for FT.SPELLCHECK commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewSynUpdateBuilder(ctx context.Context, index string, groupId interface{}) *SynUpdateBuilder
NewSynUpdateBuilder creates a new SynUpdateBuilder for FT.SYNUPDATE commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c *Client) NewTagValsBuilder(ctx context.Context, index, field string) *TagValsBuilder
NewTagValsBuilder creates a new TagValsBuilder for FT.TAGVALS commands. EXPERIMENTAL: this API is subject to change, use with caution.
func (c Client) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c Client) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c Client) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c Client) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c *Client) Options() *Options
Options returns read-only Options that were used to create the client.
func (c Client) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Client) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Client) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c Client) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c Client) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c Client) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
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 (c Client) PTTL(ctx context.Context, key string) *DurationCmd
func (c Client) Persist(ctx context.Context, key string) *BoolCmd
func (c Client) Ping(ctx context.Context) *StatusCmd
func (c *Client) Pipeline() Pipeliner
▹ Example
func (c *Client) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
▹ Example
func (c *Client) PoolStats() *PoolStats
PoolStats returns connection pool stats.
func (c *Client) Process(ctx context.Context, cmd Cmder) error
func (c Client) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Client) PubSubNumPat(ctx context.Context) *IntCmd
func (c Client) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Client) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Client) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Client) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c Client) Quit(_ context.Context) *StatusCmd
func (c Client) RPop(ctx context.Context, key string) *StringCmd
func (c Client) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Client) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c Client) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Client) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Client) RandomKey(ctx context.Context) *StringCmd
func (c Client) ReadOnly(ctx context.Context) *StatusCmd
func (c Client) ReadWrite(ctx context.Context) *StatusCmd
func (c Client) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c Client) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c Client) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Client) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Client) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Client) SCard(ctx context.Context, key string) *IntCmd
func (c Client) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c Client) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Client) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c Client) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Client) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Client) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c Client) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c Client) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c Client) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c Client) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c Client) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c Client) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c Client) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c Client) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c Client) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c Client) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Client) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c Client) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c Client) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Client) Save(ctx context.Context) *StatusCmd
func (c Client) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c Client) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c Client) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c Client) ScriptFlush(ctx context.Context) *StatusCmd
func (c Client) ScriptKill(ctx context.Context) *StatusCmd
func (c Client) ScriptLoad(ctx context.Context, script string) *StringCmd
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.
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 (c Client) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c Client) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c Client) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c Client) Shutdown(ctx context.Context) *StatusCmd
func (c Client) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c Client) ShutdownSave(ctx context.Context) *StatusCmd
func (c Client) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c Client) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c Client) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Client) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c Client) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Client) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c Client) StrLen(ctx context.Context, key string) *IntCmd
func (c Client) String() string
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 (c Client) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Client) TTL(ctx context.Context, key string) *DurationCmd
func (c Client) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c Client) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *Client) TxPipeline() Pipeliner
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
▹ Example
func (c *Client) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
▹ Example
func (c Client) Type(ctx context.Context, key string) *StatusCmd
func (c Client) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c Client) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c Client) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c Client) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c Client) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c Client) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c Client) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c Client) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c Client) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c Client) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c Client) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c Client) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c Client) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c Client) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c Client) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c Client) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c Client) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Client) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Client) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c Client) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c Client) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
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
▹ Example (Instrumentation)
func (c *Client) WithTimeout(timeout time.Duration) *Client
func (c Client) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c Client) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c Client) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c Client) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c Client) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c Client) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c Client) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c Client) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c Client) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c Client) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c Client) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Client) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c Client) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Client) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c Client) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c Client) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c Client) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c Client) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c Client) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c Client) XLen(ctx context.Context, stream string) *IntCmd
func (c Client) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c Client) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c Client) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Client) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c Client) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c Client) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c Client) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c Client) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Client) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c Client) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c Client) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c Client) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c Client) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c Client) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c Client) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c Client) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c Client) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c Client) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c Client) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c Client) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c Client) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c Client) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c Client) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c Client) ZCard(ctx context.Context, key string) *IntCmd
func (c Client) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c Client) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c Client) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c Client) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c Client) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c Client) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c Client) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Client) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c Client) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c Client) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c Client) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c Client) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Client) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Client) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c Client) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c Client) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Client) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c Client) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c Client) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Client) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Client) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c Client) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c Client) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c Client) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c Client) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Client) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c Client) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c Client) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c Client) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Client) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Client) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Client) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c Client) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c Client) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c Client) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Client) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c Client) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c Client) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c Client) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
ClientFlags is redis-server client flags, copy from redis/src/server.h (redis 7.0)
type ClientFlags uint64
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. */
)
ClientInfo is redis-server ClientInfo, not go-redis *Client
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
Watch int // redis version 7.4 RC1, number of keys this client is currently watching.
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
TotalNetIn int // tot-net-in, total network input
TotalNetOut int // tot-net-out, total network output
TotalCmds int // tot-cmds, total number of commands processed
IoThread int // io-thread id
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
}
type ClientInfoCmd struct {
// contains filtered or unexported fields
}
func NewClientInfoCmd(ctx context.Context, args ...interface{}) *ClientInfoCmd
func (cmd *ClientInfoCmd) Args() []interface{}
func (cmd *ClientInfoCmd) Err() error
func (cmd *ClientInfoCmd) FullName() string
func (cmd *ClientInfoCmd) Name() string
func (cmd *ClientInfoCmd) Result() (*ClientInfo, error)
func (cmd *ClientInfoCmd) SetErr(e error)
func (cmd *ClientInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ClientInfoCmd) SetVal(val *ClientInfo)
func (cmd *ClientInfoCmd) String() string
func (cmd *ClientInfoCmd) Val() *ClientInfo
ClusterClient is a Redis Cluster client representing a pool of zero or more underlying connections. It's safe for concurrent use by multiple goroutines.
type ClusterClient struct {
// contains filtered or unexported fields
}
func NewClusterClient(opt *ClusterOptions) *ClusterClient
NewClusterClient returns a Redis Cluster client as described in http://redis.io/topics/cluster-spec.
▹ Example
▹ Example (ManualSetup)
func NewFailoverClusterClient(failoverOpt *FailoverOptions) *ClusterClient
NewFailoverClusterClient returns a client that supports routing read-only commands to a replica node.
func (c ClusterClient) ACLCat(ctx context.Context) *StringSliceCmd
func (c ClusterClient) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c ClusterClient) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c ClusterClient) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c ClusterClient) ACLList(ctx context.Context) *StringSliceCmd
func (c ClusterClient) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c ClusterClient) ACLLogReset(ctx context.Context) *StatusCmd
func (c ClusterClient) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
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 (c ClusterClient) Append(ctx context.Context, key, value string) *IntCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c ClusterClient) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c ClusterClient) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c ClusterClient) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c ClusterClient) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c ClusterClient) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c ClusterClient) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c ClusterClient) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c ClusterClient) BgSave(ctx context.Context) *StatusCmd
func (c ClusterClient) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c ClusterClient) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c ClusterClient) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c ClusterClient) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c ClusterClient) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c ClusterClient) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c ClusterClient) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c ClusterClient) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c ClusterClient) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c ClusterClient) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c ClusterClient) ClientID(ctx context.Context) *IntCmd
func (c ClusterClient) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c ClusterClient) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c ClusterClient) ClientList(ctx context.Context) *StringCmd
func (c ClusterClient) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c ClusterClient) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c ClusterClient) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c ClusterClient) ClientUnpause(ctx context.Context) *BoolCmd
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 (c ClusterClient) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c ClusterClient) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c ClusterClient) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c ClusterClient) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c ClusterClient) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c ClusterClient) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c ClusterClient) ClusterFailover(ctx context.Context) *StatusCmd
func (c ClusterClient) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c ClusterClient) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c ClusterClient) ClusterInfo(ctx context.Context) *StringCmd
func (c ClusterClient) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c ClusterClient) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c ClusterClient) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c ClusterClient) ClusterMyID(ctx context.Context) *StringCmd
func (c ClusterClient) ClusterMyShardID(ctx context.Context) *StringCmd
func (c ClusterClient) ClusterNodes(ctx context.Context) *StringCmd
func (c ClusterClient) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c ClusterClient) ClusterResetHard(ctx context.Context) *StatusCmd
func (c ClusterClient) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c ClusterClient) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c ClusterClient) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c ClusterClient) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c ClusterClient) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c ClusterClient) Command(ctx context.Context) *CommandsInfoCmd
func (c ClusterClient) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c ClusterClient) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c ClusterClient) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c ClusterClient) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c ClusterClient) ConfigResetStat(ctx context.Context) *StatusCmd
func (c ClusterClient) ConfigRewrite(ctx context.Context) *StatusCmd
func (c ClusterClient) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c ClusterClient) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c *ClusterClient) DBSize(ctx context.Context) *IntCmd
func (c ClusterClient) DebugObject(ctx context.Context, key string) *StringCmd
func (c ClusterClient) Decr(ctx context.Context, key string) *IntCmd
func (c ClusterClient) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c ClusterClient) Del(ctx context.Context, keys ...string) *IntCmd
func (c ClusterClient) Do(ctx context.Context, args ...interface{}) *Cmd
func (c ClusterClient) Dump(ctx context.Context, key string) *StringCmd
func (c ClusterClient) Echo(ctx context.Context, message interface{}) *StringCmd
func (c ClusterClient) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c ClusterClient) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c ClusterClient) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c ClusterClient) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c ClusterClient) Exists(ctx context.Context, keys ...string) *IntCmd
func (c ClusterClient) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c ClusterClient) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c ClusterClient) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c ClusterClient) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c ClusterClient) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c ClusterClient) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c ClusterClient) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c ClusterClient) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c ClusterClient) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c ClusterClient) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c ClusterClient) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c ClusterClient) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c ClusterClient) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c ClusterClient) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c ClusterClient) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c ClusterClient) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c ClusterClient) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c ClusterClient) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c ClusterClient) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c ClusterClient) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c ClusterClient) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c ClusterClient) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c ClusterClient) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c ClusterClient) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c ClusterClient) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c ClusterClient) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c ClusterClient) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c ClusterClient) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c ClusterClient) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c ClusterClient) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c ClusterClient) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c ClusterClient) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c ClusterClient) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c ClusterClient) FlushAll(ctx context.Context) *StatusCmd
func (c ClusterClient) FlushAllAsync(ctx context.Context) *StatusCmd
func (c ClusterClient) FlushDB(ctx context.Context) *StatusCmd
func (c ClusterClient) FlushDBAsync(ctx context.Context) *StatusCmd
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 (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 (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 (c ClusterClient) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c ClusterClient) FunctionDump(ctx context.Context) *StringCmd
func (c ClusterClient) FunctionFlush(ctx context.Context) *StringCmd
func (c ClusterClient) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c ClusterClient) FunctionKill(ctx context.Context) *StringCmd
func (c ClusterClient) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c ClusterClient) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c ClusterClient) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c ClusterClient) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c ClusterClient) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c ClusterClient) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c ClusterClient) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c ClusterClient) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c ClusterClient) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c ClusterClient) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c ClusterClient) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c ClusterClient) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c ClusterClient) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c ClusterClient) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c ClusterClient) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c ClusterClient) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c ClusterClient) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c ClusterClient) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c ClusterClient) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c ClusterClient) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c ClusterClient) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c ClusterClient) HExists(ctx context.Context, key, field string) *BoolCmd
func (c ClusterClient) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c ClusterClient) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c ClusterClient) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c ClusterClient) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c ClusterClient) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c ClusterClient) HGet(ctx context.Context, key, field string) *StringCmd
func (c ClusterClient) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c ClusterClient) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c ClusterClient) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c ClusterClient) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c ClusterClient) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c ClusterClient) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c ClusterClient) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c ClusterClient) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c ClusterClient) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c ClusterClient) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c ClusterClient) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c ClusterClient) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c ClusterClient) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c ClusterClient) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c ClusterClient) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c ClusterClient) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c ClusterClient) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c ClusterClient) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c ClusterClient) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c ClusterClient) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c ClusterClient) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c ClusterClient) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c ClusterClient) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c ClusterClient) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c ClusterClient) HVals(ctx context.Context, key string) *StringSliceCmd
func (c ClusterClient) Incr(ctx context.Context, key string) *IntCmd
func (c ClusterClient) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c ClusterClient) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c ClusterClient) Info(ctx context.Context, sections ...string) *StringCmd
func (c ClusterClient) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c ClusterClient) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c ClusterClient) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c ClusterClient) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c ClusterClient) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c ClusterClient) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c ClusterClient) LLen(ctx context.Context, key string) *IntCmd
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 (c ClusterClient) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c ClusterClient) LPop(ctx context.Context, key string) *StringCmd
func (c ClusterClient) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c ClusterClient) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c ClusterClient) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c ClusterClient) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c ClusterClient) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c ClusterClient) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c ClusterClient) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c ClusterClient) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c ClusterClient) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c ClusterClient) LastSave(ctx context.Context) *IntCmd
func (c ClusterClient) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c ClusterClient) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c ClusterClient) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c *ClusterClient) MasterForKey(ctx context.Context, key string) (*Client, error)
MasterForKey return a client to the master node for a particular key.
func (c ClusterClient) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c ClusterClient) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c ClusterClient) Move(ctx context.Context, key string, db int) *BoolCmd
func (c ClusterClient) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c ClusterClient) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c ClusterClient) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c ClusterClient) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c *ClusterClient) OnNewNode(fn func(rdb *Client))
func (c *ClusterClient) Options() *ClusterOptions
Options returns read-only Options that were used to create the client.
func (c ClusterClient) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c ClusterClient) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c ClusterClient) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c ClusterClient) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c ClusterClient) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c ClusterClient) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
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 (c ClusterClient) PTTL(ctx context.Context, key string) *DurationCmd
func (c ClusterClient) Persist(ctx context.Context, key string) *BoolCmd
func (c ClusterClient) Ping(ctx context.Context) *StatusCmd
func (c *ClusterClient) Pipeline() Pipeliner
func (c *ClusterClient) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c *ClusterClient) PoolStats() *PoolStats
PoolStats returns accumulated connection pool stats.
func (c *ClusterClient) Process(ctx context.Context, cmd Cmder) error
func (c ClusterClient) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c ClusterClient) PubSubNumPat(ctx context.Context) *IntCmd
func (c ClusterClient) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c ClusterClient) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c ClusterClient) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c ClusterClient) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c ClusterClient) Quit(_ context.Context) *StatusCmd
func (c ClusterClient) RPop(ctx context.Context, key string) *StringCmd
func (c ClusterClient) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c ClusterClient) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c ClusterClient) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c ClusterClient) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c ClusterClient) RandomKey(ctx context.Context) *StringCmd
func (c ClusterClient) ReadOnly(ctx context.Context) *StatusCmd
func (c ClusterClient) ReadWrite(ctx context.Context) *StatusCmd
func (c *ClusterClient) ReloadState(ctx context.Context)
ReloadState reloads cluster state. If available it calls ClusterSlots func to get cluster slots information.
func (c ClusterClient) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c ClusterClient) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c ClusterClient) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c ClusterClient) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c ClusterClient) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c ClusterClient) SCard(ctx context.Context, key string) *IntCmd
func (c ClusterClient) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c ClusterClient) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c ClusterClient) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c ClusterClient) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c ClusterClient) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c ClusterClient) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c ClusterClient) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c ClusterClient) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c ClusterClient) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c ClusterClient) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c ClusterClient) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c ClusterClient) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c ClusterClient) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c ClusterClient) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c ClusterClient) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c ClusterClient) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c ClusterClient) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c *ClusterClient) SSubscribe(ctx context.Context, channels ...string) *PubSub
SSubscribe Subscribes the client to the specified shard channels.
func (c ClusterClient) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c ClusterClient) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c ClusterClient) Save(ctx context.Context) *StatusCmd
func (c ClusterClient) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c ClusterClient) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c *ClusterClient) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c *ClusterClient) ScriptFlush(ctx context.Context) *StatusCmd
func (c ClusterClient) ScriptKill(ctx context.Context) *StatusCmd
func (c *ClusterClient) ScriptLoad(ctx context.Context, script string) *StringCmd
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 (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 (c ClusterClient) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c ClusterClient) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c ClusterClient) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c ClusterClient) Shutdown(ctx context.Context) *StatusCmd
func (c ClusterClient) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c ClusterClient) ShutdownSave(ctx context.Context) *StatusCmd
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 (c ClusterClient) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c ClusterClient) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c ClusterClient) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c ClusterClient) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c ClusterClient) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c ClusterClient) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c ClusterClient) StrLen(ctx context.Context, key string) *IntCmd
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 (c ClusterClient) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) TTL(ctx context.Context, key string) *DurationCmd
func (c ClusterClient) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c ClusterClient) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *ClusterClient) TxPipeline() Pipeliner
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
func (c *ClusterClient) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c ClusterClient) Type(ctx context.Context, key string) *StatusCmd
func (c ClusterClient) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c ClusterClient) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c ClusterClient) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c ClusterClient) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c ClusterClient) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c ClusterClient) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c ClusterClient) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c ClusterClient) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c ClusterClient) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c ClusterClient) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c ClusterClient) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c ClusterClient) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c ClusterClient) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c ClusterClient) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c ClusterClient) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c ClusterClient) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c ClusterClient) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c ClusterClient) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c ClusterClient) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c ClusterClient) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c ClusterClient) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
func (c *ClusterClient) Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error
func (c ClusterClient) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c ClusterClient) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c ClusterClient) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c ClusterClient) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c ClusterClient) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c ClusterClient) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c ClusterClient) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c ClusterClient) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c ClusterClient) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c ClusterClient) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c ClusterClient) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c ClusterClient) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c ClusterClient) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c ClusterClient) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c ClusterClient) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c ClusterClient) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c ClusterClient) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c ClusterClient) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c ClusterClient) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c ClusterClient) XLen(ctx context.Context, stream string) *IntCmd
func (c ClusterClient) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c ClusterClient) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c ClusterClient) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c ClusterClient) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c ClusterClient) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c ClusterClient) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c ClusterClient) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c ClusterClient) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c ClusterClient) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c ClusterClient) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c ClusterClient) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c ClusterClient) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c ClusterClient) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c ClusterClient) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c ClusterClient) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c ClusterClient) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c ClusterClient) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c ClusterClient) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c ClusterClient) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c ClusterClient) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c ClusterClient) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c ClusterClient) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c ClusterClient) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c ClusterClient) ZCard(ctx context.Context, key string) *IntCmd
func (c ClusterClient) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c ClusterClient) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c ClusterClient) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c ClusterClient) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c ClusterClient) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c ClusterClient) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c ClusterClient) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c ClusterClient) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c ClusterClient) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c ClusterClient) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c ClusterClient) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c ClusterClient) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c ClusterClient) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c ClusterClient) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c ClusterClient) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c ClusterClient) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c ClusterClient) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c ClusterClient) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c ClusterClient) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c ClusterClient) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c ClusterClient) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c ClusterClient) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c ClusterClient) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c ClusterClient) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c ClusterClient) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c ClusterClient) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c ClusterClient) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c ClusterClient) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c ClusterClient) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c ClusterClient) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c ClusterClient) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c ClusterClient) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c ClusterClient) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c ClusterClient) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c ClusterClient) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c ClusterClient) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c ClusterClient) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c ClusterClient) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c ClusterClient) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
type ClusterCmdable interface {
ClusterMyShardID(ctx context.Context) *StringCmd
ClusterMyID(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 struct {
// contains filtered or unexported fields
}
func NewClusterLinksCmd(ctx context.Context, args ...interface{}) *ClusterLinksCmd
func (cmd *ClusterLinksCmd) Args() []interface{}
func (cmd *ClusterLinksCmd) Err() error
func (cmd *ClusterLinksCmd) FullName() string
func (cmd *ClusterLinksCmd) Name() string
func (cmd *ClusterLinksCmd) Result() ([]ClusterLink, error)
func (cmd *ClusterLinksCmd) SetErr(e error)
func (cmd *ClusterLinksCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ClusterLinksCmd) SetVal(val []ClusterLink)
func (cmd *ClusterLinksCmd) String() string
func (cmd *ClusterLinksCmd) Val() []ClusterLink
type ClusterNode struct {
ID string
Addr string
NetworkingMetadata map[string]string
}
ClusterOptions are used to configure a cluster client and should be passed to NewClusterClient.
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)
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
StreamingCredentialsProvider auth.StreamingCredentialsProvider
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
// ReadBufferSize is the size of the bufio.Reader buffer for each connection.
// Larger buffers can improve performance for commands that return large responses.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
ReadBufferSize int
// WriteBufferSize is the size of the bufio.Writer buffer for each connection.
// Larger buffers can improve performance for large pipelines and commands with many arguments.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
WriteBufferSize int
TLSConfig *tls.Config
// DisableIndentity - Disable set-lib on connect.
//
// default: false
//
// Deprecated: Use DisableIdentity instead.
DisableIndentity bool
// DisableIdentity is used to disable CLIENT SETINFO command on connect.
//
// default: false
DisableIdentity bool
IdentitySuffix string // Add suffix to client name. Default is empty.
// UnstableResp3 enables Unstable mode for Redis Search module with RESP3.
UnstableResp3 bool
// FailingTimeoutSeconds is the timeout in seconds for marking a cluster node as failing.
// When a node is marked as failing, it will be avoided for this duration.
// Default is 15 seconds.
FailingTimeoutSeconds int
}
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:
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 struct {
Slots []SlotRange
Nodes []Node
}
type ClusterShardsCmd struct {
// contains filtered or unexported fields
}
func NewClusterShardsCmd(ctx context.Context, args ...interface{}) *ClusterShardsCmd
func (cmd *ClusterShardsCmd) Args() []interface{}
func (cmd *ClusterShardsCmd) Err() error
func (cmd *ClusterShardsCmd) FullName() string
func (cmd *ClusterShardsCmd) Name() string
func (cmd *ClusterShardsCmd) Result() ([]ClusterShard, error)
func (cmd *ClusterShardsCmd) SetErr(e error)
func (cmd *ClusterShardsCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ClusterShardsCmd) SetVal(val []ClusterShard)
func (cmd *ClusterShardsCmd) String() string
func (cmd *ClusterShardsCmd) Val() []ClusterShard
type ClusterSlot struct {
Start int
End int
Nodes []ClusterNode
}
type ClusterSlotsCmd struct {
// contains filtered or unexported fields
}
func NewClusterSlotsCmd(ctx context.Context, args ...interface{}) *ClusterSlotsCmd
func NewClusterSlotsCmdResult(val []ClusterSlot, err error) *ClusterSlotsCmd
NewClusterSlotsCmdResult returns a ClusterSlotsCmd initialised with val and err for testing.
func (cmd *ClusterSlotsCmd) Args() []interface{}
func (cmd *ClusterSlotsCmd) Err() error
func (cmd *ClusterSlotsCmd) FullName() string
func (cmd *ClusterSlotsCmd) Name() string
func (cmd *ClusterSlotsCmd) Result() ([]ClusterSlot, error)
func (cmd *ClusterSlotsCmd) SetErr(e error)
func (cmd *ClusterSlotsCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ClusterSlotsCmd) SetVal(val []ClusterSlot)
func (cmd *ClusterSlotsCmd) String() string
func (cmd *ClusterSlotsCmd) Val() []ClusterSlot
type Cmd struct {
// contains filtered or unexported fields
}
func NewCmd(ctx context.Context, args ...interface{}) *Cmd
func NewCmdResult(val interface{}, err error) *Cmd
NewCmdResult returns a Cmd initialised with val and err for testing.
func (cmd *Cmd) Args() []interface{}
func (cmd *Cmd) Bool() (bool, error)
func (cmd *Cmd) BoolSlice() ([]bool, error)
func (cmd *Cmd) Err() error
func (cmd *Cmd) Float32() (float32, error)
func (cmd *Cmd) Float32Slice() ([]float32, error)
func (cmd *Cmd) Float64() (float64, error)
func (cmd *Cmd) Float64Slice() ([]float64, error)
func (cmd *Cmd) FullName() string
func (cmd *Cmd) Int() (int, error)
func (cmd *Cmd) Int64() (int64, error)
func (cmd *Cmd) Int64Slice() ([]int64, error)
func (cmd *Cmd) Name() string
func (cmd *Cmd) Result() (interface{}, error)
func (cmd *Cmd) SetErr(e error)
func (cmd *Cmd) SetFirstKeyPos(keyPos int8)
func (cmd *Cmd) SetVal(val interface{})
func (cmd *Cmd) Slice() ([]interface{}, error)
func (cmd *Cmd) String() string
func (cmd *Cmd) StringSlice() ([]string, error)
func (cmd *Cmd) Text() (string, error)
func (cmd *Cmd) Uint64() (uint64, error)
func (cmd *Cmd) Uint64Slice() ([]uint64, error)
func (cmd *Cmd) Val() interface{}
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
GenericCmdable
GeoCmdable
HashCmdable
HyperLogLogCmdable
ListCmdable
ProbabilisticCmdable
PubSubCmdable
ScriptingFunctionsCmdable
SearchCmdable
SetCmdable
SortedSetCmdable
StringCmdable
StreamCmdable
TimeseriesCmdable
JSONCmdable
VectorSetCmdable
}
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 struct {
Name string
Arity int8
Flags []string
ACLFlags []string
FirstKeyPos int8
LastKeyPos int8
StepCount int8
ReadOnly bool
}
type CommandsInfoCmd struct {
// contains filtered or unexported fields
}
func NewCommandsInfoCmd(ctx context.Context, args ...interface{}) *CommandsInfoCmd
func NewCommandsInfoCmdResult(val map[string]*CommandInfo, err error) *CommandsInfoCmd
NewCommandsInfoCmdResult returns a CommandsInfoCmd initialised with val and err for testing.
func (cmd *CommandsInfoCmd) Args() []interface{}
func (cmd *CommandsInfoCmd) Err() error
func (cmd *CommandsInfoCmd) FullName() string
func (cmd *CommandsInfoCmd) Name() string
func (cmd *CommandsInfoCmd) Result() (map[string]*CommandInfo, error)
func (cmd *CommandsInfoCmd) SetErr(e error)
func (cmd *CommandsInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *CommandsInfoCmd) SetVal(val map[string]*CommandInfo)
func (cmd *CommandsInfoCmd) String() string
func (cmd *CommandsInfoCmd) Val() map[string]*CommandInfo
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.
type Conn struct {
// contains filtered or unexported fields
}
▹ Example (Name)
func (c Conn) ACLCat(ctx context.Context) *StringSliceCmd
func (c Conn) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c Conn) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c Conn) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c Conn) ACLList(ctx context.Context) *StringSliceCmd
func (c Conn) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c Conn) ACLLogReset(ctx context.Context) *StatusCmd
func (c Conn) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
func (c Conn) Append(ctx context.Context, key, value string) *IntCmd
func (c Conn) Auth(ctx context.Context, password string) *StatusCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Conn) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c Conn) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c Conn) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Conn) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Conn) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c Conn) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c Conn) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c Conn) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c Conn) BgSave(ctx context.Context) *StatusCmd
func (c Conn) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c Conn) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c Conn) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c Conn) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Conn) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Conn) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c Conn) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c Conn) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c Conn) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c Conn) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Conn) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c Conn) ClientID(ctx context.Context) *IntCmd
func (c Conn) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c Conn) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c Conn) ClientList(ctx context.Context) *StringCmd
func (c Conn) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c Conn) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd
ClientSetInfo sends a CLIENT SETINFO command with the provided info.
func (c Conn) ClientSetName(ctx context.Context, name string) *BoolCmd
ClientSetName assigns a name to the connection.
func (c Conn) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c Conn) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c Conn) ClientUnpause(ctx context.Context) *BoolCmd
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 (c Conn) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Conn) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Conn) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c Conn) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c Conn) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Conn) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Conn) ClusterFailover(ctx context.Context) *StatusCmd
func (c Conn) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c Conn) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c Conn) ClusterInfo(ctx context.Context) *StringCmd
func (c Conn) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Conn) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c Conn) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c Conn) ClusterMyID(ctx context.Context) *StringCmd
func (c Conn) ClusterMyShardID(ctx context.Context) *StringCmd
func (c Conn) ClusterNodes(ctx context.Context) *StringCmd
func (c Conn) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c Conn) ClusterResetHard(ctx context.Context) *StatusCmd
func (c Conn) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c Conn) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c Conn) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c Conn) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c Conn) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c Conn) Command(ctx context.Context) *CommandsInfoCmd
func (c Conn) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c Conn) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c Conn) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c Conn) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c Conn) ConfigResetStat(ctx context.Context) *StatusCmd
func (c Conn) ConfigRewrite(ctx context.Context) *StatusCmd
func (c Conn) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c Conn) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c Conn) DBSize(ctx context.Context) *IntCmd
func (c Conn) DebugObject(ctx context.Context, key string) *StringCmd
func (c Conn) Decr(ctx context.Context, key string) *IntCmd
func (c Conn) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c Conn) Del(ctx context.Context, keys ...string) *IntCmd
func (c Conn) Do(ctx context.Context, args ...interface{}) *Cmd
func (c Conn) Dump(ctx context.Context, key string) *StringCmd
func (c Conn) Echo(ctx context.Context, message interface{}) *StringCmd
func (c Conn) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Conn) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Conn) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Conn) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Conn) Exists(ctx context.Context, keys ...string) *IntCmd
func (c Conn) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Conn) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c Conn) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c Conn) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c Conn) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Conn) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Conn) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c Conn) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c Conn) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c Conn) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c Conn) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c Conn) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c Conn) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c Conn) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c Conn) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c Conn) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c Conn) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c Conn) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c Conn) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Conn) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Conn) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Conn) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c Conn) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Conn) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c Conn) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Conn) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Conn) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Conn) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Conn) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c Conn) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Conn) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Conn) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c Conn) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c Conn) FlushAll(ctx context.Context) *StatusCmd
func (c Conn) FlushAllAsync(ctx context.Context) *StatusCmd
func (c Conn) FlushDB(ctx context.Context) *StatusCmd
func (c Conn) FlushDBAsync(ctx context.Context) *StatusCmd
func (c Conn) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c Conn) FunctionDump(ctx context.Context) *StringCmd
func (c Conn) FunctionFlush(ctx context.Context) *StringCmd
func (c Conn) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c Conn) FunctionKill(ctx context.Context) *StringCmd
func (c Conn) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c Conn) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c Conn) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c Conn) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c Conn) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c Conn) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c Conn) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c Conn) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c Conn) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c Conn) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c Conn) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c Conn) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c Conn) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c Conn) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c Conn) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c Conn) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c Conn) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c Conn) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c Conn) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c Conn) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c Conn) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c Conn) HExists(ctx context.Context, key, field string) *BoolCmd
func (c Conn) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Conn) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Conn) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Conn) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Conn) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Conn) HGet(ctx context.Context, key, field string) *StringCmd
func (c Conn) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c Conn) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Conn) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Conn) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c Conn) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c Conn) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c Conn) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c Conn) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c Conn) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Conn) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Conn) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Conn) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Conn) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Conn) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c Conn) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c Conn) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c Conn) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c Conn) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Conn) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c Conn) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c Conn) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c Conn) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c Conn) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c Conn) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c Conn) HVals(ctx context.Context, key string) *StringSliceCmd
func (c Conn) Hello(ctx context.Context, ver int, username, password, clientName string, ) *MapStringInterfaceCmd
Hello sets the resp protocol used.
func (c Conn) Incr(ctx context.Context, key string) *IntCmd
func (c Conn) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c Conn) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c Conn) Info(ctx context.Context, sections ...string) *StringCmd
func (c Conn) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Conn) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c Conn) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c Conn) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c Conn) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c Conn) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c Conn) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Conn) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Conn) LLen(ctx context.Context, key string) *IntCmd
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 (c Conn) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c Conn) LPop(ctx context.Context, key string) *StringCmd
func (c Conn) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Conn) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c Conn) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c Conn) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Conn) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Conn) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Conn) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c Conn) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c Conn) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c Conn) LastSave(ctx context.Context) *IntCmd
func (c Conn) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c Conn) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c Conn) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c Conn) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c Conn) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c Conn) Move(ctx context.Context, key string, db int) *BoolCmd
func (c Conn) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c Conn) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c Conn) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c Conn) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c Conn) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Conn) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Conn) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c Conn) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c Conn) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c Conn) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
func (c Conn) PTTL(ctx context.Context, key string) *DurationCmd
func (c Conn) Persist(ctx context.Context, key string) *BoolCmd
func (c Conn) Ping(ctx context.Context) *StatusCmd
func (c *Conn) Pipeline() Pipeliner
func (c *Conn) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c *Conn) Process(ctx context.Context, cmd Cmder) error
func (c Conn) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Conn) PubSubNumPat(ctx context.Context) *IntCmd
func (c Conn) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Conn) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Conn) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Conn) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c Conn) Quit(_ context.Context) *StatusCmd
func (c Conn) RPop(ctx context.Context, key string) *StringCmd
func (c Conn) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Conn) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c Conn) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Conn) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Conn) RandomKey(ctx context.Context) *StringCmd
func (c Conn) ReadOnly(ctx context.Context) *StatusCmd
func (c Conn) ReadWrite(ctx context.Context) *StatusCmd
func (c Conn) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c Conn) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c Conn) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Conn) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Conn) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Conn) SCard(ctx context.Context, key string) *IntCmd
func (c Conn) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c Conn) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Conn) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c Conn) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Conn) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Conn) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c Conn) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c Conn) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c Conn) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c Conn) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c Conn) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c Conn) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c Conn) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c Conn) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c Conn) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c Conn) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Conn) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Conn) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c Conn) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Conn) Save(ctx context.Context) *StatusCmd
func (c Conn) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c Conn) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c Conn) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c Conn) ScriptFlush(ctx context.Context) *StatusCmd
func (c Conn) ScriptKill(ctx context.Context) *StatusCmd
func (c Conn) ScriptLoad(ctx context.Context, script string) *StringCmd
func (c Conn) Select(ctx context.Context, index int) *StatusCmd
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 (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 (c Conn) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c Conn) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c Conn) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c Conn) Shutdown(ctx context.Context) *StatusCmd
func (c Conn) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c Conn) ShutdownSave(ctx context.Context) *StatusCmd
func (c Conn) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c Conn) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c Conn) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Conn) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c Conn) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Conn) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c Conn) StrLen(ctx context.Context, key string) *IntCmd
func (c *Conn) String() string
func (c Conn) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd
func (c Conn) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Conn) TTL(ctx context.Context, key string) *DurationCmd
func (c Conn) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c Conn) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *Conn) TxPipeline() Pipeliner
TxPipeline acts like Pipeline, but wraps queued commands with MULTI/EXEC.
func (c *Conn) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c Conn) Type(ctx context.Context, key string) *StatusCmd
func (c Conn) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c Conn) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c Conn) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c Conn) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c Conn) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c Conn) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c Conn) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c Conn) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c Conn) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c Conn) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c Conn) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c Conn) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c Conn) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c Conn) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c Conn) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c Conn) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c Conn) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Conn) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Conn) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c Conn) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c Conn) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
func (c Conn) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c Conn) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c Conn) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c Conn) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c Conn) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c Conn) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c Conn) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c Conn) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c Conn) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c Conn) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c Conn) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Conn) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c Conn) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Conn) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c Conn) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c Conn) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c Conn) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c Conn) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c Conn) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c Conn) XLen(ctx context.Context, stream string) *IntCmd
func (c Conn) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c Conn) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c Conn) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Conn) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c Conn) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c Conn) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c Conn) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c Conn) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Conn) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c Conn) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c Conn) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c Conn) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c Conn) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c Conn) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c Conn) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c Conn) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c Conn) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c Conn) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c Conn) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c Conn) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c Conn) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c Conn) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c Conn) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c Conn) ZCard(ctx context.Context, key string) *IntCmd
func (c Conn) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c Conn) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c Conn) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c Conn) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c Conn) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c Conn) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c Conn) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Conn) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c Conn) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c Conn) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c Conn) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c Conn) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Conn) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Conn) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c Conn) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c Conn) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Conn) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c Conn) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c Conn) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Conn) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Conn) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c Conn) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c Conn) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c Conn) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c Conn) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Conn) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c Conn) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c Conn) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c Conn) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Conn) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Conn) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Conn) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c Conn) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c Conn) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c Conn) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Conn) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c Conn) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c Conn) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c Conn) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
type ConsistentHash interface {
Get(string) string
}
---------------------- CreateIndexBuilder for FT.CREATE ---------------------- CreateIndexBuilder is builder for FT.CREATE EXPERIMENTAL: this API is subject to change, use with caution.
type CreateIndexBuilder struct {
// contains filtered or unexported fields
}
func (b *CreateIndexBuilder) DefaultLanguage(lang string) *CreateIndexBuilder
DefaultLanguage sets LANGUAGE.
func (b *CreateIndexBuilder) Filter(filter string) *CreateIndexBuilder
Filter sets FILTER.
func (b *CreateIndexBuilder) LanguageField(field string) *CreateIndexBuilder
LanguageField sets LANGUAGE_FIELD.
func (b *CreateIndexBuilder) NoFields() *CreateIndexBuilder
NoFields includes NOFIELDS.
func (b *CreateIndexBuilder) NoFreqs() *CreateIndexBuilder
NoFreqs includes NOFREQS.
func (b *CreateIndexBuilder) NoHL() *CreateIndexBuilder
NoHL includes NOHL.
func (b *CreateIndexBuilder) NoOffsets() *CreateIndexBuilder
NoOffsets includes NOOFFSETS.
func (b *CreateIndexBuilder) OnHash() *CreateIndexBuilder
OnHash sets ON HASH.
func (b *CreateIndexBuilder) OnJSON() *CreateIndexBuilder
OnJSON sets ON JSON.
func (b *CreateIndexBuilder) PayloadField(field string) *CreateIndexBuilder
PayloadField sets PAYLOAD_FIELD.
func (b *CreateIndexBuilder) Prefix(prefixes ...interface{}) *CreateIndexBuilder
Prefix sets PREFIX.
func (b *CreateIndexBuilder) Run() (string, error)
Run executes FT.CREATE and returns the status.
func (b *CreateIndexBuilder) Schema(field *FieldSchema) *CreateIndexBuilder
Schema adds a FieldSchema.
func (b *CreateIndexBuilder) Score(score float64) *CreateIndexBuilder
Score sets SCORE.
func (b *CreateIndexBuilder) ScoreField(field string) *CreateIndexBuilder
ScoreField sets SCORE_FIELD.
func (b *CreateIndexBuilder) SkipInitialScan() *CreateIndexBuilder
SkipInitialScan includes SKIPINITIALSCAN.
func (b *CreateIndexBuilder) StopWords(words ...interface{}) *CreateIndexBuilder
StopWords sets STOPWORDS.
func (b *CreateIndexBuilder) Temporary(sec int) *CreateIndexBuilder
Temporary sets TEMPORARY seconds.
---------------------- CursorBuilder for FT.CURSOR* ---------------------- CursorBuilder is builder for FT.CURSOR* commands EXPERIMENTAL: this API is subject to change, use with caution.
type CursorBuilder struct {
// contains filtered or unexported fields
}
func (b *CursorBuilder) Action(action string) *CursorBuilder
Action sets the action for the cursor builder.
func (b *CursorBuilder) Count(count int) *CursorBuilder
Count for READ.
func (b *CursorBuilder) Del() *CursorBuilder
Del sets the action to "del".
func (b *CursorBuilder) Read() *CursorBuilder
Read sets the action to "read".
func (b *CursorBuilder) Run() (interface{}, error)
Run executes the cursor command.
type CursorStats struct {
GlobalIdle int
GlobalTotal int
IndexCapacity int
IndexTotal int
}
type DialHook func(ctx context.Context, network, addr string) (net.Conn, error)
---------------------- DictBuilder for FT.DICT* commands ---------------------- DictBuilder is builder for FT.DICT* commands EXPERIMENTAL: this API is subject to change, use with caution.
type DictBuilder struct {
// contains filtered or unexported fields
}
func (b *DictBuilder) Action(action string) *DictBuilder
Action sets the action for the dictionary builder.
func (b *DictBuilder) Add(terms ...interface{}) *DictBuilder
Add sets the action to "add" and requires terms.
func (b *DictBuilder) Del(terms ...interface{}) *DictBuilder
Del sets the action to "del" and requires terms.
func (b *DictBuilder) Dump() *DictBuilder
Dump sets the action to "dump".
func (b *DictBuilder) Run() (interface{}, error)
Run executes the configured dictionary command.
type Document struct {
ID string
Score *float64
Payload *string
SortKey *string
Fields map[string]string
Error error
}
---------------------- DropIndexBuilder for FT.DROPINDEX ---------------------- DropIndexBuilder is a builder for FT.DROPINDEX EXPERIMENTAL: this API is subject to change, use with caution.
type DropIndexBuilder struct {
// contains filtered or unexported fields
}
func (b *DropIndexBuilder) DeleteDocs() *DropIndexBuilder
DeleteRuncs includes DD.
func (b *DropIndexBuilder) Run() (string, error)
Run executes FT.DROPINDEX.
type DurationCmd struct {
// contains filtered or unexported fields
}
func NewDurationCmd(ctx context.Context, precision time.Duration, args ...interface{}) *DurationCmd
func NewDurationResult(val time.Duration, err error) *DurationCmd
NewDurationResult returns a DurationCmd initialised with val and err for testing.
func (cmd *DurationCmd) Args() []interface{}
func (cmd *DurationCmd) Err() error
func (cmd *DurationCmd) FullName() string
func (cmd *DurationCmd) Name() string
func (cmd *DurationCmd) Result() (time.Duration, error)
func (cmd *DurationCmd) SetErr(e error)
func (cmd *DurationCmd) SetFirstKeyPos(keyPos int8)
func (cmd *DurationCmd) SetVal(val time.Duration)
func (cmd *DurationCmd) String() string
func (cmd *DurationCmd) Val() time.Duration
type Engine struct {
Language string
LibrariesCount int64
FunctionsCount int64
}
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()
}
---------------------- ExplainBuilder for FT.EXPLAIN ---------------------- ExplainBuilder is builder for FT.EXPLAIN EXPERIMENTAL: this API is subject to change, use with caution.
type ExplainBuilder struct {
// contains filtered or unexported fields
}
func (b *ExplainBuilder) Dialect(d string) *ExplainBuilder
Dialect sets dialect for EXPLAINCLI.
func (b *ExplainBuilder) Run() (string, error)
Run executes FT.EXPLAIN and returns the plan.
type FTAggregateApply struct {
Field string
As string
}
type FTAggregateGroupBy struct {
Fields []interface{}
Reduce []FTAggregateReducer
}
type FTAggregateLoad struct {
Field string
As string
}
type FTAggregateOptions struct {
Verbatim bool
LoadAll bool
Load []FTAggregateLoad
Timeout int
GroupBy []FTAggregateGroupBy
SortBy []FTAggregateSortBy
SortByMax int
// Scorer is used to set scoring function, if not set passed, a default will be used.
// The default scorer depends on the Redis version:
// - `BM25` for Redis >= 8
// - `TFIDF` for Redis < 8
Scorer string
// AddScores is available in Redis CE 8
AddScores bool
Apply []FTAggregateApply
LimitOffset int
Limit int
Filter string
WithCursor bool
WithCursorOptions *FTAggregateWithCursor
Params map[string]interface{}
// Dialect 1,3 and 4 are deprecated since redis 8.0
DialectVersion int
}
Each AggregateReducer have different args. Please follow https://redis.io/docs/interact/search-and-query/search/aggregations/#supported-groupby-reducers for more information.
type FTAggregateReducer struct {
Reducer SearchAggregator
Args []interface{}
As string
}
type FTAggregateResult struct {
Total int
Rows []AggregateRow
}
func ProcessAggregateResult(data []interface{}) (*FTAggregateResult, error)
type FTAggregateSortBy struct {
FieldName string
Asc bool
Desc bool
}
type FTAggregateWithCursor struct {
Count int
MaxIdle int
}
type FTAttribute struct {
Identifier string
Attribute string
Type string
Weight float64
Sortable bool
NoStem bool
NoIndex bool
UNF bool
PhoneticMatcher string
CaseSensitive bool
WithSuffixtrie bool
}
type FTCreateOptions struct {
OnHash bool
OnJSON bool
Prefix []interface{}
Filter string
DefaultLanguage string
LanguageField string
Score float64
ScoreField string
PayloadField string
MaxTextFields int
NoOffsets bool
Temporary int
NoHL bool
NoFields bool
NoFreqs bool
StopWords []interface{}
SkipInitialScan bool
}
type FTDropIndexOptions struct {
DeleteDocs bool
}
type FTExplainOptions struct {
// Dialect 1,3 and 4 are deprecated since redis 8.0
Dialect string
}
type FTFlatOptions struct {
Type string
Dim int
DistanceMetric string
InitialCapacity int
BlockSize int
}
type FTHNSWOptions struct {
Type string
Dim int
DistanceMetric string
InitialCapacity int
MaxEdgesPerNode int
MaxAllowedEdgesPerNode int
EFRunTime int
Epsilon float64
}
type FTInfoBuilder struct {
// contains filtered or unexported fields
}
func (b *FTInfoBuilder) Run() (FTInfoResult, error)
Run executes FT.INFO and returns detailed info.
type FTInfoCmd struct {
// contains filtered or unexported fields
}
func (cmd *FTInfoCmd) Args() []interface{}
func (cmd *FTInfoCmd) Err() error
func (cmd *FTInfoCmd) FullName() string
func (cmd *FTInfoCmd) Name() string
func (cmd *FTInfoCmd) RawResult() (interface{}, error)
func (cmd *FTInfoCmd) RawVal() interface{}
func (cmd *FTInfoCmd) Result() (FTInfoResult, error)
func (cmd *FTInfoCmd) SetErr(e error)
func (cmd *FTInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FTInfoCmd) SetVal(val FTInfoResult)
func (cmd *FTInfoCmd) String() string
func (cmd *FTInfoCmd) Val() FTInfoResult
type FTInfoResult struct {
IndexErrors IndexErrors
Attributes []FTAttribute
BytesPerRecordAvg string
Cleaning int
CursorStats CursorStats
DialectStats map[string]int
DocTableSizeMB float64
FieldStatistics []FieldStatistic
GCStats GCStats
GeoshapesSzMB float64
HashIndexingFailures int
IndexDefinition IndexDefinition
IndexName string
IndexOptions []string
Indexing int
InvertedSzMB float64
KeyTableSizeMB float64
MaxDocID int
NumDocs int
NumRecords int
NumTerms int
NumberOfUses int
OffsetBitsPerRecordAvg string
OffsetVectorsSzMB float64
OffsetsPerTermAvg string
PercentIndexed float64
RecordsPerDocAvg string
SortableValuesSizeMB float64
TagOverheadSzMB float64
TextOverheadSzMB float64
TotalIndexMemorySzMB float64
TotalIndexingTime int
TotalInvertedIndexBlocks int
VectorIndexSzMB float64
}
type FTSearchCmd struct {
// contains filtered or unexported fields
}
func (cmd *FTSearchCmd) Args() []interface{}
func (cmd *FTSearchCmd) Err() error
func (cmd *FTSearchCmd) FullName() string
func (cmd *FTSearchCmd) Name() string
func (cmd *FTSearchCmd) RawResult() (interface{}, error)
func (cmd *FTSearchCmd) RawVal() interface{}
func (cmd *FTSearchCmd) Result() (FTSearchResult, error)
func (cmd *FTSearchCmd) SetErr(e error)
func (cmd *FTSearchCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FTSearchCmd) SetVal(val FTSearchResult)
func (cmd *FTSearchCmd) String() string
func (cmd *FTSearchCmd) Val() FTSearchResult
type FTSearchFilter struct {
FieldName interface{}
Min interface{}
Max interface{}
}
type FTSearchGeoFilter struct {
FieldName string
Longitude float64
Latitude float64
Radius float64
Unit string
}
FTSearchOptions hold options that can be passed to the FT.SEARCH command. More information about the options can be found in the documentation for FT.SEARCH https://redis.io/docs/latest/commands/ft.search/
type FTSearchOptions struct {
NoContent bool
Verbatim bool
NoStopWords bool
WithScores bool
WithPayloads bool
WithSortKeys bool
Filters []FTSearchFilter
GeoFilter []FTSearchGeoFilter
InKeys []interface{}
InFields []interface{}
Return []FTSearchReturn
Slop int
Timeout int
InOrder bool
Language string
Expander string
// Scorer is used to set scoring function, if not set passed, a default will be used.
// The default scorer depends on the Redis version:
// - `BM25` for Redis >= 8
// - `TFIDF` for Redis < 8
Scorer string
ExplainScore bool
Payload string
SortBy []FTSearchSortBy
SortByWithCount bool
LimitOffset int
Limit int
// CountOnly sets LIMIT 0 0 to get the count - number of documents in the result set without actually returning the result set.
// When using this option, the Limit and LimitOffset options are ignored.
CountOnly bool
Params map[string]interface{}
// Dialect 1,3 and 4 are deprecated since redis 8.0
DialectVersion int
}
type FTSearchResult struct {
Total int
Docs []Document
}
type FTSearchReturn struct {
FieldName string
As string
}
type FTSearchSortBy struct {
FieldName string
Asc bool
Desc bool
}
type FTSpellCheckCmd struct {
// contains filtered or unexported fields
}
func (cmd *FTSpellCheckCmd) Args() []interface{}
func (cmd *FTSpellCheckCmd) Err() error
func (cmd *FTSpellCheckCmd) FullName() string
func (cmd *FTSpellCheckCmd) Name() string
func (cmd *FTSpellCheckCmd) RawResult() (interface{}, error)
func (cmd *FTSpellCheckCmd) RawVal() interface{}
func (cmd *FTSpellCheckCmd) Result() ([]SpellCheckResult, error)
func (cmd *FTSpellCheckCmd) SetErr(e error)
func (cmd *FTSpellCheckCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FTSpellCheckCmd) SetVal(val []SpellCheckResult)
func (cmd *FTSpellCheckCmd) String() string
func (cmd *FTSpellCheckCmd) Val() []SpellCheckResult
type FTSpellCheckOptions struct {
Distance int
Terms *FTSpellCheckTerms
// Dialect 1,3 and 4 are deprecated since redis 8.0
Dialect int
}
type FTSpellCheckTerms struct {
Inclusion string // Either "INCLUDE" or "EXCLUDE"
Dictionary string
Terms []interface{}
}
type FTSynDumpCmd struct {
// contains filtered or unexported fields
}
func NewFTSynDumpCmd(ctx context.Context, args ...interface{}) *FTSynDumpCmd
func (cmd *FTSynDumpCmd) Args() []interface{}
func (cmd *FTSynDumpCmd) Err() error
func (cmd *FTSynDumpCmd) FullName() string
func (cmd *FTSynDumpCmd) Name() string
func (cmd *FTSynDumpCmd) RawResult() (interface{}, error)
func (cmd *FTSynDumpCmd) RawVal() interface{}
func (cmd *FTSynDumpCmd) Result() ([]FTSynDumpResult, error)
func (cmd *FTSynDumpCmd) SetErr(e error)
func (cmd *FTSynDumpCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FTSynDumpCmd) SetVal(val []FTSynDumpResult)
func (cmd *FTSynDumpCmd) String() string
func (cmd *FTSynDumpCmd) Val() []FTSynDumpResult
type FTSynDumpResult struct {
Term string
Synonyms []string
}
type FTSynUpdateOptions struct {
SkipInitialScan bool
}
type FTVamanaOptions struct {
Type string
Dim int
DistanceMetric string
Compression string
ConstructionWindowSize int
GraphMaxDegree int
SearchWindowSize int
Epsilon float64
TrainingThreshold int
ReduceDim int
}
type FTVectorArgs struct {
FlatOptions *FTFlatOptions
HNSWOptions *FTHNSWOptions
VamanaOptions *FTVamanaOptions
}
FailoverOptions are used to configure a failover client and should be passed to NewFailoverClient.
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
// 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)
// CredentialsProviderContext is an enhanced parameter of CredentialsProvider,
// done to maintain API compatibility. In the future,
// there might be a merge between CredentialsProviderContext and CredentialsProvider.
// There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider.
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
// StreamingCredentialsProvider is used to retrieve the credentials
// for the connection from an external source. Those credentials may change
// during the connection lifetime. This is useful for managed identity
// scenarios where the credentials are retrieved from an external source.
//
// Currently, this is a placeholder for the future implementation.
StreamingCredentialsProvider auth.StreamingCredentialsProvider
DB int
MaxRetries int
MinRetryBackoff time.Duration
MaxRetryBackoff time.Duration
DialTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
ContextTimeoutEnabled bool
// ReadBufferSize is the size of the bufio.Reader buffer for each connection.
// Larger buffers can improve performance for commands that return large responses.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
ReadBufferSize int
// WriteBufferSize is the size of the bufio.Writer buffer for each connection.
// Larger buffers can improve performance for large pipelines and commands with many arguments.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
WriteBufferSize int
PoolFIFO bool
PoolSize int
PoolTimeout time.Duration
MinIdleConns int
MaxIdleConns int
MaxActiveConns int
ConnMaxIdleTime time.Duration
ConnMaxLifetime time.Duration
TLSConfig *tls.Config
// DisableIndentity - Disable set-lib on connect.
//
// default: false
//
// Deprecated: Use DisableIdentity instead.
DisableIndentity bool
// DisableIdentity is used to disable CLIENT SETINFO command on connect.
//
// default: false
DisableIdentity bool
IdentitySuffix string
// FailingTimeoutSeconds is the timeout in seconds for marking a cluster node as failing.
// When a node is marked as failing, it will be avoided for this duration.
// Only applies to failover cluster clients. Default is 15 seconds.
FailingTimeoutSeconds int
UnstableResp3 bool
}
func ParseFailoverURL(redisURL string) (*FailoverOptions, error)
ParseFailoverURL parses a URL into FailoverOptions that can be used to connect to Redis. The URL must be in the form:
redis://<user>:<password>@<host>:<port>/<db_number> or rediss://<user>:<password>@<host>:<port>/<db_number>
To add additional addresses, specify the query parameter, "addr" one or more times. e.g:
redis://<user>:<password>@<host>:<port>/<db_number>?addr=<host2>:<port2>&addr=<host3>:<port3> or rediss://<user>:<password>@<host>:<port>/<db_number>?addr=<host2>:<port2>&addr=<host3>:<port3>
Most Option fields can be set using query parameters, with the following restrictions:
Example:
redis://user:password@localhost:6789?master_name=mymaster&dial_timeout=3&read_timeout=6s&addr=localhost:6790&addr=localhost:6791
is equivalent to:
&FailoverOptions{
MasterName: "mymaster",
Addr: ["localhost:6789", "localhost:6790", "localhost:6791"]
DialTimeout: 3 * time.Second, // no time unit = seconds
ReadTimeout: 6 * time.Second,
}
type FieldSchema struct {
FieldName string
As string
FieldType SearchFieldType
Sortable bool
UNF bool
NoStem bool
NoIndex bool
PhoneticMatcher string
Weight float64
Separator string
CaseSensitive bool
WithSuffixtrie bool
VectorArgs *FTVectorArgs
GeoShapeFieldType string
IndexEmpty bool
IndexMissing bool
}
type FieldStatistic struct {
Identifier string
Attribute string
IndexErrors IndexErrors
}
FilterBy is used for the `CommandList` command parameter.
type FilterBy struct {
Module string
ACLCat string
Pattern string
}
type FloatCmd struct {
// contains filtered or unexported fields
}
func NewFloatCmd(ctx context.Context, args ...interface{}) *FloatCmd
func NewFloatResult(val float64, err error) *FloatCmd
NewFloatResult returns a FloatCmd initialised with val and err for testing.
func (cmd *FloatCmd) Args() []interface{}
func (cmd *FloatCmd) Err() error
func (cmd *FloatCmd) FullName() string
func (cmd *FloatCmd) Name() string
func (cmd *FloatCmd) Result() (float64, error)
func (cmd *FloatCmd) SetErr(e error)
func (cmd *FloatCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FloatCmd) SetVal(val float64)
func (cmd *FloatCmd) String() string
func (cmd *FloatCmd) Val() float64
type FloatSliceCmd struct {
// contains filtered or unexported fields
}
func NewFloatSliceCmd(ctx context.Context, args ...interface{}) *FloatSliceCmd
func NewFloatSliceResult(val []float64, err error) *FloatSliceCmd
NewFloatSliceResult returns a FloatSliceCmd initialised with val and err for testing.
func (cmd *FloatSliceCmd) Args() []interface{}
func (cmd *FloatSliceCmd) Err() error
func (cmd *FloatSliceCmd) FullName() string
func (cmd *FloatSliceCmd) Name() string
func (cmd *FloatSliceCmd) Result() ([]float64, error)
func (cmd *FloatSliceCmd) SetErr(e error)
func (cmd *FloatSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FloatSliceCmd) SetVal(val []float64)
func (cmd *FloatSliceCmd) String() string
func (cmd *FloatSliceCmd) Val() []float64
type Function struct {
Name string
Description string
Flags []string
}
type FunctionListCmd struct {
// contains filtered or unexported fields
}
func NewFunctionListCmd(ctx context.Context, args ...interface{}) *FunctionListCmd
func (cmd *FunctionListCmd) Args() []interface{}
func (cmd *FunctionListCmd) Err() error
func (cmd *FunctionListCmd) First() (*Library, error)
func (cmd *FunctionListCmd) FullName() string
func (cmd *FunctionListCmd) Name() string
func (cmd *FunctionListCmd) Result() ([]Library, error)
func (cmd *FunctionListCmd) SetErr(e error)
func (cmd *FunctionListCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FunctionListCmd) SetVal(val []Library)
func (cmd *FunctionListCmd) String() string
func (cmd *FunctionListCmd) Val() []Library
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 FunctionListQuery struct {
LibraryNamePattern string
WithCode bool
}
FunctionStats contains information about the scripts currently executing on the server, and the available engines
type FunctionStats struct {
Engines []Engine
// contains filtered or unexported fields
}
func (fs *FunctionStats) AllRunningScripts() []RunningScript
AllRunningScripts returns all scripts currently running in a Redis Enterprise clustered database. Only available on Redis Enterprise
func (fs *FunctionStats) Running() bool
func (fs *FunctionStats) RunningScript() (RunningScript, bool)
type FunctionStatsCmd struct {
// contains filtered or unexported fields
}
func NewFunctionStatsCmd(ctx context.Context, args ...interface{}) *FunctionStatsCmd
func (cmd *FunctionStatsCmd) Args() []interface{}
func (cmd *FunctionStatsCmd) Err() error
func (cmd *FunctionStatsCmd) FullName() string
func (cmd *FunctionStatsCmd) Name() string
func (cmd *FunctionStatsCmd) Result() (FunctionStats, error)
func (cmd *FunctionStatsCmd) SetErr(e error)
func (cmd *FunctionStatsCmd) SetFirstKeyPos(keyPos int8)
func (cmd *FunctionStatsCmd) SetVal(val FunctionStats)
func (cmd *FunctionStatsCmd) String() string
func (cmd *FunctionStatsCmd) Val() FunctionStats
type GCStats struct {
BytesCollected int
TotalMsRun int
TotalCycles int
AverageCycleTimeMs string
LastRunTimeMs int
GCNumericTreesMissed int
GCBlocksDenied int
}
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 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
}
GeoLocation is used with GeoAdd to add geospatial location.
type GeoLocation struct {
Name string
Longitude, Latitude, Dist float64
GeoHash int64
}
type GeoLocationCmd struct {
// contains filtered or unexported fields
}
func NewGeoLocationCmd(ctx context.Context, q *GeoRadiusQuery, args ...interface{}) *GeoLocationCmd
func NewGeoLocationCmdResult(val []GeoLocation, err error) *GeoLocationCmd
NewGeoLocationCmdResult returns a GeoLocationCmd initialised with val and err for testing.
func (cmd *GeoLocationCmd) Args() []interface{}
func (cmd *GeoLocationCmd) Err() error
func (cmd *GeoLocationCmd) FullName() string
func (cmd *GeoLocationCmd) Name() string
func (cmd *GeoLocationCmd) Result() ([]GeoLocation, error)
func (cmd *GeoLocationCmd) SetErr(e error)
func (cmd *GeoLocationCmd) SetFirstKeyPos(keyPos int8)
func (cmd *GeoLocationCmd) SetVal(locations []GeoLocation)
func (cmd *GeoLocationCmd) String() string
func (cmd *GeoLocationCmd) Val() []GeoLocation
type GeoPos struct {
Longitude, Latitude float64
}
type GeoPosCmd struct {
// contains filtered or unexported fields
}
func NewGeoPosCmd(ctx context.Context, args ...interface{}) *GeoPosCmd
func NewGeoPosCmdResult(val []*GeoPos, err error) *GeoPosCmd
NewGeoPosCmdResult returns a GeoPosCmd initialised with val and err for testing.
func (cmd *GeoPosCmd) Args() []interface{}
func (cmd *GeoPosCmd) Err() error
func (cmd *GeoPosCmd) FullName() string
func (cmd *GeoPosCmd) Name() string
func (cmd *GeoPosCmd) Result() ([]*GeoPos, error)
func (cmd *GeoPosCmd) SetErr(e error)
func (cmd *GeoPosCmd) SetFirstKeyPos(keyPos int8)
func (cmd *GeoPosCmd) SetVal(val []*GeoPos)
func (cmd *GeoPosCmd) String() string
func (cmd *GeoPosCmd) Val() []*GeoPos
GeoRadiusQuery is used with GeoRadius to query geospatial index.
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
}
type GeoSearchLocationCmd struct {
// contains filtered or unexported fields
}
func NewGeoSearchLocationCmd(
ctx context.Context, opt *GeoSearchLocationQuery, args ...interface{},
) *GeoSearchLocationCmd
func (cmd *GeoSearchLocationCmd) Args() []interface{}
func (cmd *GeoSearchLocationCmd) Err() error
func (cmd *GeoSearchLocationCmd) FullName() string
func (cmd *GeoSearchLocationCmd) Name() string
func (cmd *GeoSearchLocationCmd) Result() ([]GeoLocation, error)
func (cmd *GeoSearchLocationCmd) SetErr(e error)
func (cmd *GeoSearchLocationCmd) SetFirstKeyPos(keyPos int8)
func (cmd *GeoSearchLocationCmd) SetVal(val []GeoLocation)
func (cmd *GeoSearchLocationCmd) String() string
func (cmd *GeoSearchLocationCmd) Val() []GeoLocation
type GeoSearchLocationQuery struct {
GeoSearchQuery
WithCoord bool
WithDist bool
WithHash bool
}
GeoSearchQuery is used for GEOSearch/GEOSearchStore command query.
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
}
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 HExpireArgs struct {
NX bool
XX bool
GT bool
LT bool
}
HGetEXExpirationType represents an expiration option for the HGETEX command.
type HGetEXExpirationType string
const (
HGetEXExpirationEX HGetEXExpirationType = "EX"
HGetEXExpirationPX HGetEXExpirationType = "PX"
HGetEXExpirationEXAT HGetEXExpirationType = "EXAT"
HGetEXExpirationPXAT HGetEXExpirationType = "PXAT"
HGetEXExpirationPERSIST HGetEXExpirationType = "PERSIST"
)
type HGetEXOptions struct {
ExpirationType HGetEXExpirationType
ExpirationVal int64
}
type HSetEXCondition string
const (
HSetEXFNX HSetEXCondition = "FNX" // Only set the fields if none of them already exist.
HSetEXFXX HSetEXCondition = "FXX" // Only set the fields if all already exist.
)
type HSetEXExpirationType string
const (
HSetEXExpirationEX HSetEXExpirationType = "EX"
HSetEXExpirationPX HSetEXExpirationType = "PX"
HSetEXExpirationEXAT HSetEXExpirationType = "EXAT"
HSetEXExpirationPXAT HSetEXExpirationType = "PXAT"
HSetEXExpirationKEEPTTL HSetEXExpirationType = "KEEPTTL"
)
type HSetEXOptions struct {
Condition HSetEXCondition
ExpirationType HSetEXExpirationType
ExpirationVal int64
}
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
HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
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
HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
HScanNoValues(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
HStrLen(ctx context.Context, key, field string) *IntCmd
HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
}
type Hook interface {
DialHook(next DialHook) DialHook
ProcessHook(next ProcessHook) ProcessHook
ProcessPipelineHook(next ProcessPipelineHook) ProcessPipelineHook
}
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 IndexDefinition struct {
KeyType string
Prefixes []string
DefaultScore float64
}
type IndexErrors struct {
IndexingFailures int
LastIndexingError string
LastIndexingErrorKey string
}
type InfoCmd struct {
// contains filtered or unexported fields
}
func NewInfoCmd(ctx context.Context, args ...interface{}) *InfoCmd
func (cmd *InfoCmd) Args() []interface{}
func (cmd *InfoCmd) Err() error
func (cmd *InfoCmd) FullName() string
func (cmd *InfoCmd) Item(section, key string) string
func (cmd *InfoCmd) Name() string
func (cmd *InfoCmd) Result() (map[string]map[string]string, error)
func (cmd *InfoCmd) SetErr(e error)
func (cmd *InfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *InfoCmd) SetVal(val map[string]map[string]string)
func (cmd *InfoCmd) String() string
func (cmd *InfoCmd) Val() map[string]map[string]string
type IntCmd struct {
// contains filtered or unexported fields
}
func NewIntCmd(ctx context.Context, args ...interface{}) *IntCmd
func NewIntResult(val int64, err error) *IntCmd
NewIntResult returns an IntCmd initialised with val and err for testing.
func (cmd *IntCmd) Args() []interface{}
func (cmd *IntCmd) Err() error
func (cmd *IntCmd) FullName() string
func (cmd *IntCmd) Name() string
func (cmd *IntCmd) Result() (int64, error)
func (cmd *IntCmd) SetErr(e error)
func (cmd *IntCmd) SetFirstKeyPos(keyPos int8)
func (cmd *IntCmd) SetVal(val int64)
func (cmd *IntCmd) String() string
func (cmd *IntCmd) Uint64() (uint64, error)
func (cmd *IntCmd) Val() int64
type IntPointerSliceCmd struct {
// contains filtered or unexported fields
}
func NewIntPointerSliceCmd(ctx context.Context, args ...interface{}) *IntPointerSliceCmd
NewIntPointerSliceCmd initialises an IntPointerSliceCmd
func (cmd *IntPointerSliceCmd) Args() []interface{}
func (cmd *IntPointerSliceCmd) Err() error
func (cmd *IntPointerSliceCmd) FullName() string
func (cmd *IntPointerSliceCmd) Name() string
func (cmd *IntPointerSliceCmd) Result() ([]*int64, error)
func (cmd *IntPointerSliceCmd) SetErr(e error)
func (cmd *IntPointerSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *IntPointerSliceCmd) SetVal(val []*int64)
func (cmd *IntPointerSliceCmd) String() string
func (cmd *IntPointerSliceCmd) Val() []*int64
type IntSliceCmd struct {
// contains filtered or unexported fields
}
func NewIntSliceCmd(ctx context.Context, args ...interface{}) *IntSliceCmd
func (cmd *IntSliceCmd) Args() []interface{}
func (cmd *IntSliceCmd) Err() error
func (cmd *IntSliceCmd) FullName() string
func (cmd *IntSliceCmd) Name() string
func (cmd *IntSliceCmd) Result() ([]int64, error)
func (cmd *IntSliceCmd) SetErr(e error)
func (cmd *IntSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *IntSliceCmd) SetVal(val []int64)
func (cmd *IntSliceCmd) String() string
func (cmd *IntSliceCmd) Val() []int64
type JSONArrIndexArgs struct {
Start int
Stop *int
}
type JSONArrTrimArgs struct {
Start int
Stop *int
}
type JSONCmd struct {
// contains filtered or unexported fields
}
func (cmd *JSONCmd) Args() []interface{}
func (cmd *JSONCmd) Err() error
func (cmd *JSONCmd) Expanded() (interface{}, error)
Expanded returns the result of the JSON.GET command as unmarshalled JSON.
func (cmd *JSONCmd) FullName() string
func (cmd *JSONCmd) Name() string
func (cmd *JSONCmd) Result() (string, error)
func (cmd *JSONCmd) SetErr(e error)
func (cmd *JSONCmd) SetFirstKeyPos(keyPos int8)
func (cmd *JSONCmd) SetVal(val string)
func (cmd *JSONCmd) String() string
func (cmd *JSONCmd) Val() string
Val returns the result of the JSON.GET command as a string.
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 struct {
Indent string
Newline string
Space string
}
type JSONSetArgs struct {
Key string
Path string
Value interface{}
}
type JSONSliceCmd struct {
// contains filtered or unexported fields
}
func NewJSONSliceCmd(ctx context.Context, args ...interface{}) *JSONSliceCmd
func (cmd *JSONSliceCmd) Args() []interface{}
func (cmd *JSONSliceCmd) Err() error
func (cmd *JSONSliceCmd) FullName() string
func (cmd *JSONSliceCmd) Name() string
func (cmd *JSONSliceCmd) Result() ([]interface{}, error)
func (cmd *JSONSliceCmd) SetErr(e error)
func (cmd *JSONSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *JSONSliceCmd) SetVal(val []interface{})
func (cmd *JSONSliceCmd) String() string
func (cmd *JSONSliceCmd) Val() []interface{}
type KeyFlags struct {
Key string
Flags []string
}
type KeyFlagsCmd struct {
// contains filtered or unexported fields
}
func NewKeyFlagsCmd(ctx context.Context, args ...interface{}) *KeyFlagsCmd
func (cmd *KeyFlagsCmd) Args() []interface{}
func (cmd *KeyFlagsCmd) Err() error
func (cmd *KeyFlagsCmd) FullName() string
func (cmd *KeyFlagsCmd) Name() string
func (cmd *KeyFlagsCmd) Result() ([]KeyFlags, error)
func (cmd *KeyFlagsCmd) SetErr(e error)
func (cmd *KeyFlagsCmd) SetFirstKeyPos(keyPos int8)
func (cmd *KeyFlagsCmd) SetVal(val []KeyFlags)
func (cmd *KeyFlagsCmd) String() string
func (cmd *KeyFlagsCmd) Val() []KeyFlags
type KeyValue struct {
Key string
Value string
}
type KeyValueSliceCmd struct {
// contains filtered or unexported fields
}
func NewKeyValueSliceCmd(ctx context.Context, args ...interface{}) *KeyValueSliceCmd
func (cmd *KeyValueSliceCmd) Args() []interface{}
func (cmd *KeyValueSliceCmd) Err() error
func (cmd *KeyValueSliceCmd) FullName() string
func (cmd *KeyValueSliceCmd) Name() string
func (cmd *KeyValueSliceCmd) Result() ([]KeyValue, error)
func (cmd *KeyValueSliceCmd) SetErr(e error)
func (cmd *KeyValueSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *KeyValueSliceCmd) SetVal(val []KeyValue)
func (cmd *KeyValueSliceCmd) String() string
func (cmd *KeyValueSliceCmd) Val() []KeyValue
type KeyValuesCmd struct {
// contains filtered or unexported fields
}
func NewKeyValuesCmd(ctx context.Context, args ...interface{}) *KeyValuesCmd
func (cmd *KeyValuesCmd) Args() []interface{}
func (cmd *KeyValuesCmd) Err() error
func (cmd *KeyValuesCmd) FullName() string
func (cmd *KeyValuesCmd) Name() string
func (cmd *KeyValuesCmd) Result() (string, []string, error)
func (cmd *KeyValuesCmd) SetErr(e error)
func (cmd *KeyValuesCmd) SetFirstKeyPos(keyPos int8)
func (cmd *KeyValuesCmd) SetVal(key string, val []string)
func (cmd *KeyValuesCmd) String() string
func (cmd *KeyValuesCmd) Val() (string, []string)
type LCSCmd struct {
// contains filtered or unexported fields
}
func NewLCSCmd(ctx context.Context, q *LCSQuery) *LCSCmd
func (cmd *LCSCmd) Args() []interface{}
func (cmd *LCSCmd) Err() error
func (cmd *LCSCmd) FullName() string
func (cmd *LCSCmd) Name() string
func (cmd *LCSCmd) Result() (*LCSMatch, error)
func (cmd *LCSCmd) SetErr(e error)
func (cmd *LCSCmd) SetFirstKeyPos(keyPos int8)
func (cmd *LCSCmd) SetVal(val *LCSMatch)
func (cmd *LCSCmd) String() string
func (cmd *LCSCmd) Val() *LCSMatch
LCSMatch is the result set of the LCS command.
type LCSMatch struct {
MatchString string
Matches []LCSMatchedPosition
Len int64
}
type LCSMatchedPosition struct {
Key1 LCSPosition
Key2 LCSPosition
// only for withMatchLen is true
MatchLen int64
}
type LCSPosition struct {
Start int64
End int64
}
LCSQuery is a parameter used for the LCS command
type LCSQuery struct {
Key1 string
Key2 string
Len bool
Idx bool
MinMatchLen int
WithMatchLen bool
}
type LPosArgs struct {
Rank, MaxLen int64
}
type Library struct {
Name string
Engine string
Functions []Function
Code string
}
LibraryInfo holds the library info.
type LibraryInfo struct {
LibName *string
LibVer *string
}
func WithLibraryName(libName string) LibraryInfo
WithLibraryName returns a valid LibraryInfo with library name only.
func WithLibraryVersion(libVer string) LibraryInfo
WithLibraryVersion returns a valid LibraryInfo with library version only.
func (info LibraryInfo) Validate() error
Validate checks if only one field in the struct is non-nil.
Limiter is the interface of a rate limiter or a circuit breaker.
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)
}
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
}
MapMapStringInterfaceCmd represents a command that returns a map of strings to interface{}.
type MapMapStringInterfaceCmd struct {
// contains filtered or unexported fields
}
func NewMapMapStringInterfaceCmd(ctx context.Context, args ...interface{}) *MapMapStringInterfaceCmd
func (cmd *MapMapStringInterfaceCmd) Args() []interface{}
func (cmd *MapMapStringInterfaceCmd) Err() error
func (cmd *MapMapStringInterfaceCmd) FullName() string
func (cmd *MapMapStringInterfaceCmd) Name() string
func (cmd *MapMapStringInterfaceCmd) Result() (map[string]interface{}, error)
func (cmd *MapMapStringInterfaceCmd) SetErr(e error)
func (cmd *MapMapStringInterfaceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapMapStringInterfaceCmd) SetVal(val map[string]interface{})
func (cmd *MapMapStringInterfaceCmd) String() string
func (cmd *MapMapStringInterfaceCmd) Val() map[string]interface{}
type MapStringIntCmd struct {
// contains filtered or unexported fields
}
func NewMapStringIntCmd(ctx context.Context, args ...interface{}) *MapStringIntCmd
func NewMapStringIntCmdResult(val map[string]int64, err error) *MapStringIntCmd
NewMapStringIntCmdResult returns a MapStringIntCmd initialised with val and err for testing.
func (cmd *MapStringIntCmd) Args() []interface{}
func (cmd *MapStringIntCmd) Err() error
func (cmd *MapStringIntCmd) FullName() string
func (cmd *MapStringIntCmd) Name() string
func (cmd *MapStringIntCmd) Result() (map[string]int64, error)
func (cmd *MapStringIntCmd) SetErr(e error)
func (cmd *MapStringIntCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringIntCmd) SetVal(val map[string]int64)
func (cmd *MapStringIntCmd) String() string
func (cmd *MapStringIntCmd) Val() map[string]int64
type MapStringInterfaceCmd struct {
// contains filtered or unexported fields
}
func NewMapStringInterfaceCmd(ctx context.Context, args ...interface{}) *MapStringInterfaceCmd
func (cmd *MapStringInterfaceCmd) Args() []interface{}
func (cmd *MapStringInterfaceCmd) Err() error
func (cmd *MapStringInterfaceCmd) FullName() string
func (cmd *MapStringInterfaceCmd) Name() string
func (cmd *MapStringInterfaceCmd) Result() (map[string]interface{}, error)
func (cmd *MapStringInterfaceCmd) SetErr(e error)
func (cmd *MapStringInterfaceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringInterfaceCmd) SetVal(val map[string]interface{})
func (cmd *MapStringInterfaceCmd) String() string
func (cmd *MapStringInterfaceCmd) Val() map[string]interface{}
type MapStringInterfaceSliceCmd struct {
// contains filtered or unexported fields
}
func NewMapStringInterfaceSliceCmd(ctx context.Context, args ...interface{}) *MapStringInterfaceSliceCmd
func (cmd *MapStringInterfaceSliceCmd) Args() []interface{}
func (cmd *MapStringInterfaceSliceCmd) Err() error
func (cmd *MapStringInterfaceSliceCmd) FullName() string
func (cmd *MapStringInterfaceSliceCmd) Name() string
func (cmd *MapStringInterfaceSliceCmd) Result() ([]map[string]interface{}, error)
func (cmd *MapStringInterfaceSliceCmd) SetErr(e error)
func (cmd *MapStringInterfaceSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringInterfaceSliceCmd) SetVal(val []map[string]interface{})
func (cmd *MapStringInterfaceSliceCmd) String() string
func (cmd *MapStringInterfaceSliceCmd) Val() []map[string]interface{}
------------------------------------------------------------------------------
type MapStringSliceInterfaceCmd struct {
// contains filtered or unexported fields
}
func NewMapStringSliceInterfaceCmd(ctx context.Context, args ...interface{}) *MapStringSliceInterfaceCmd
func (cmd *MapStringSliceInterfaceCmd) Args() []interface{}
func (cmd *MapStringSliceInterfaceCmd) Err() error
func (cmd *MapStringSliceInterfaceCmd) FullName() string
func (cmd *MapStringSliceInterfaceCmd) Name() string
func (cmd *MapStringSliceInterfaceCmd) Result() (map[string][]interface{}, error)
func (cmd *MapStringSliceInterfaceCmd) SetErr(e error)
func (cmd *MapStringSliceInterfaceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringSliceInterfaceCmd) SetVal(val map[string][]interface{})
func (cmd *MapStringSliceInterfaceCmd) String() string
func (cmd *MapStringSliceInterfaceCmd) Val() map[string][]interface{}
type MapStringStringCmd struct {
// contains filtered or unexported fields
}
func NewMapStringStringCmd(ctx context.Context, args ...interface{}) *MapStringStringCmd
func NewMapStringStringResult(val map[string]string, err error) *MapStringStringCmd
NewMapStringStringResult returns a MapStringStringCmd initialised with val and err for testing.
func (cmd *MapStringStringCmd) Args() []interface{}
func (cmd *MapStringStringCmd) Err() error
func (cmd *MapStringStringCmd) FullName() string
func (cmd *MapStringStringCmd) Name() string
func (cmd *MapStringStringCmd) Result() (map[string]string, error)
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
func (cmd *MapStringStringCmd) SetErr(e error)
func (cmd *MapStringStringCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringStringCmd) SetVal(val map[string]string)
func (cmd *MapStringStringCmd) String() string
func (cmd *MapStringStringCmd) Val() map[string]string
type MapStringStringSliceCmd struct {
// contains filtered or unexported fields
}
func NewMapStringStringSliceCmd(ctx context.Context, args ...interface{}) *MapStringStringSliceCmd
func (cmd *MapStringStringSliceCmd) Args() []interface{}
func (cmd *MapStringStringSliceCmd) Err() error
func (cmd *MapStringStringSliceCmd) FullName() string
func (cmd *MapStringStringSliceCmd) Name() string
func (cmd *MapStringStringSliceCmd) Result() ([]map[string]string, error)
func (cmd *MapStringStringSliceCmd) SetErr(e error)
func (cmd *MapStringStringSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MapStringStringSliceCmd) SetVal(val []map[string]string)
func (cmd *MapStringStringSliceCmd) String() string
func (cmd *MapStringStringSliceCmd) Val() []map[string]string
Message received as result of a PUBLISH command issued by another client.
type Message struct {
Channel string
Pattern string
Payload string
PayloadSlice []string
}
func (m *Message) String() string
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 ModuleLoadexConfig struct {
Path string
Conf map[string]interface{}
Args []interface{}
}
type MonitorCmd struct {
// contains filtered or unexported fields
}
func (cmd *MonitorCmd) Args() []interface{}
func (cmd *MonitorCmd) Err() error
func (cmd *MonitorCmd) FullName() string
func (cmd *MonitorCmd) Name() string
func (cmd *MonitorCmd) SetErr(e error)
func (cmd *MonitorCmd) SetFirstKeyPos(keyPos int8)
func (cmd *MonitorCmd) Start()
func (cmd *MonitorCmd) Stop()
func (cmd *MonitorCmd) String() string
type MonitorStatus int
type Node struct {
ID string
Endpoint string
IP string
Hostname string
Port int64
TLSPort int64
Role string
ReplicationOffset int64
Health string
}
Options keeps the settings to set up redis connection.
type Options struct {
// Network type, either tcp or unix.
//
// default: is tcp.
Network string
// Addr is the address formated as host:port
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: 3.
Protocol int
// Username is 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.
Username string
// Password is an 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)
// CredentialsProviderContext is an enhanced parameter of CredentialsProvider,
// done to maintain API compatibility. In the future,
// there might be a merge between CredentialsProviderContext and CredentialsProvider.
// There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider.
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
// StreamingCredentialsProvider is used to retrieve the credentials
// for the connection from an external source. Those credentials may change
// during the connection lifetime. This is useful for managed identity
// scenarios where the credentials are retrieved from an external source.
//
// Currently, this is a placeholder for the future implementation.
StreamingCredentialsProvider auth.StreamingCredentialsProvider
// DB is the database to be selected after connecting to the server.
DB int
// MaxRetries is the maximum number of retries before giving up.
// -1 (not 0) disables retries.
//
// default: 3 retries
MaxRetries int
// MinRetryBackoff is the minimum backoff between each retry.
// -1 disables backoff.
//
// default: 8 milliseconds
MinRetryBackoff time.Duration
// MaxRetryBackoff is the maximum backoff between each retry.
// -1 disables backoff.
// default: 512 milliseconds;
MaxRetryBackoff time.Duration
// DialTimeout for establishing new connections.
//
// default: 5 seconds
DialTimeout time.Duration
// ReadTimeout for socket reads. If reached, commands will fail
// with a timeout instead of blocking. Supported values:
//
// - `-1` - no timeout (block indefinitely).
// - `-2` - disables SetReadDeadline calls completely.
//
// default: 3 seconds
ReadTimeout time.Duration
// WriteTimeout for socket writes. If reached, commands will fail
// with a timeout instead of blocking. Supported values:
//
// - `-1` - no timeout (block indefinitely).
// - `-2` - disables SetWriteDeadline calls completely.
//
// default: 3 seconds
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
// ReadBufferSize is the size of the bufio.Reader buffer for each connection.
// Larger buffers can improve performance for commands that return large responses.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
ReadBufferSize int
// WriteBufferSize is the size of the bufio.Writer buffer for each connection.
// Larger buffers can improve performance for large pipelines and commands with many arguments.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
WriteBufferSize int
// PoolFIFO 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
// PoolSize is the 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
//
// default: 10 * runtime.GOMAXPROCS(0)
PoolSize int
// PoolTimeout is the amount of time client waits for connection if all connections
// are busy before returning an error.
//
// default: ReadTimeout + 1 second
PoolTimeout time.Duration
// MinIdleConns is the minimum number of idle connections which is useful when establishing
// new connection is slow. The idle connections are not closed by default.
//
// default: 0
MinIdleConns int
// MaxIdleConns is the maximum number of idle connections.
// The idle connections are not closed by default.
//
// default: 0
MaxIdleConns int
// MaxActiveConns is the 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.
// If the pool is full, the next call to Get() will block until a connection is released.
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.
// -1 disables idle timeout check.
//
// default: 30 minutes
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: 0
ConnMaxLifetime time.Duration
// TLSConfig to use. When set, TLS will be negotiated.
TLSConfig *tls.Config
// Limiter interface used to implement circuit breaker or rate limiter.
Limiter Limiter
// DisableIndentity - Disable set-lib on connect.
//
// default: false
//
// Deprecated: Use DisableIdentity instead.
DisableIndentity bool
// DisableIdentity is used to disable CLIENT SETINFO command on connect.
//
// default: false
DisableIdentity bool
// Add suffix to client name. Default is empty.
// IdentitySuffix - add suffix to client name.
IdentitySuffix string
// UnstableResp3 enables Unstable mode for Redis Search module with RESP3.
// When unstable mode is enabled, the client will use RESP3 protocol and only be able to use RawResult
UnstableResp3 bool
// FailingTimeoutSeconds is the timeout in seconds for marking a cluster node as failing.
// When a node is marked as failing, it will be avoided for this duration.
// Default is 15 seconds.
FailingTimeoutSeconds int
// contains filtered or unexported fields
}
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:
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
Pipeline implements pipelining as described in http://redis.io/topics/pipelining. Please note: it is not safe for concurrent use by multiple goroutines.
type Pipeline struct {
// contains filtered or unexported fields
}
▹ Example (Instrumentation)
func (c Pipeline) ACLCat(ctx context.Context) *StringSliceCmd
func (c Pipeline) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c Pipeline) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c Pipeline) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c Pipeline) ACLList(ctx context.Context) *StringSliceCmd
func (c Pipeline) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c Pipeline) ACLLogReset(ctx context.Context) *StatusCmd
func (c Pipeline) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
func (c Pipeline) Append(ctx context.Context, key, value string) *IntCmd
func (c Pipeline) Auth(ctx context.Context, password string) *StatusCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c Pipeline) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c Pipeline) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Pipeline) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Pipeline) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c Pipeline) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c Pipeline) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c *Pipeline) BatchProcess(ctx context.Context, cmd ...Cmder) error
BatchProcess queues multiple cmds for later execution.
func (c Pipeline) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c Pipeline) BgSave(ctx context.Context) *StatusCmd
func (c Pipeline) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c Pipeline) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c Pipeline) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c Pipeline) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Pipeline) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Pipeline) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c Pipeline) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c Pipeline) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c Pipeline) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c Pipeline) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c Pipeline) ClientID(ctx context.Context) *IntCmd
func (c Pipeline) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c Pipeline) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c Pipeline) ClientList(ctx context.Context) *StringCmd
func (c Pipeline) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c Pipeline) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd
ClientSetInfo sends a CLIENT SETINFO command with the provided info.
func (c Pipeline) ClientSetName(ctx context.Context, name string) *BoolCmd
ClientSetName assigns a name to the connection.
func (c Pipeline) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c Pipeline) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c Pipeline) ClientUnpause(ctx context.Context) *BoolCmd
func (c Pipeline) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Pipeline) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Pipeline) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c Pipeline) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c Pipeline) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Pipeline) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Pipeline) ClusterFailover(ctx context.Context) *StatusCmd
func (c Pipeline) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c Pipeline) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c Pipeline) ClusterInfo(ctx context.Context) *StringCmd
func (c Pipeline) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Pipeline) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c Pipeline) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c Pipeline) ClusterMyID(ctx context.Context) *StringCmd
func (c Pipeline) ClusterMyShardID(ctx context.Context) *StringCmd
func (c Pipeline) ClusterNodes(ctx context.Context) *StringCmd
func (c Pipeline) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c Pipeline) ClusterResetHard(ctx context.Context) *StatusCmd
func (c Pipeline) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c Pipeline) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c Pipeline) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c Pipeline) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c Pipeline) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c *Pipeline) Cmds() []Cmder
func (c Pipeline) Command(ctx context.Context) *CommandsInfoCmd
func (c Pipeline) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c Pipeline) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c Pipeline) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c Pipeline) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c Pipeline) ConfigResetStat(ctx context.Context) *StatusCmd
func (c Pipeline) ConfigRewrite(ctx context.Context) *StatusCmd
func (c Pipeline) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c Pipeline) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c Pipeline) DBSize(ctx context.Context) *IntCmd
func (c Pipeline) DebugObject(ctx context.Context, key string) *StringCmd
func (c Pipeline) Decr(ctx context.Context, key string) *IntCmd
func (c Pipeline) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c Pipeline) Del(ctx context.Context, keys ...string) *IntCmd
func (c *Pipeline) Discard()
Discard resets the pipeline and discards queued commands.
func (c *Pipeline) Do(ctx context.Context, args ...interface{}) *Cmd
Do queues the custom command for later execution.
func (c Pipeline) Dump(ctx context.Context, key string) *StringCmd
func (c Pipeline) Echo(ctx context.Context, message interface{}) *StringCmd
func (c Pipeline) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Pipeline) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Pipeline) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Pipeline) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
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 (c Pipeline) Exists(ctx context.Context, keys ...string) *IntCmd
func (c Pipeline) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Pipeline) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c Pipeline) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c Pipeline) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c Pipeline) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Pipeline) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Pipeline) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c Pipeline) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c Pipeline) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c Pipeline) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c Pipeline) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c Pipeline) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c Pipeline) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c Pipeline) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c Pipeline) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c Pipeline) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c Pipeline) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c Pipeline) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c Pipeline) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Pipeline) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Pipeline) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Pipeline) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c Pipeline) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Pipeline) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c Pipeline) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Pipeline) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Pipeline) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Pipeline) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Pipeline) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c Pipeline) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Pipeline) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Pipeline) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c Pipeline) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c Pipeline) FlushAll(ctx context.Context) *StatusCmd
func (c Pipeline) FlushAllAsync(ctx context.Context) *StatusCmd
func (c Pipeline) FlushDB(ctx context.Context) *StatusCmd
func (c Pipeline) FlushDBAsync(ctx context.Context) *StatusCmd
func (c Pipeline) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c Pipeline) FunctionDump(ctx context.Context) *StringCmd
func (c Pipeline) FunctionFlush(ctx context.Context) *StringCmd
func (c Pipeline) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c Pipeline) FunctionKill(ctx context.Context) *StringCmd
func (c Pipeline) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c Pipeline) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c Pipeline) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c Pipeline) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c Pipeline) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c Pipeline) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c Pipeline) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c Pipeline) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c Pipeline) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c Pipeline) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c Pipeline) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c Pipeline) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c Pipeline) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c Pipeline) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c Pipeline) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c Pipeline) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c Pipeline) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c Pipeline) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c Pipeline) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c Pipeline) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c Pipeline) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c Pipeline) HExists(ctx context.Context, key, field string) *BoolCmd
func (c Pipeline) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Pipeline) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Pipeline) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Pipeline) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Pipeline) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Pipeline) HGet(ctx context.Context, key, field string) *StringCmd
func (c Pipeline) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c Pipeline) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Pipeline) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Pipeline) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c Pipeline) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c Pipeline) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c Pipeline) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c Pipeline) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c Pipeline) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Pipeline) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Pipeline) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Pipeline) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Pipeline) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Pipeline) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c Pipeline) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c Pipeline) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c Pipeline) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c Pipeline) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Pipeline) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c Pipeline) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c Pipeline) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c Pipeline) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c Pipeline) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c Pipeline) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c Pipeline) HVals(ctx context.Context, key string) *StringSliceCmd
func (c Pipeline) Hello(ctx context.Context, ver int, username, password, clientName string, ) *MapStringInterfaceCmd
Hello sets the resp protocol used.
func (c Pipeline) Incr(ctx context.Context, key string) *IntCmd
func (c Pipeline) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c Pipeline) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c Pipeline) Info(ctx context.Context, sections ...string) *StringCmd
func (c Pipeline) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c Pipeline) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c Pipeline) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c Pipeline) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c Pipeline) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Pipeline) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Pipeline) LLen(ctx context.Context, key string) *IntCmd
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 (c Pipeline) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c Pipeline) LPop(ctx context.Context, key string) *StringCmd
func (c Pipeline) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Pipeline) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c Pipeline) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c Pipeline) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Pipeline) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Pipeline) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Pipeline) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c Pipeline) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c Pipeline) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c Pipeline) LastSave(ctx context.Context) *IntCmd
func (c *Pipeline) Len() int
Len returns the number of queued commands.
func (c Pipeline) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c Pipeline) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c Pipeline) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c Pipeline) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c Pipeline) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c Pipeline) Move(ctx context.Context, key string, db int) *BoolCmd
func (c Pipeline) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c Pipeline) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c Pipeline) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c Pipeline) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c Pipeline) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Pipeline) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Pipeline) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c Pipeline) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c Pipeline) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c Pipeline) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
func (c Pipeline) PTTL(ctx context.Context, key string) *DurationCmd
func (c Pipeline) Persist(ctx context.Context, key string) *BoolCmd
func (c Pipeline) Ping(ctx context.Context) *StatusCmd
func (c *Pipeline) Pipeline() Pipeliner
func (c *Pipeline) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c *Pipeline) Process(ctx context.Context, cmd Cmder) error
Process queues the cmd for later execution.
func (c Pipeline) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Pipeline) PubSubNumPat(ctx context.Context) *IntCmd
func (c Pipeline) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Pipeline) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Pipeline) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Pipeline) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c Pipeline) Quit(_ context.Context) *StatusCmd
func (c Pipeline) RPop(ctx context.Context, key string) *StringCmd
func (c Pipeline) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Pipeline) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c Pipeline) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Pipeline) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Pipeline) RandomKey(ctx context.Context) *StringCmd
func (c Pipeline) ReadOnly(ctx context.Context) *StatusCmd
func (c Pipeline) ReadWrite(ctx context.Context) *StatusCmd
func (c Pipeline) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c Pipeline) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c Pipeline) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Pipeline) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Pipeline) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Pipeline) SCard(ctx context.Context, key string) *IntCmd
func (c Pipeline) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c Pipeline) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Pipeline) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c Pipeline) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Pipeline) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Pipeline) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c Pipeline) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c Pipeline) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c Pipeline) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c Pipeline) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c Pipeline) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c Pipeline) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c Pipeline) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c Pipeline) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c Pipeline) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c Pipeline) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Pipeline) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Pipeline) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c Pipeline) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Pipeline) Save(ctx context.Context) *StatusCmd
func (c Pipeline) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c Pipeline) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c Pipeline) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c Pipeline) ScriptFlush(ctx context.Context) *StatusCmd
func (c Pipeline) ScriptKill(ctx context.Context) *StatusCmd
func (c Pipeline) ScriptLoad(ctx context.Context, script string) *StringCmd
func (c Pipeline) Select(ctx context.Context, index int) *StatusCmd
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 (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 (c Pipeline) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c Pipeline) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c Pipeline) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c Pipeline) Shutdown(ctx context.Context) *StatusCmd
func (c Pipeline) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c Pipeline) ShutdownSave(ctx context.Context) *StatusCmd
func (c Pipeline) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c Pipeline) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c Pipeline) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Pipeline) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c Pipeline) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Pipeline) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c Pipeline) StrLen(ctx context.Context, key string) *IntCmd
func (c Pipeline) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd
func (c Pipeline) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) TTL(ctx context.Context, key string) *DurationCmd
func (c Pipeline) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c Pipeline) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *Pipeline) TxPipeline() Pipeliner
func (c *Pipeline) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c Pipeline) Type(ctx context.Context, key string) *StatusCmd
func (c Pipeline) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c Pipeline) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c Pipeline) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c Pipeline) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c Pipeline) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c Pipeline) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c Pipeline) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c Pipeline) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c Pipeline) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c Pipeline) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c Pipeline) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c Pipeline) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c Pipeline) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c Pipeline) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c Pipeline) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c Pipeline) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c Pipeline) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Pipeline) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Pipeline) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c Pipeline) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c Pipeline) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
func (c Pipeline) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c Pipeline) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c Pipeline) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c Pipeline) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c Pipeline) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c Pipeline) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c Pipeline) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c Pipeline) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c Pipeline) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c Pipeline) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c Pipeline) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Pipeline) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c Pipeline) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Pipeline) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c Pipeline) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c Pipeline) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c Pipeline) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c Pipeline) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c Pipeline) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c Pipeline) XLen(ctx context.Context, stream string) *IntCmd
func (c Pipeline) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c Pipeline) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c Pipeline) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Pipeline) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c Pipeline) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c Pipeline) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c Pipeline) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c Pipeline) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Pipeline) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c Pipeline) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c Pipeline) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c Pipeline) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c Pipeline) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c Pipeline) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c Pipeline) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c Pipeline) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c Pipeline) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c Pipeline) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c Pipeline) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c Pipeline) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c Pipeline) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c Pipeline) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c Pipeline) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c Pipeline) ZCard(ctx context.Context, key string) *IntCmd
func (c Pipeline) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c Pipeline) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c Pipeline) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c Pipeline) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c Pipeline) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c Pipeline) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c Pipeline) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Pipeline) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c Pipeline) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c Pipeline) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c Pipeline) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c Pipeline) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Pipeline) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Pipeline) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c Pipeline) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c Pipeline) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Pipeline) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c Pipeline) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c Pipeline) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Pipeline) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Pipeline) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c Pipeline) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c Pipeline) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c Pipeline) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c Pipeline) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Pipeline) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c Pipeline) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c Pipeline) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c Pipeline) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Pipeline) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Pipeline) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Pipeline) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c Pipeline) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c Pipeline) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c Pipeline) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Pipeline) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c Pipeline) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c Pipeline) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c Pipeline) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
Pipeliner is a 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 Pipeliner interface {
StatefulCmdable
// Len obtains 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 queues the cmd for later execution.
Process(ctx context.Context, cmd Cmder) error
// BatchProcess adds multiple commands to be executed into the pipeline buffer.
BatchProcess(ctx context.Context, cmd ...Cmder) error
// Discard discards all commands in the pipeline buffer that have not yet been executed.
Discard()
// Exec sends all the commands buffered in the pipeline to the redis server.
Exec(ctx context.Context) ([]Cmder, error)
// Cmds returns the list of queued commands.
Cmds() []Cmder
}
Pong received as result of a PING command issued by another client.
type Pong struct {
Payload string
}
func (p *Pong) String() string
type PoolStats pool.Stats
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 func(ctx context.Context, cmd Cmder) error
type ProcessPipelineHook func(ctx context.Context, cmds []Cmder) error
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.
type PubSub struct {
// contains filtered or unexported fields
}
▹ Example
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 received for 1 minute.
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 (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 (c *PubSub) Close() error
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 (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 (c *PubSub) Ping(ctx context.Context, payload ...string) error
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
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 (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 (c *PubSub) SSubscribe(ctx context.Context, channels ...string) error
SSubscribe Subscribes the client to the specified shard channels.
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 (c *PubSub) String() string
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 (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 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 struct {
Rank int64
Score float64
}
type RankWithScoreCmd struct {
// contains filtered or unexported fields
}
func NewRankWithScoreCmd(ctx context.Context, args ...interface{}) *RankWithScoreCmd
func (cmd *RankWithScoreCmd) Args() []interface{}
func (cmd *RankWithScoreCmd) Err() error
func (cmd *RankWithScoreCmd) FullName() string
func (cmd *RankWithScoreCmd) Name() string
func (cmd *RankWithScoreCmd) Result() (RankScore, error)
func (cmd *RankWithScoreCmd) SetErr(e error)
func (cmd *RankWithScoreCmd) SetFirstKeyPos(keyPos int8)
func (cmd *RankWithScoreCmd) SetVal(val RankScore)
func (cmd *RankWithScoreCmd) String() string
func (cmd *RankWithScoreCmd) Val() RankScore
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.
type Ring struct {
// contains filtered or unexported fields
}
func NewRing(opt *RingOptions) *Ring
▹ Example
func (c Ring) ACLCat(ctx context.Context) *StringSliceCmd
func (c Ring) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c Ring) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c Ring) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c Ring) ACLList(ctx context.Context) *StringSliceCmd
func (c Ring) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c Ring) ACLLogReset(ctx context.Context) *StatusCmd
func (c Ring) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
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 (c Ring) Append(ctx context.Context, key, value string) *IntCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Ring) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c Ring) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c Ring) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Ring) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Ring) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c Ring) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c Ring) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c Ring) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c Ring) BgSave(ctx context.Context) *StatusCmd
func (c Ring) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c Ring) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c Ring) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c Ring) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Ring) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Ring) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c Ring) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c Ring) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c Ring) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c Ring) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Ring) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c Ring) ClientID(ctx context.Context) *IntCmd
func (c Ring) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c Ring) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c Ring) ClientList(ctx context.Context) *StringCmd
func (c Ring) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c Ring) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c Ring) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c Ring) ClientUnpause(ctx context.Context) *BoolCmd
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 (c Ring) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Ring) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Ring) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c Ring) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c Ring) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Ring) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Ring) ClusterFailover(ctx context.Context) *StatusCmd
func (c Ring) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c Ring) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c Ring) ClusterInfo(ctx context.Context) *StringCmd
func (c Ring) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Ring) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c Ring) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c Ring) ClusterMyID(ctx context.Context) *StringCmd
func (c Ring) ClusterMyShardID(ctx context.Context) *StringCmd
func (c Ring) ClusterNodes(ctx context.Context) *StringCmd
func (c Ring) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c Ring) ClusterResetHard(ctx context.Context) *StatusCmd
func (c Ring) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c Ring) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c Ring) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c Ring) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c Ring) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c Ring) Command(ctx context.Context) *CommandsInfoCmd
func (c Ring) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c Ring) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c Ring) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c Ring) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c Ring) ConfigResetStat(ctx context.Context) *StatusCmd
func (c Ring) ConfigRewrite(ctx context.Context) *StatusCmd
func (c Ring) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c Ring) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c Ring) DBSize(ctx context.Context) *IntCmd
func (c Ring) DebugObject(ctx context.Context, key string) *StringCmd
func (c Ring) Decr(ctx context.Context, key string) *IntCmd
func (c Ring) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c Ring) Del(ctx context.Context, keys ...string) *IntCmd
func (c Ring) Do(ctx context.Context, args ...interface{}) *Cmd
func (c Ring) Dump(ctx context.Context, key string) *StringCmd
func (c Ring) Echo(ctx context.Context, message interface{}) *StringCmd
func (c Ring) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Ring) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Ring) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Ring) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Ring) Exists(ctx context.Context, keys ...string) *IntCmd
func (c Ring) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Ring) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c Ring) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c Ring) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c Ring) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Ring) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Ring) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c Ring) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c Ring) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c Ring) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c Ring) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c Ring) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c Ring) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c Ring) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c Ring) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c Ring) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c Ring) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c Ring) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c Ring) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Ring) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Ring) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Ring) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c Ring) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Ring) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c Ring) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Ring) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Ring) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Ring) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Ring) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c Ring) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Ring) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Ring) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c Ring) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c Ring) FlushAll(ctx context.Context) *StatusCmd
func (c Ring) FlushAllAsync(ctx context.Context) *StatusCmd
func (c Ring) FlushDB(ctx context.Context) *StatusCmd
func (c Ring) FlushDBAsync(ctx context.Context) *StatusCmd
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 (c Ring) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c Ring) FunctionDump(ctx context.Context) *StringCmd
func (c Ring) FunctionFlush(ctx context.Context) *StringCmd
func (c Ring) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c Ring) FunctionKill(ctx context.Context) *StringCmd
func (c Ring) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c Ring) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c Ring) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c Ring) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c Ring) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c Ring) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c Ring) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c Ring) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c Ring) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c Ring) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c Ring) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c Ring) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c Ring) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c Ring) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c Ring) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c Ring) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c Ring) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c Ring) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c Ring) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c Ring) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c *Ring) GetShardClientForKey(key string) (*Client, error)
GetShardClientForKey returns the shard client that would handle the given key. This can be used to determine which shard a particular key/channel would be routed to.
func (c *Ring) GetShardClients() []*Client
GetShardClients returns a list of all shard clients in the ring. This can be used to create dedicated connections (e.g., PubSub) for each shard.
func (c Ring) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c Ring) HExists(ctx context.Context, key, field string) *BoolCmd
func (c Ring) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Ring) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Ring) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Ring) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Ring) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Ring) HGet(ctx context.Context, key, field string) *StringCmd
func (c Ring) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c Ring) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Ring) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Ring) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c Ring) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c Ring) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c Ring) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c Ring) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c Ring) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Ring) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Ring) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Ring) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Ring) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Ring) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c Ring) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c Ring) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c Ring) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c Ring) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Ring) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c Ring) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c Ring) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c Ring) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c Ring) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c Ring) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c Ring) HVals(ctx context.Context, key string) *StringSliceCmd
func (c Ring) Incr(ctx context.Context, key string) *IntCmd
func (c Ring) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c Ring) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c Ring) Info(ctx context.Context, sections ...string) *StringCmd
func (c Ring) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Ring) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c Ring) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c Ring) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c Ring) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c Ring) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c Ring) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Ring) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Ring) LLen(ctx context.Context, key string) *IntCmd
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 (c Ring) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c Ring) LPop(ctx context.Context, key string) *StringCmd
func (c Ring) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Ring) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c Ring) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c Ring) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Ring) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Ring) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Ring) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c Ring) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c Ring) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c Ring) LastSave(ctx context.Context) *IntCmd
func (c *Ring) Len() int
Len returns the current number of shards in the ring.
func (c Ring) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c Ring) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c Ring) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c Ring) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c Ring) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c Ring) Move(ctx context.Context, key string, db int) *BoolCmd
func (c Ring) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c Ring) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c Ring) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c Ring) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c *Ring) OnNewNode(fn func(rdb *Client))
func (c *Ring) Options() *RingOptions
Options returns read-only Options that were used to create the client.
func (c Ring) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Ring) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Ring) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c Ring) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c Ring) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c Ring) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
func (c *Ring) PSubscribe(ctx context.Context, channels ...string) *PubSub
PSubscribe subscribes the client to the given patterns.
func (c Ring) PTTL(ctx context.Context, key string) *DurationCmd
func (c Ring) Persist(ctx context.Context, key string) *BoolCmd
func (c Ring) Ping(ctx context.Context) *StatusCmd
func (c *Ring) Pipeline() Pipeliner
func (c *Ring) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c *Ring) PoolStats() *PoolStats
PoolStats returns accumulated connection pool stats.
func (c *Ring) Process(ctx context.Context, cmd Cmder) error
func (c Ring) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Ring) PubSubNumPat(ctx context.Context) *IntCmd
func (c Ring) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Ring) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Ring) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Ring) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c Ring) Quit(_ context.Context) *StatusCmd
func (c Ring) RPop(ctx context.Context, key string) *StringCmd
func (c Ring) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Ring) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c Ring) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Ring) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Ring) RandomKey(ctx context.Context) *StringCmd
func (c Ring) ReadOnly(ctx context.Context) *StatusCmd
func (c Ring) ReadWrite(ctx context.Context) *StatusCmd
func (c Ring) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c Ring) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c Ring) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Ring) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Ring) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Ring) SCard(ctx context.Context, key string) *IntCmd
func (c Ring) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c Ring) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Ring) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c Ring) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Ring) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Ring) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c Ring) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c Ring) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c Ring) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c Ring) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c Ring) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c Ring) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c Ring) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c Ring) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c Ring) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c Ring) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Ring) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c *Ring) SSubscribe(ctx context.Context, channels ...string) *PubSub
SSubscribe Subscribes the client to the specified shard channels.
func (c Ring) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c Ring) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Ring) Save(ctx context.Context) *StatusCmd
func (c Ring) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c Ring) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c Ring) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c Ring) ScriptFlush(ctx context.Context) *StatusCmd
func (c Ring) ScriptKill(ctx context.Context) *StatusCmd
func (c Ring) ScriptLoad(ctx context.Context, script string) *StringCmd
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 (c *Ring) SetAddrs(addrs map[string]string)
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 (c Ring) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c Ring) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c Ring) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c Ring) Shutdown(ctx context.Context) *StatusCmd
func (c Ring) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c Ring) ShutdownSave(ctx context.Context) *StatusCmd
func (c Ring) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c Ring) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c Ring) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Ring) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c Ring) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Ring) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c Ring) StrLen(ctx context.Context, key string) *IntCmd
func (c *Ring) Subscribe(ctx context.Context, channels ...string) *PubSub
Subscribe subscribes the client to the specified channels.
func (c Ring) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Ring) TTL(ctx context.Context, key string) *DurationCmd
func (c Ring) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c Ring) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *Ring) TxPipeline() Pipeliner
func (c *Ring) TxPipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
func (c Ring) Type(ctx context.Context, key string) *StatusCmd
func (c Ring) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c Ring) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c Ring) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c Ring) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c Ring) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c Ring) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c Ring) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c Ring) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c Ring) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c Ring) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c Ring) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c Ring) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c Ring) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c Ring) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c Ring) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c Ring) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c Ring) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Ring) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Ring) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c Ring) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c Ring) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
func (c *Ring) Watch(ctx context.Context, fn func(*Tx) error, keys ...string) error
func (c Ring) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c Ring) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c Ring) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c Ring) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c Ring) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c Ring) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c Ring) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c Ring) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c Ring) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c Ring) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c Ring) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Ring) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c Ring) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Ring) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c Ring) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c Ring) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c Ring) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c Ring) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c Ring) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c Ring) XLen(ctx context.Context, stream string) *IntCmd
func (c Ring) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c Ring) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c Ring) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Ring) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c Ring) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c Ring) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c Ring) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c Ring) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Ring) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c Ring) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c Ring) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c Ring) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c Ring) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c Ring) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c Ring) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c Ring) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c Ring) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c Ring) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c Ring) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c Ring) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c Ring) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c Ring) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c Ring) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c Ring) ZCard(ctx context.Context, key string) *IntCmd
func (c Ring) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c Ring) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c Ring) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c Ring) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c Ring) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c Ring) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c Ring) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Ring) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c Ring) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c Ring) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c Ring) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c Ring) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Ring) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Ring) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c Ring) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c Ring) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Ring) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c Ring) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c Ring) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Ring) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Ring) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c Ring) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c Ring) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c Ring) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c Ring) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Ring) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c Ring) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c Ring) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c Ring) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Ring) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Ring) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Ring) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c Ring) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c Ring) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c Ring) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Ring) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c Ring) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c Ring) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c Ring) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
RingOptions are used to configure a ring client and should be passed to NewRing.
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 executing HeartbeatFn to check shards availability.
// Shard is considered down after 3 subsequent failed checks.
HeartbeatFrequency time.Duration
// A function used to check the shard liveness
// if not set, defaults to defaultHeartbeatFn
HeartbeatFn func(ctx context.Context, client *Client) bool
// 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
// 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)
// CredentialsProviderContext is an enhanced parameter of CredentialsProvider,
// done to maintain API compatibility. In the future,
// there might be a merge between CredentialsProviderContext and CredentialsProvider.
// There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider.
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
// StreamingCredentialsProvider is used to retrieve the credentials
// for the connection from an external source. Those credentials may change
// during the connection lifetime. This is useful for managed identity
// scenarios where the credentials are retrieved from an external source.
//
// Currently, this is a placeholder for the future implementation.
StreamingCredentialsProvider auth.StreamingCredentialsProvider
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
// ReadBufferSize is the size of the bufio.Reader buffer for each connection.
// Larger buffers can improve performance for commands that return large responses.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
ReadBufferSize int
// WriteBufferSize is the size of the bufio.Writer buffer for each connection.
// Larger buffers can improve performance for large pipelines and commands with many arguments.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
WriteBufferSize int
TLSConfig *tls.Config
Limiter Limiter
// DisableIndentity - Disable set-lib on connect.
//
// default: false
//
// Deprecated: Use DisableIdentity instead.
DisableIndentity bool
// DisableIdentity is used to disable CLIENT SETINFO command on connect.
//
// default: false
DisableIdentity bool
IdentitySuffix string
UnstableResp3 bool
}
type RunningScript struct {
Name string
Command []string
Duration time.Duration
}
type ScanCmd struct {
// contains filtered or unexported fields
}
func NewScanCmd(ctx context.Context, process cmdable, args ...interface{}) *ScanCmd
func NewScanCmdResult(keys []string, cursor uint64, err error) *ScanCmd
NewScanCmdResult returns a ScanCmd initialised with val and err for testing.
func (cmd *ScanCmd) Args() []interface{}
func (cmd *ScanCmd) Err() error
func (cmd *ScanCmd) FullName() string
func (cmd *ScanCmd) Iterator() *ScanIterator
Iterator creates a new ScanIterator.
▹ Example
func (cmd *ScanCmd) Name() string
func (cmd *ScanCmd) Result() (keys []string, cursor uint64, err error)
func (cmd *ScanCmd) SetErr(e error)
func (cmd *ScanCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ScanCmd) SetVal(page []string, cursor uint64)
func (cmd *ScanCmd) String() string
func (cmd *ScanCmd) Val() (keys []string, cursor uint64)
type ScanDump struct {
Iter int64
Data string
}
type ScanDumpCmd struct {
// contains filtered or unexported fields
}
func (cmd *ScanDumpCmd) Args() []interface{}
func (cmd *ScanDumpCmd) Err() error
func (cmd *ScanDumpCmd) FullName() string
func (cmd *ScanDumpCmd) Name() string
func (cmd *ScanDumpCmd) Result() (ScanDump, error)
func (cmd *ScanDumpCmd) SetErr(e error)
func (cmd *ScanDumpCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ScanDumpCmd) SetVal(val ScanDump)
func (cmd *ScanDumpCmd) String() string
func (cmd *ScanDumpCmd) Val() ScanDump
ScanIterator is used to incrementally iterate over a collection of elements.
type ScanIterator struct {
// contains filtered or unexported fields
}
▹ Example
func (it *ScanIterator) Err() error
Err returns the last iterator error, if any.
func (it *ScanIterator) Next(ctx context.Context) bool
Next advances the cursor and returns true if more values can be read.
func (it *ScanIterator) Val() string
Val returns the key/field at the current cursor position.
Scanner internal/hscan.Scanner exposed interface.
type Scanner = hscan.Scanner
type Script struct {
// contains filtered or unexported fields
}
▹ Example
func NewScript(src string) *Script
func (s *Script) Eval(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd
func (s *Script) EvalRO(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd
func (s *Script) EvalSha(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd
func (s *Script) EvalShaRO(ctx context.Context, c Scripter, keys []string, args ...interface{}) *Cmd
func (s *Script) Exists(ctx context.Context, c Scripter) *BoolSliceCmd
func (s *Script) Hash() string
func (s *Script) Load(ctx context.Context, c Scripter) *StringCmd
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 (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 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 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 SearchAggregator int
func (a SearchAggregator) String() string
SearchBuilder provides a fluent API for FT.SEARCH (see original FTSearchOptions for all options). EXPERIMENTAL: this API is subject to change, use with caution.
type SearchBuilder struct {
// contains filtered or unexported fields
}
func (b *SearchBuilder) CountOnly() *SearchBuilder
func (b *SearchBuilder) Dialect(version int) *SearchBuilder
Dialect sets DIALECT <version>.
func (b *SearchBuilder) Expander(expander string) *SearchBuilder
Expander sets EXPANDER <expander>.
func (b *SearchBuilder) ExplainScore() *SearchBuilder
ExplainScore includes EXPLAINSCORE.
func (b *SearchBuilder) Filter(field string, min, max interface{}) *SearchBuilder
Filter adds a FILTER clause: FILTER <field> <min> <max>.
func (b *SearchBuilder) GeoFilter(field string, lon, lat, radius float64, unit string) *SearchBuilder
GeoFilter adds a GEOFILTER clause: GEOFILTER <field> <lon> <lat> <radius> <unit>.
func (b *SearchBuilder) InFields(fields ...interface{}) *SearchBuilder
InFields restricts the search to the given fields.
func (b *SearchBuilder) InKeys(keys ...interface{}) *SearchBuilder
InKeys restricts the search to the given keys.
func (b *SearchBuilder) InOrder() *SearchBuilder
InOrder includes INORDER.
func (b *SearchBuilder) Language(lang string) *SearchBuilder
Language sets LANGUAGE <lang>.
func (b *SearchBuilder) Limit(offset, count int) *SearchBuilder
Limit sets OFFSET and COUNT. CountOnly uses LIMIT 0 0.
func (b *SearchBuilder) NoContent() *SearchBuilder
NoContent includes NOCONTENT.
func (b *SearchBuilder) NoStopWords() *SearchBuilder
NoStopWords includes NOSTOPWORDS.
func (b *SearchBuilder) Param(key string, value interface{}) *SearchBuilder
Param adds a single PARAMS <k> <v>.
func (b *SearchBuilder) ParamsMap(p map[string]interface{}) *SearchBuilder
ParamsMap adds multiple PARAMS at once.
func (b *SearchBuilder) Payload(payload string) *SearchBuilder
Payload sets PAYLOAD <payload>.
func (b *SearchBuilder) ReturnAs(field, alias string) *SearchBuilder
ReturnAs adds RETURN <field> AS <alias>.
func (b *SearchBuilder) ReturnFields(fields ...string) *SearchBuilder
ReturnFields adds simple RETURN <n> <field>...
func (b *SearchBuilder) Run() (FTSearchResult, error)
Run executes FT.SEARCH and returns a typed result.
func (b *SearchBuilder) Scorer(scorer string) *SearchBuilder
Scorer sets SCORER <scorer>.
func (b *SearchBuilder) Slop(slop int) *SearchBuilder
Slop adds SLOP <n>.
func (b *SearchBuilder) SortBy(field string, asc bool) *SearchBuilder
SortBy adds SORTBY <field> ASC|DESC.
func (b *SearchBuilder) Timeout(timeout int) *SearchBuilder
Timeout adds TIMEOUT <ms>.
func (b *SearchBuilder) Verbatim() *SearchBuilder
Verbatim includes VERBATIM.
func (b *SearchBuilder) WithPayloads() *SearchBuilder
WithPayloads includes WITHPAYLOADS.
func (b *SearchBuilder) WithScores() *SearchBuilder
WithScores includes WITHSCORES.
func (b *SearchBuilder) WithSortByCount() *SearchBuilder
WithSortByCount includes WITHCOUNT (when used with SortBy).
func (b *SearchBuilder) WithSortKeys() *SearchBuilder
WithSortKeys includes WITHSORTKEYS.
type SearchCmdable interface {
FT_List(ctx context.Context) *StringSliceCmd
FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTInfo(ctx context.Context, index string) *FTInfoCmd
FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
}
type SearchFieldType int
func (t SearchFieldType) String() string
type SearchQuery []interface{}
func FTSearchQuery(query string, options *FTSearchOptions) (SearchQuery, error)
FTSearchQuery - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
SentinelClient is a client for a Redis Sentinel.
type SentinelClient struct {
// contains filtered or unexported fields
}
func NewSentinelClient(opt *Options) *SentinelClient
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 (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 (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 (c *SentinelClient) FlushConfig(ctx context.Context) *StatusCmd
FlushConfig forces Sentinel to rewrite its configuration on disk, including the current Sentinel state.
func (c *SentinelClient) GetMasterAddrByName(ctx context.Context, name string) *StringSliceCmd
func (c *SentinelClient) Master(ctx context.Context, name string) *MapStringStringCmd
Master shows the state and info of the specified master.
func (c *SentinelClient) Masters(ctx context.Context) *SliceCmd
Masters shows a list of monitored masters and their state.
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 (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 (c *SentinelClient) Ping(ctx context.Context) *StringCmd
Ping is used to test if a connection is still alive, or to measure latency.
func (c *SentinelClient) Process(ctx context.Context, cmd Cmder) error
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 (c *SentinelClient) Replicas(ctx context.Context, name string) *MapStringStringSliceCmd
Replicas shows a list of replicas for the specified master and their state.
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 (c *SentinelClient) Sentinels(ctx context.Context, name string) *MapStringStringSliceCmd
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 (c SentinelClient) String() string
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.
SetArgs provides arguments for the SetArgs function.
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
}
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 struct {
// contains filtered or unexported fields
}
func NewSliceCmd(ctx context.Context, args ...interface{}) *SliceCmd
func NewSliceResult(val []interface{}, err error) *SliceCmd
NewSliceResult returns a SliceCmd initialised with val and err for testing.
func (cmd *SliceCmd) Args() []interface{}
func (cmd *SliceCmd) Err() error
func (cmd *SliceCmd) FullName() string
func (cmd *SliceCmd) Name() string
func (cmd *SliceCmd) Result() ([]interface{}, error)
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
func (cmd *SliceCmd) SetErr(e error)
func (cmd *SliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *SliceCmd) SetVal(val []interface{})
func (cmd *SliceCmd) String() string
func (cmd *SliceCmd) Val() []interface{}
type SlotRange struct {
Start int64
End int64
}
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 struct {
// contains filtered or unexported fields
}
func NewSlowLogCmd(ctx context.Context, args ...interface{}) *SlowLogCmd
func (cmd *SlowLogCmd) Args() []interface{}
func (cmd *SlowLogCmd) Err() error
func (cmd *SlowLogCmd) FullName() string
func (cmd *SlowLogCmd) Name() string
func (cmd *SlowLogCmd) Result() ([]SlowLog, error)
func (cmd *SlowLogCmd) SetErr(e error)
func (cmd *SlowLogCmd) SetFirstKeyPos(keyPos int8)
func (cmd *SlowLogCmd) SetVal(val []SlowLog)
func (cmd *SlowLogCmd) String() string
func (cmd *SlowLogCmd) Val() []SlowLog
type Sort struct {
By string
Offset, Count int64
Get []string
Order string
Alpha bool
}
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
}
---------------------- SpellCheckBuilder for FT.SPELLCHECK ---------------------- SpellCheckBuilder is builder for FT.SPELLCHECK EXPERIMENTAL: this API is subject to change, use with caution.
type SpellCheckBuilder struct {
// contains filtered or unexported fields
}
func (b *SpellCheckBuilder) Dialect(d int) *SpellCheckBuilder
Dialect sets dialect version.
func (b *SpellCheckBuilder) Distance(d int) *SpellCheckBuilder
Distance sets MAXDISTANCE.
func (b *SpellCheckBuilder) Run() ([]SpellCheckResult, error)
Run executes FT.SPELLCHECK and returns suggestions.
func (b *SpellCheckBuilder) Terms(include bool, dictionary string, terms ...interface{}) *SpellCheckBuilder
Terms sets INCLUDE or EXCLUDE terms.
type SpellCheckResult struct {
Term string
Suggestions []SpellCheckSuggestion
}
type SpellCheckSuggestion struct {
Score float64
Suggestion string
}
type SpellCheckTerms struct {
Include bool
Exclude bool
Dictionary string
}
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 struct {
// contains filtered or unexported fields
}
func NewStatusCmd(ctx context.Context, args ...interface{}) *StatusCmd
func NewStatusResult(val string, err error) *StatusCmd
NewStatusResult returns a StatusCmd initialised with val and err for testing.
func (cmd *StatusCmd) Args() []interface{}
func (cmd *StatusCmd) Bytes() ([]byte, error)
func (cmd *StatusCmd) Err() error
func (cmd *StatusCmd) FullName() string
func (cmd *StatusCmd) Name() string
func (cmd *StatusCmd) Result() (string, error)
func (cmd *StatusCmd) SetErr(e error)
func (cmd *StatusCmd) SetFirstKeyPos(keyPos int8)
func (cmd *StatusCmd) SetVal(val string)
func (cmd *StatusCmd) String() string
func (cmd *StatusCmd) Val() string
type StreamCmdable interface {
XAdd(ctx context.Context, a *XAddArgs) *StringCmd
XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
XDel(ctx context.Context, stream string, ids ...string) *IntCmd
XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
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
XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *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 struct {
// contains filtered or unexported fields
}
func NewStringCmd(ctx context.Context, args ...interface{}) *StringCmd
func NewStringResult(val string, err error) *StringCmd
NewStringResult returns a StringCmd initialised with val and err for testing.
func (cmd *StringCmd) Args() []interface{}
func (cmd *StringCmd) Bool() (bool, error)
func (cmd *StringCmd) Bytes() ([]byte, error)
func (cmd *StringCmd) Err() error
func (cmd *StringCmd) Float32() (float32, error)
func (cmd *StringCmd) Float64() (float64, error)
func (cmd *StringCmd) FullName() string
func (cmd *StringCmd) Int() (int, error)
func (cmd *StringCmd) Int64() (int64, error)
func (cmd *StringCmd) Name() string
func (cmd *StringCmd) Result() (string, error)
func (cmd *StringCmd) Scan(val interface{}) error
func (cmd *StringCmd) SetErr(e error)
func (cmd *StringCmd) SetFirstKeyPos(keyPos int8)
func (cmd *StringCmd) SetVal(val string)
func (cmd *StringCmd) String() string
func (cmd *StringCmd) Time() (time.Time, error)
func (cmd *StringCmd) Uint64() (uint64, error)
func (cmd *StringCmd) Val() string
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 struct {
// contains filtered or unexported fields
}
func NewStringSliceCmd(ctx context.Context, args ...interface{}) *StringSliceCmd
func NewStringSliceResult(val []string, err error) *StringSliceCmd
NewStringSliceResult returns a StringSliceCmd initialised with val and err for testing.
func (cmd *StringSliceCmd) Args() []interface{}
func (cmd *StringSliceCmd) Err() error
func (cmd *StringSliceCmd) FullName() string
func (cmd *StringSliceCmd) Name() string
func (cmd *StringSliceCmd) Result() ([]string, error)
func (cmd *StringSliceCmd) ScanSlice(container interface{}) error
func (cmd *StringSliceCmd) SetErr(e error)
func (cmd *StringSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *StringSliceCmd) SetVal(val []string)
func (cmd *StringSliceCmd) String() string
func (cmd *StringSliceCmd) Val() []string
type StringStructMapCmd struct {
// contains filtered or unexported fields
}
func NewStringStructMapCmd(ctx context.Context, args ...interface{}) *StringStructMapCmd
func (cmd *StringStructMapCmd) Args() []interface{}
func (cmd *StringStructMapCmd) Err() error
func (cmd *StringStructMapCmd) FullName() string
func (cmd *StringStructMapCmd) Name() string
func (cmd *StringStructMapCmd) Result() (map[string]struct{}, error)
func (cmd *StringStructMapCmd) SetErr(e error)
func (cmd *StringStructMapCmd) SetFirstKeyPos(keyPos int8)
func (cmd *StringStructMapCmd) SetVal(val map[string]struct{})
func (cmd *StringStructMapCmd) String() string
func (cmd *StringStructMapCmd) Val() map[string]struct{}
Subscription received after a successful subscription to channel.
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
}
func (m *Subscription) String() string
---------------------- SynUpdateBuilder for FT.SYNUPDATE ---------------------- SyncUpdateBuilder is builder for FT.SYNCUPDATE EXPERIMENTAL: this API is subject to change, use with caution.
type SynUpdateBuilder struct {
// contains filtered or unexported fields
}
func (b *SynUpdateBuilder) Run() (string, error)
Run executes FT.SYNUPDATE.
func (b *SynUpdateBuilder) SkipInitialScan() *SynUpdateBuilder
SkipInitialScan includes SKIPINITIALSCAN.
func (b *SynUpdateBuilder) Terms(terms ...interface{}) *SynUpdateBuilder
Terms adds synonyms to the group.
type TDigestInfo struct {
Compression int64
Capacity int64
MergedNodes int64
UnmergedNodes int64
MergedWeight int64
UnmergedWeight int64
Observations int64
TotalCompressions int64
MemoryUsage int64
}
type TDigestInfoCmd struct {
// contains filtered or unexported fields
}
func NewTDigestInfoCmd(ctx context.Context, args ...interface{}) *TDigestInfoCmd
func (cmd *TDigestInfoCmd) Args() []interface{}
func (cmd *TDigestInfoCmd) Err() error
func (cmd *TDigestInfoCmd) FullName() string
func (cmd *TDigestInfoCmd) Name() string
func (cmd *TDigestInfoCmd) Result() (TDigestInfo, error)
func (cmd *TDigestInfoCmd) SetErr(e error)
func (cmd *TDigestInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *TDigestInfoCmd) SetVal(val TDigestInfo)
func (cmd *TDigestInfoCmd) String() string
func (cmd *TDigestInfoCmd) Val() TDigestInfo
type TDigestMergeOptions struct {
Compression int64
Override bool
}
type TSAlterOptions struct {
Retention int
ChunkSize int
DuplicatePolicy string
Labels map[string]string
IgnoreMaxTimeDiff int64
IgnoreMaxValDiff float64
}
type TSCreateRuleOptions struct {
// contains filtered or unexported fields
}
type TSGetOptions struct {
Latest bool
}
type TSIncrDecrOptions struct {
Timestamp int64
Retention int
ChunkSize int
Uncompressed bool
DuplicatePolicy string
Labels map[string]string
IgnoreMaxTimeDiff int64
IgnoreMaxValDiff float64
}
type TSInfoOptions struct {
Debug bool
}
type TSMGetOptions struct {
Latest bool
WithLabels bool
SelectedLabels []interface{}
}
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 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 struct {
Retention int
ChunkSize int
Encoding string
DuplicatePolicy string
Labels map[string]string
IgnoreMaxTimeDiff int64
IgnoreMaxValDiff float64
}
type TSRangeOptions struct {
Latest bool
FilterByTS []int
FilterByValue []int
Count int
Align interface{}
Aggregator Aggregator
BucketDuration int
BucketTimestamp interface{}
Empty bool
}
type TSRevRangeOptions struct {
Latest bool
FilterByTS []int
FilterByValue []int
Count int
Align interface{}
Aggregator Aggregator
BucketDuration int
BucketTimestamp interface{}
Empty bool
}
type TSTimestampValue struct {
Timestamp int64
Value float64
}
type TSTimestampValueCmd struct {
// contains filtered or unexported fields
}
func (cmd *TSTimestampValueCmd) Args() []interface{}
func (cmd *TSTimestampValueCmd) Err() error
func (cmd *TSTimestampValueCmd) FullName() string
func (cmd *TSTimestampValueCmd) Name() string
func (cmd *TSTimestampValueCmd) Result() (TSTimestampValue, error)
func (cmd *TSTimestampValueCmd) SetErr(e error)
func (cmd *TSTimestampValueCmd) SetFirstKeyPos(keyPos int8)
func (cmd *TSTimestampValueCmd) SetVal(val TSTimestampValue)
func (cmd *TSTimestampValueCmd) String() string
func (cmd *TSTimestampValueCmd) Val() TSTimestampValue
type TSTimestampValueSliceCmd struct {
// contains filtered or unexported fields
}
func (cmd *TSTimestampValueSliceCmd) Args() []interface{}
func (cmd *TSTimestampValueSliceCmd) Err() error
func (cmd *TSTimestampValueSliceCmd) FullName() string
func (cmd *TSTimestampValueSliceCmd) Name() string
func (cmd *TSTimestampValueSliceCmd) Result() ([]TSTimestampValue, error)
func (cmd *TSTimestampValueSliceCmd) SetErr(e error)
func (cmd *TSTimestampValueSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *TSTimestampValueSliceCmd) SetVal(val []TSTimestampValue)
func (cmd *TSTimestampValueSliceCmd) String() string
func (cmd *TSTimestampValueSliceCmd) Val() []TSTimestampValue
---------------------- TagValsBuilder for FT.TAGVALS ---------------------- TagValsBuilder is builder for FT.TAGVALS EXPERIMENTAL: this API is subject to change, use with caution.
type TagValsBuilder struct {
// contains filtered or unexported fields
}
func (b *TagValsBuilder) Run() ([]string, error)
Run executes FT.TAGVALS and returns tag values.
type TimeCmd struct {
// contains filtered or unexported fields
}
func NewTimeCmd(ctx context.Context, args ...interface{}) *TimeCmd
func NewTimeCmdResult(val time.Time, err error) *TimeCmd
NewTimeCmdResult returns a TimeCmd initialised with val and err for testing.
func (cmd *TimeCmd) Args() []interface{}
func (cmd *TimeCmd) Err() error
func (cmd *TimeCmd) FullName() string
func (cmd *TimeCmd) Name() string
func (cmd *TimeCmd) Result() (time.Time, error)
func (cmd *TimeCmd) SetErr(e error)
func (cmd *TimeCmd) SetFirstKeyPos(keyPos int8)
func (cmd *TimeCmd) SetVal(val time.Time)
func (cmd *TimeCmd) String() string
func (cmd *TimeCmd) Val() time.Time
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 struct {
K int64
Width int64
Depth int64
Decay float64
}
type TopKInfoCmd struct {
// contains filtered or unexported fields
}
func NewTopKInfoCmd(ctx context.Context, args ...interface{}) *TopKInfoCmd
func (cmd *TopKInfoCmd) Args() []interface{}
func (cmd *TopKInfoCmd) Err() error
func (cmd *TopKInfoCmd) FullName() string
func (cmd *TopKInfoCmd) Name() string
func (cmd *TopKInfoCmd) Result() (TopKInfo, error)
func (cmd *TopKInfoCmd) SetErr(e error)
func (cmd *TopKInfoCmd) SetFirstKeyPos(keyPos int8)
func (cmd *TopKInfoCmd) SetVal(val TopKInfo)
func (cmd *TopKInfoCmd) String() string
func (cmd *TopKInfoCmd) Val() TopKInfo
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.
type Tx struct {
// contains filtered or unexported fields
}
func (c Tx) ACLCat(ctx context.Context) *StringSliceCmd
func (c Tx) ACLCatArgs(ctx context.Context, options *ACLCatArgs) *StringSliceCmd
func (c Tx) ACLDelUser(ctx context.Context, username string) *IntCmd
func (c Tx) ACLDryRun(ctx context.Context, username string, command ...interface{}) *StringCmd
func (c Tx) ACLList(ctx context.Context) *StringSliceCmd
func (c Tx) ACLLog(ctx context.Context, count int64) *ACLLogCmd
func (c Tx) ACLLogReset(ctx context.Context) *StatusCmd
func (c Tx) ACLSetUser(ctx context.Context, username string, rules ...string) *StatusCmd
func (c Tx) Append(ctx context.Context, key, value string) *IntCmd
func (c Tx) Auth(ctx context.Context, password string) *StatusCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Tx) BLMPop(ctx context.Context, timeout time.Duration, direction string, count int64, keys ...string) *KeyValuesCmd
func (c Tx) BLMove( ctx context.Context, source, destination, srcpos, destpos string, timeout time.Duration, ) *StringCmd
func (c Tx) BLPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Tx) BRPop(ctx context.Context, timeout time.Duration, keys ...string) *StringSliceCmd
func (c Tx) BRPopLPush(ctx context.Context, source, destination string, timeout time.Duration) *StringCmd
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 (c Tx) BZPopMax(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMax Redis `BZPOPMAX key [key ...] timeout` command.
func (c Tx) BZPopMin(ctx context.Context, timeout time.Duration, keys ...string) *ZWithKeyCmd
BZPopMin Redis `BZPOPMIN key [key ...] timeout` command.
func (c Tx) BgRewriteAOF(ctx context.Context) *StatusCmd
func (c Tx) BgSave(ctx context.Context) *StatusCmd
func (c Tx) BitCount(ctx context.Context, key string, bitCount *BitCount) *IntCmd
func (c Tx) BitField(ctx context.Context, key string, values ...interface{}) *IntSliceCmd
BitField accepts multiple values:
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 (c Tx) BitOpAnd(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAnd creates a new bitmap in which users are members of all given bitmaps
func (c Tx) BitOpAndOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpAndOr creates a new bitmap in which users are members of bitmap X and also members of one or more of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Tx) BitOpDiff(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff creates a new bitmap in which users are members of bitmap X but not of any of bitmaps Y1, Y2, … Introduced with Redis 8.2
func (c Tx) BitOpDiff1(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpDiff1 creates a new bitmap in which users are members of one or more of bitmaps Y1, Y2, … but not members of bitmap X Introduced with Redis 8.2
func (c Tx) BitOpNot(ctx context.Context, destKey string, key string) *IntCmd
BitOpNot creates a new bitmap in which users are not members of a given bitmap
func (c Tx) BitOpOne(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOne creates a new bitmap in which users are members of exactly one of the given bitmaps Introduced with Redis 8.2
func (c Tx) BitOpOr(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpOr creates a new bitmap in which users are member of at least one given bitmap
func (c Tx) BitOpXor(ctx context.Context, destKey string, keys ...string) *IntCmd
BitOpXor creates a new bitmap in which users are the result of XORing all given bitmaps
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Tx) ClientGetName(ctx context.Context) *StringCmd
ClientGetName returns the name of the connection.
func (c Tx) ClientID(ctx context.Context) *IntCmd
func (c Tx) ClientInfo(ctx context.Context) *ClientInfoCmd
func (c Tx) ClientKill(ctx context.Context, ipPort string) *StatusCmd
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 (c Tx) ClientList(ctx context.Context) *StringCmd
func (c Tx) ClientPause(ctx context.Context, dur time.Duration) *BoolCmd
func (c Tx) ClientSetInfo(ctx context.Context, info LibraryInfo) *StatusCmd
ClientSetInfo sends a CLIENT SETINFO command with the provided info.
func (c Tx) ClientSetName(ctx context.Context, name string) *BoolCmd
ClientSetName assigns a name to the connection.
func (c Tx) ClientUnblock(ctx context.Context, id int64) *IntCmd
func (c Tx) ClientUnblockWithError(ctx context.Context, id int64) *IntCmd
func (c Tx) ClientUnpause(ctx context.Context) *BoolCmd
func (c *Tx) Close(ctx context.Context) error
Close closes the transaction, releasing any open resources.
func (c Tx) ClusterAddSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Tx) ClusterAddSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Tx) ClusterCountFailureReports(ctx context.Context, nodeID string) *IntCmd
func (c Tx) ClusterCountKeysInSlot(ctx context.Context, slot int) *IntCmd
func (c Tx) ClusterDelSlots(ctx context.Context, slots ...int) *StatusCmd
func (c Tx) ClusterDelSlotsRange(ctx context.Context, min, max int) *StatusCmd
func (c Tx) ClusterFailover(ctx context.Context) *StatusCmd
func (c Tx) ClusterForget(ctx context.Context, nodeID string) *StatusCmd
func (c Tx) ClusterGetKeysInSlot(ctx context.Context, slot int, count int) *StringSliceCmd
func (c Tx) ClusterInfo(ctx context.Context) *StringCmd
func (c Tx) ClusterKeySlot(ctx context.Context, key string) *IntCmd
func (c Tx) ClusterLinks(ctx context.Context) *ClusterLinksCmd
func (c Tx) ClusterMeet(ctx context.Context, host, port string) *StatusCmd
func (c Tx) ClusterMyID(ctx context.Context) *StringCmd
func (c Tx) ClusterMyShardID(ctx context.Context) *StringCmd
func (c Tx) ClusterNodes(ctx context.Context) *StringCmd
func (c Tx) ClusterReplicate(ctx context.Context, nodeID string) *StatusCmd
func (c Tx) ClusterResetHard(ctx context.Context) *StatusCmd
func (c Tx) ClusterResetSoft(ctx context.Context) *StatusCmd
func (c Tx) ClusterSaveConfig(ctx context.Context) *StatusCmd
func (c Tx) ClusterShards(ctx context.Context) *ClusterShardsCmd
func (c Tx) ClusterSlaves(ctx context.Context, nodeID string) *StringSliceCmd
func (c Tx) ClusterSlots(ctx context.Context) *ClusterSlotsCmd
func (c Tx) Command(ctx context.Context) *CommandsInfoCmd
func (c Tx) CommandGetKeys(ctx context.Context, commands ...interface{}) *StringSliceCmd
func (c Tx) CommandGetKeysAndFlags(ctx context.Context, commands ...interface{}) *KeyFlagsCmd
func (c Tx) CommandList(ctx context.Context, filter *FilterBy) *StringSliceCmd
func (c Tx) ConfigGet(ctx context.Context, parameter string) *MapStringStringCmd
func (c Tx) ConfigResetStat(ctx context.Context) *StatusCmd
func (c Tx) ConfigRewrite(ctx context.Context) *StatusCmd
func (c Tx) ConfigSet(ctx context.Context, parameter, value string) *StatusCmd
func (c Tx) Copy(ctx context.Context, sourceKey, destKey string, db int, replace bool) *IntCmd
func (c Tx) DBSize(ctx context.Context) *IntCmd
func (c Tx) DebugObject(ctx context.Context, key string) *StringCmd
func (c Tx) Decr(ctx context.Context, key string) *IntCmd
func (c Tx) DecrBy(ctx context.Context, key string, decrement int64) *IntCmd
func (c Tx) Del(ctx context.Context, keys ...string) *IntCmd
func (c Tx) Do(ctx context.Context, args ...interface{}) *Cmd
func (c Tx) Dump(ctx context.Context, key string) *StringCmd
func (c Tx) Echo(ctx context.Context, message interface{}) *StringCmd
func (c Tx) Eval(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Tx) EvalRO(ctx context.Context, script string, keys []string, args ...interface{}) *Cmd
func (c Tx) EvalSha(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Tx) EvalShaRO(ctx context.Context, sha1 string, keys []string, args ...interface{}) *Cmd
func (c Tx) Exists(ctx context.Context, keys ...string) *IntCmd
func (c Tx) Expire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) ExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Tx) ExpireGT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) ExpireLT(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) ExpireNX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) ExpireTime(ctx context.Context, key string) *DurationCmd
func (c Tx) ExpireXX(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) FCall(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
func (c Tx) FCallRO(ctx context.Context, function string, keys []string, args ...interface{}) *Cmd
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 (c Tx) FTAggregate(ctx context.Context, index string, query string) *MapStringInterfaceCmd
FTAggregate - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Tx) FTAggregateWithArgs(ctx context.Context, index string, query string, options *FTAggregateOptions) *AggregateCmd
FTAggregateWithArgs - Performs a search query on an index and applies a series of aggregate transformations to the result. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. This function also allows for specifying additional options such as: Verbatim, LoadAll, Load, Timeout, GroupBy, SortBy, SortByMax, Apply, LimitOffset, Limit, Filter, WithCursor, Params, and DialectVersion. For more information, please refer to the Redis documentation: [FT.AGGREGATE]: (https://redis.io/commands/ft.aggregate/)
func (c Tx) FTAliasAdd(ctx context.Context, index string, alias string) *StatusCmd
FTAliasAdd - Adds an alias to an index. The 'index' parameter specifies the index to which the alias is added, and the 'alias' parameter specifies the alias. For more information, please refer to the Redis documentation: [FT.ALIASADD]: (https://redis.io/commands/ft.aliasadd/)
func (c Tx) FTAliasDel(ctx context.Context, alias string) *StatusCmd
FTAliasDel - Removes an alias from an index. The 'alias' parameter specifies the alias to be removed. For more information, please refer to the Redis documentation: [FT.ALIASDEL]: (https://redis.io/commands/ft.aliasdel/)
func (c Tx) FTAliasUpdate(ctx context.Context, index string, alias string) *StatusCmd
FTAliasUpdate - Updates an alias to an index. The 'index' parameter specifies the index to which the alias is updated, and the 'alias' parameter specifies the alias. If the alias already exists for a different index, it updates the alias to point to the specified index instead. For more information, please refer to the Redis documentation: [FT.ALIASUPDATE]: (https://redis.io/commands/ft.aliasupdate/)
func (c Tx) FTAlter(ctx context.Context, index string, skipInitialScan bool, definition []interface{}) *StatusCmd
FTAlter - Alters the definition of an existing index. The 'index' parameter specifies the index to alter, and the 'skipInitialScan' parameter specifies whether to skip the initial scan. The 'definition' parameter specifies the new definition for the index. For more information, please refer to the Redis documentation: [FT.ALTER]: (https://redis.io/commands/ft.alter/)
func (c Tx) FTConfigGet(ctx context.Context, option string) *MapMapStringInterfaceCmd
Retrieves the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to retrieve. For more information, please refer to the Redis FT.CONFIG GET documentation.
Deprecated: FTConfigGet is deprecated in Redis 8. All configuration will be done with the CONFIG GET command. For more information check Client.ConfigGet and CONFIG GET Documentation
func (c Tx) FTConfigSet(ctx context.Context, option string, value interface{}) *StatusCmd
Sets the value of a RediSearch configuration parameter. The 'option' parameter specifies the configuration parameter to set, and the 'value' parameter specifies the new value. For more information, please refer to the Redis FT.CONFIG SET documentation.
Deprecated: FTConfigSet is deprecated in Redis 8. All configuration will be done with the CONFIG SET command. For more information check Client.ConfigSet and CONFIG SET Documentation
func (c Tx) FTCreate(ctx context.Context, index string, options *FTCreateOptions, schema ...*FieldSchema) *StatusCmd
FTCreate - Creates a new index with the given options and schema. The 'index' parameter specifies the name of the index to create. The 'options' parameter specifies various options for the index, such as: whether to index hashes or JSONs, prefixes, filters, default language, score, score field, payload field, etc. The 'schema' parameter specifies the schema for the index, which includes the field name, field type, etc. For more information, please refer to the Redis documentation: [FT.CREATE]: (https://redis.io/commands/ft.create/)
func (c Tx) FTCursorDel(ctx context.Context, index string, cursorId int) *StatusCmd
FTCursorDel - Deletes a cursor from an existing index. The 'index' parameter specifies the index from which to delete the cursor, and the 'cursorId' parameter specifies the ID of the cursor to delete. For more information, please refer to the Redis documentation: [FT.CURSOR DEL]: (https://redis.io/commands/ft.cursor-del/)
func (c Tx) FTCursorRead(ctx context.Context, index string, cursorId int, count int) *MapStringInterfaceCmd
FTCursorRead - Reads the next results from an existing cursor. The 'index' parameter specifies the index from which to read the cursor, the 'cursorId' parameter specifies the ID of the cursor to read, and the 'count' parameter specifies the number of results to read. For more information, please refer to the Redis documentation: [FT.CURSOR READ]: (https://redis.io/commands/ft.cursor-read/)
func (c Tx) FTDictAdd(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictAdd - Adds terms to a dictionary. The 'dict' parameter specifies the dictionary to which to add the terms, and the 'term' parameter specifies the terms to add. For more information, please refer to the Redis documentation: [FT.DICTADD]: (https://redis.io/commands/ft.dictadd/)
func (c Tx) FTDictDel(ctx context.Context, dict string, term ...interface{}) *IntCmd
FTDictDel - Deletes terms from a dictionary. The 'dict' parameter specifies the dictionary from which to delete the terms, and the 'term' parameter specifies the terms to delete. For more information, please refer to the Redis documentation: [FT.DICTDEL]: (https://redis.io/commands/ft.dictdel/)
func (c Tx) FTDictDump(ctx context.Context, dict string) *StringSliceCmd
FTDictDump - Returns all terms in the specified dictionary. The 'dict' parameter specifies the dictionary from which to return the terms. For more information, please refer to the Redis documentation: [FT.DICTDUMP]: (https://redis.io/commands/ft.dictdump/)
func (c Tx) FTDropIndex(ctx context.Context, index string) *StatusCmd
FTDropIndex - Deletes an index. The 'index' parameter specifies the index to delete. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Tx) FTDropIndexWithArgs(ctx context.Context, index string, options *FTDropIndexOptions) *StatusCmd
FTDropIndexWithArgs - Deletes an index with options. The 'index' parameter specifies the index to delete, and the 'options' parameter specifies the DeleteDocs option for docs deletion. For more information, please refer to the Redis documentation: [FT.DROPINDEX]: (https://redis.io/commands/ft.dropindex/)
func (c Tx) FTExplain(ctx context.Context, index string, query string) *StringCmd
FTExplain - Returns the execution plan for a complex query. The 'index' parameter specifies the index to query, and the 'query' parameter specifies the query string. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Tx) FTExplainCli(ctx context.Context, key, path string) error
FTExplainCli - Returns the execution plan for a complex query. [Not Implemented] For more information, see https://redis.io/commands/ft.explaincli/
func (c Tx) FTExplainWithArgs(ctx context.Context, index string, query string, options *FTExplainOptions) *StringCmd
FTExplainWithArgs - Returns the execution plan for a complex query with options. The 'index' parameter specifies the index to query, the 'query' parameter specifies the query string, and the 'options' parameter specifies the Dialect for the query. For more information, please refer to the Redis documentation: [FT.EXPLAIN]: (https://redis.io/commands/ft.explain/)
func (c Tx) FTInfo(ctx context.Context, index string) *FTInfoCmd
FTInfo - Retrieves information about an index. The 'index' parameter specifies the index to retrieve information about. For more information, please refer to the Redis documentation: [FT.INFO]: (https://redis.io/commands/ft.info/)
func (c Tx) FTSearch(ctx context.Context, index string, query string) *FTSearchCmd
FTSearch - Executes a search query on an index. The 'index' parameter specifies the index to search, and the 'query' parameter specifies the search query. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Tx) FTSearchWithArgs(ctx context.Context, index string, query string, options *FTSearchOptions) *FTSearchCmd
FTSearchWithArgs - Executes a search query on an index with additional options. The 'index' parameter specifies the index to search, the 'query' parameter specifies the search query, and the 'options' parameter specifies additional options for the search. For more information, please refer to the Redis documentation about [FT.SEARCH].
[FT.SEARCH]: (https://redis.io/commands/ft.search/)
func (c Tx) FTSpellCheck(ctx context.Context, index string, query string) *FTSpellCheckCmd
FTSpellCheck - Checks a query string for spelling errors. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Tx) FTSpellCheckWithArgs(ctx context.Context, index string, query string, options *FTSpellCheckOptions) *FTSpellCheckCmd
FTSpellCheckWithArgs - Checks a query string for spelling errors with additional options. For more details about spellcheck query please follow: https://redis.io/docs/interact/search-and-query/advanced-concepts/spellcheck/ For more information, please refer to the Redis documentation: [FT.SPELLCHECK]: (https://redis.io/commands/ft.spellcheck/)
func (c Tx) FTSynDump(ctx context.Context, index string) *FTSynDumpCmd
FTSynDump - Dumps the contents of a synonym group. The 'index' parameter specifies the index to dump. For more information, please refer to the Redis documentation: [FT.SYNDUMP]: (https://redis.io/commands/ft.syndump/)
func (c Tx) FTSynUpdate(ctx context.Context, index string, synGroupId interface{}, terms []interface{}) *StatusCmd
FTSynUpdate - Creates or updates a synonym group with additional terms. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Tx) FTSynUpdateWithArgs(ctx context.Context, index string, synGroupId interface{}, options *FTSynUpdateOptions, terms []interface{}) *StatusCmd
FTSynUpdateWithArgs - Creates or updates a synonym group with additional terms and options. The 'index' parameter specifies the index to update, the 'synGroupId' parameter specifies the synonym group id, the 'options' parameter specifies additional options for the update, and the 'terms' parameter specifies the additional terms. For more information, please refer to the Redis documentation: [FT.SYNUPDATE]: (https://redis.io/commands/ft.synupdate/)
func (c Tx) FTTagVals(ctx context.Context, index string, field string) *StringSliceCmd
FTTagVals - Returns all distinct values indexed in a tag field. The 'index' parameter specifies the index to check, and the 'field' parameter specifies the tag field to retrieve values from. For more information, please refer to the Redis documentation: [FT.TAGVALS]: (https://redis.io/commands/ft.tagvals/)
func (c Tx) FT_List(ctx context.Context) *StringSliceCmd
FT_List - Lists all the existing indexes in the database. For more information, please refer to the Redis documentation: [FT._LIST]: (https://redis.io/commands/ft._list/)
func (c Tx) FlushAll(ctx context.Context) *StatusCmd
func (c Tx) FlushAllAsync(ctx context.Context) *StatusCmd
func (c Tx) FlushDB(ctx context.Context) *StatusCmd
func (c Tx) FlushDBAsync(ctx context.Context) *StatusCmd
func (c Tx) FunctionDelete(ctx context.Context, libName string) *StringCmd
func (c Tx) FunctionDump(ctx context.Context) *StringCmd
func (c Tx) FunctionFlush(ctx context.Context) *StringCmd
func (c Tx) FunctionFlushAsync(ctx context.Context) *StringCmd
func (c Tx) FunctionKill(ctx context.Context) *StringCmd
func (c Tx) FunctionList(ctx context.Context, q FunctionListQuery) *FunctionListCmd
func (c Tx) FunctionLoad(ctx context.Context, code string) *StringCmd
func (c Tx) FunctionLoadReplace(ctx context.Context, code string) *StringCmd
func (c Tx) FunctionRestore(ctx context.Context, libDump string) *StringCmd
func (c Tx) FunctionStats(ctx context.Context) *FunctionStatsCmd
func (c Tx) GeoAdd(ctx context.Context, key string, geoLocation ...*GeoLocation) *IntCmd
func (c Tx) GeoDist( ctx context.Context, key string, member1, member2, unit string, ) *FloatCmd
func (c Tx) GeoHash(ctx context.Context, key string, members ...string) *StringSliceCmd
func (c Tx) GeoPos(ctx context.Context, key string, members ...string) *GeoPosCmd
func (c Tx) GeoRadius( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadius is a read-only GEORADIUS_RO command.
func (c Tx) GeoRadiusByMember( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *GeoLocationCmd
GeoRadiusByMember is a read-only GEORADIUSBYMEMBER_RO command.
func (c Tx) GeoRadiusByMemberStore( ctx context.Context, key, member string, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusByMemberStore is a writing GEORADIUSBYMEMBER command.
func (c Tx) GeoRadiusStore( ctx context.Context, key string, longitude, latitude float64, query *GeoRadiusQuery, ) *IntCmd
GeoRadiusStore is a writing GEORADIUS command.
func (c Tx) GeoSearch(ctx context.Context, key string, q *GeoSearchQuery) *StringSliceCmd
func (c Tx) GeoSearchLocation( ctx context.Context, key string, q *GeoSearchLocationQuery, ) *GeoSearchLocationCmd
func (c Tx) GeoSearchStore(ctx context.Context, key, store string, q *GeoSearchStoreQuery) *IntCmd
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 (c Tx) GetBit(ctx context.Context, key string, offset int64) *IntCmd
func (c Tx) GetDel(ctx context.Context, key string) *StringCmd
GetDel redis-server version >= 6.2.0.
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 (c Tx) GetRange(ctx context.Context, key string, start, end int64) *StringCmd
func (c Tx) GetSet(ctx context.Context, key string, value interface{}) *StringCmd
func (c Tx) HDel(ctx context.Context, key string, fields ...string) *IntCmd
func (c Tx) HExists(ctx context.Context, key, field string) *BoolCmd
func (c Tx) HExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HExpire - Sets the expiration time for specified fields in a hash in seconds. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Tx) HExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in seconds. Takes a key, a UNIX timestamp, a struct of conditional flags, and a list of fields. The command sets absolute expiration times based on the UNIX timestamp provided. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Tx) HExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Tx) HExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in seconds. Requires a key and the fields themselves to fetch their expiration timestamps. This command returns the expiration times for each field or error/status codes for each field as specified. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Tx) HExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HExpireWithArgs - Sets the expiration time for specified fields in a hash in seconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HEXPIRE Documentation.
func (c Tx) HGet(ctx context.Context, key, field string) *StringCmd
func (c Tx) HGetAll(ctx context.Context, key string) *MapStringStringCmd
func (c Tx) HGetDel(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Tx) HGetEX(ctx context.Context, key string, fields ...string) *StringSliceCmd
func (c Tx) HGetEXWithArgs(ctx context.Context, key string, options *HGetEXOptions, fields ...string) *StringSliceCmd
func (c Tx) HIncrBy(ctx context.Context, key, field string, incr int64) *IntCmd
func (c Tx) HIncrByFloat(ctx context.Context, key, field string, incr float64) *FloatCmd
func (c Tx) HKeys(ctx context.Context, key string) *StringSliceCmd
func (c Tx) HLen(ctx context.Context, key string) *IntCmd
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 (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 (c Tx) HPExpire(ctx context.Context, key string, expiration time.Duration, fields ...string) *IntSliceCmd
HPExpire - Sets the expiration time for specified fields in a hash in milliseconds. Similar to HExpire, it accepts a key, an expiration duration in milliseconds, a struct with expiration condition flags, and a list of fields. The command modifies the standard time.Duration to milliseconds for the Redis command. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Tx) HPExpireAt(ctx context.Context, key string, tm time.Time, fields ...string) *IntSliceCmd
HPExpireAt - Sets the expiration time for specified fields in a hash to a UNIX timestamp in milliseconds. Similar to HExpireAt but for timestamps in milliseconds. It accepts the same parameters and adjusts the UNIX time to milliseconds. Available since Redis 7.4 CE. For more information refer to HExpireAt Documentation.
func (c Tx) HPExpireAtWithArgs(ctx context.Context, key string, tm time.Time, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
func (c Tx) HPExpireTime(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPExpireTime - Retrieves the expiration time for specified fields in a hash as a UNIX timestamp in milliseconds. Similar to HExpireTime, adjusted for timestamps in milliseconds. It requires the same parameters. Provides the expiration timestamp for each field in milliseconds. Available since Redis 7.4 CE. For more information refer to [HExpireTime Documentation].
[HExpireTime Documentation]: https://redis.io/commands/hexpiretime/ For more information - https://redis.io/commands/hexpiretime/
func (c Tx) HPExpireWithArgs(ctx context.Context, key string, expiration time.Duration, expirationArgs HExpireArgs, fields ...string) *IntSliceCmd
HPExpireWithArgs - Sets the expiration time for specified fields in a hash in milliseconds. It requires a key, an expiration duration, a struct with boolean flags for conditional expiration settings (NX, XX, GT, LT), and a list of fields. The command constructs an argument list starting with "HPEXPIRE", followed by the key, duration, any conditional flags, and the specified fields. Available since Redis 7.4 CE. For more information refer to HPEXPIRE Documentation.
func (c Tx) HPTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPTTL - Retrieves the remaining time to live for specified fields in a hash in milliseconds. Similar to HTTL, but returns the TTL in milliseconds. It requires a key and the specified fields. This command provides the TTL in milliseconds for each field or returns error/status codes as needed. Available since Redis 7.4 CE. For more information refer to [HPTTL Documentation].
[HPTTL Documentation]: https://redis.io/commands/hpttl/ For more information - https://redis.io/commands/hpttl/
func (c Tx) HPersist(ctx context.Context, key string, fields ...string) *IntSliceCmd
HPersist - Removes the expiration time from specified fields in a hash. Accepts a key and the fields themselves. This command ensures that each field specified will have its expiration removed if present. Available since Redis 7.4 CE. For more information refer to HPersist Documentation.
func (c Tx) HRandField(ctx context.Context, key string, count int) *StringSliceCmd
HRandField redis-server version >= 6.2.0.
func (c Tx) HRandFieldWithValues(ctx context.Context, key string, count int) *KeyValueSliceCmd
HRandFieldWithValues redis-server version >= 6.2.0.
func (c Tx) HScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Tx) HScanNoValues(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
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 (c Tx) HSetEX(ctx context.Context, key string, fieldsAndValues ...string) *IntCmd
func (c Tx) HSetEXWithArgs(ctx context.Context, key string, options *HSetEXOptions, fieldsAndValues ...string) *IntCmd
func (c Tx) HSetNX(ctx context.Context, key, field string, value interface{}) *BoolCmd
func (c Tx) HStrLen(ctx context.Context, key, field string) *IntCmd
func (c Tx) HTTL(ctx context.Context, key string, fields ...string) *IntSliceCmd
HTTL - Retrieves the remaining time to live for specified fields in a hash in seconds. Requires a key and the fields themselves. It returns the TTL for each specified field. This command fetches the TTL in seconds for each field or returns error/status codes as appropriate. Available since Redis 7.4 CE. For more information refer to HTTL Documentation.
func (c Tx) HVals(ctx context.Context, key string) *StringSliceCmd
func (c Tx) Hello(ctx context.Context, ver int, username, password, clientName string, ) *MapStringInterfaceCmd
Hello sets the resp protocol used.
func (c Tx) Incr(ctx context.Context, key string) *IntCmd
func (c Tx) IncrBy(ctx context.Context, key string, value int64) *IntCmd
func (c Tx) IncrByFloat(ctx context.Context, key string, value float64) *FloatCmd
func (c Tx) Info(ctx context.Context, sections ...string) *StringCmd
func (c Tx) InfoMap(ctx context.Context, sections ...string) *InfoCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Tx) JSONMSet(ctx context.Context, params ...interface{}) *StatusCmd
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 (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 (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/docs/latest/commands/json.numincrby/
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 (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 (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 (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 (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 (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 (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 (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 (c Tx) Keys(ctx context.Context, pattern string) *StringSliceCmd
func (c Tx) LCS(ctx context.Context, q *LCSQuery) *LCSCmd
func (c Tx) LIndex(ctx context.Context, key string, index int64) *StringCmd
func (c Tx) LInsert(ctx context.Context, key, op string, pivot, value interface{}) *IntCmd
func (c Tx) LInsertAfter(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Tx) LInsertBefore(ctx context.Context, key string, pivot, value interface{}) *IntCmd
func (c Tx) LLen(ctx context.Context, key string) *IntCmd
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 (c Tx) LMove(ctx context.Context, source, destination, srcpos, destpos string) *StringCmd
func (c Tx) LPop(ctx context.Context, key string) *StringCmd
func (c Tx) LPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Tx) LPos(ctx context.Context, key string, value string, a LPosArgs) *IntCmd
func (c Tx) LPosCount(ctx context.Context, key string, value string, count int64, a LPosArgs) *IntSliceCmd
func (c Tx) LPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Tx) LPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Tx) LRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Tx) LRem(ctx context.Context, key string, count int64, value interface{}) *IntCmd
func (c Tx) LSet(ctx context.Context, key string, index int64, value interface{}) *StatusCmd
func (c Tx) LTrim(ctx context.Context, key string, start, stop int64) *StatusCmd
func (c Tx) LastSave(ctx context.Context) *IntCmd
func (c Tx) MGet(ctx context.Context, keys ...string) *SliceCmd
func (c Tx) MSet(ctx context.Context, values ...interface{}) *StatusCmd
MSet is like Set but accepts multiple values:
func (c Tx) MSetNX(ctx context.Context, values ...interface{}) *BoolCmd
MSetNX is like SetNX but accepts multiple values:
func (c Tx) MemoryUsage(ctx context.Context, key string, samples ...int) *IntCmd
func (c Tx) Migrate(ctx context.Context, host, port, key string, db int, timeout time.Duration) *StatusCmd
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 (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 (c Tx) Move(ctx context.Context, key string, db int) *BoolCmd
func (c Tx) ObjectEncoding(ctx context.Context, key string) *StringCmd
func (c Tx) ObjectFreq(ctx context.Context, key string) *IntCmd
func (c Tx) ObjectIdleTime(ctx context.Context, key string) *DurationCmd
func (c Tx) ObjectRefCount(ctx context.Context, key string) *IntCmd
func (c Tx) PExpire(ctx context.Context, key string, expiration time.Duration) *BoolCmd
func (c Tx) PExpireAt(ctx context.Context, key string, tm time.Time) *BoolCmd
func (c Tx) PExpireTime(ctx context.Context, key string) *DurationCmd
func (c Tx) PFAdd(ctx context.Context, key string, els ...interface{}) *IntCmd
func (c Tx) PFCount(ctx context.Context, keys ...string) *IntCmd
func (c Tx) PFMerge(ctx context.Context, dest string, keys ...string) *StatusCmd
func (c Tx) PTTL(ctx context.Context, key string) *DurationCmd
func (c Tx) Persist(ctx context.Context, key string) *BoolCmd
func (c Tx) Ping(ctx context.Context) *StatusCmd
func (c *Tx) Pipeline() Pipeliner
Pipeline creates a pipeline. Usually it is more convenient to use 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 (c *Tx) Process(ctx context.Context, cmd Cmder) error
func (c Tx) PubSubChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Tx) PubSubNumPat(ctx context.Context) *IntCmd
func (c Tx) PubSubNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Tx) PubSubShardChannels(ctx context.Context, pattern string) *StringSliceCmd
func (c Tx) PubSubShardNumSub(ctx context.Context, channels ...string) *MapStringIntCmd
func (c Tx) Publish(ctx context.Context, channel string, message interface{}) *IntCmd
Publish posts the message to the channel.
func (c Tx) Quit(_ context.Context) *StatusCmd
func (c Tx) RPop(ctx context.Context, key string) *StringCmd
func (c Tx) RPopCount(ctx context.Context, key string, count int) *StringSliceCmd
func (c Tx) RPopLPush(ctx context.Context, source, destination string) *StringCmd
func (c Tx) RPush(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Tx) RPushX(ctx context.Context, key string, values ...interface{}) *IntCmd
func (c Tx) RandomKey(ctx context.Context) *StringCmd
func (c Tx) ReadOnly(ctx context.Context) *StatusCmd
func (c Tx) ReadWrite(ctx context.Context) *StatusCmd
func (c Tx) Rename(ctx context.Context, key, newkey string) *StatusCmd
func (c Tx) RenameNX(ctx context.Context, key, newkey string) *BoolCmd
func (c Tx) Restore(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Tx) RestoreReplace(ctx context.Context, key string, ttl time.Duration, value string) *StatusCmd
func (c Tx) SAdd(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Tx) SCard(ctx context.Context, key string) *IntCmd
func (c Tx) SDiff(ctx context.Context, keys ...string) *StringSliceCmd
func (c Tx) SDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Tx) SInter(ctx context.Context, keys ...string) *StringSliceCmd
func (c Tx) SInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Tx) SInterStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Tx) SIsMember(ctx context.Context, key string, member interface{}) *BoolCmd
func (c Tx) SMIsMember(ctx context.Context, key string, members ...interface{}) *BoolSliceCmd
SMIsMember Redis `SMISMEMBER key member [member ...]` command.
func (c Tx) SMembers(ctx context.Context, key string) *StringSliceCmd
SMembers Redis `SMEMBERS key` command output as a slice.
func (c Tx) SMembersMap(ctx context.Context, key string) *StringStructMapCmd
SMembersMap Redis `SMEMBERS key` command output as a map.
func (c Tx) SMove(ctx context.Context, source, destination string, member interface{}) *BoolCmd
func (c Tx) SPop(ctx context.Context, key string) *StringCmd
SPop Redis `SPOP key` command.
func (c Tx) SPopN(ctx context.Context, key string, count int64) *StringSliceCmd
SPopN Redis `SPOP key count` command.
func (c Tx) SPublish(ctx context.Context, channel string, message interface{}) *IntCmd
func (c Tx) SRandMember(ctx context.Context, key string) *StringCmd
SRandMember Redis `SRANDMEMBER key` command.
func (c Tx) SRandMemberN(ctx context.Context, key string, count int64) *StringSliceCmd
SRandMemberN Redis `SRANDMEMBER key count` command.
func (c Tx) SRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Tx) SScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Tx) SUnion(ctx context.Context, keys ...string) *StringSliceCmd
func (c Tx) SUnionStore(ctx context.Context, destination string, keys ...string) *IntCmd
func (c Tx) Save(ctx context.Context) *StatusCmd
func (c Tx) Scan(ctx context.Context, cursor uint64, match string, count int64) *ScanCmd
func (c Tx) ScanType(ctx context.Context, cursor uint64, match string, count int64, keyType string) *ScanCmd
func (c Tx) ScriptExists(ctx context.Context, hashes ...string) *BoolSliceCmd
func (c Tx) ScriptFlush(ctx context.Context) *StatusCmd
func (c Tx) ScriptKill(ctx context.Context) *StatusCmd
func (c Tx) ScriptLoad(ctx context.Context, script string) *StringCmd
func (c Tx) Select(ctx context.Context, index int) *StatusCmd
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 (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 (c Tx) SetBit(ctx context.Context, key string, offset int64, value int) *IntCmd
func (c Tx) SetEx(ctx context.Context, key string, value interface{}, expiration time.Duration) *StatusCmd
SetEx Redis `SETEx key expiration value` command.
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 (c Tx) SetRange(ctx context.Context, key string, offset int64, value string) *IntCmd
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 (c Tx) Shutdown(ctx context.Context) *StatusCmd
func (c Tx) ShutdownNoSave(ctx context.Context) *StatusCmd
func (c Tx) ShutdownSave(ctx context.Context) *StatusCmd
func (c Tx) SlaveOf(ctx context.Context, host, port string) *StatusCmd
func (c Tx) SlowLogGet(ctx context.Context, num int64) *SlowLogCmd
func (c Tx) Sort(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Tx) SortInterfaces(ctx context.Context, key string, sort *Sort) *SliceCmd
func (c Tx) SortRO(ctx context.Context, key string, sort *Sort) *StringSliceCmd
func (c Tx) SortStore(ctx context.Context, key, store string, sort *Sort) *IntCmd
func (c Tx) StrLen(ctx context.Context, key string) *IntCmd
func (c *Tx) String() string
func (c Tx) SwapDB(ctx context.Context, index1, index2 int) *StatusCmd
func (c Tx) Sync(_ context.Context)
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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (c Tx) TTL(ctx context.Context, key string) *DurationCmd
func (c Tx) Time(ctx context.Context) *TimeCmd
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 (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 (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 (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 (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 (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 (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 (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 (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 (c Tx) Touch(ctx context.Context, keys ...string) *IntCmd
func (c *Tx) TxPipeline() Pipeliner
TxPipeline creates a pipeline. Usually it is more convenient to use 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 (c Tx) Type(ctx context.Context, key string) *StatusCmd
func (c Tx) Unlink(ctx context.Context, keys ...string) *IntCmd
func (c *Tx) Unwatch(ctx context.Context, keys ...string) *StatusCmd
Unwatch flushes all the previously watched keys for a transaction.
func (c Tx) VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
`VADD key (FP32 | VALUES num) vector element` note: the API is experimental and may be subject to change.
func (c Tx) VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
`VADD key [REDUCE dim] (FP32 | VALUES num) vector element [CAS] [NOQUANT | Q8 | BIN] [EF build-exploration-factor] [SETATTR attributes] [M numlinks]` note: the API is experimental and may be subject to change.
func (c Tx) VCard(ctx context.Context, key string) *IntCmd
`VCARD key` note: the API is experimental and may be subject to change.
func (c Tx) VClearAttributes(ctx context.Context, key, element string) *BoolCmd
`VClearAttributes` clear attributes on a vector set element. The implementation of `VClearAttributes` is execute command `VSETATTR key element ""`. note: the API is experimental and may be subject to change.
func (c Tx) VDim(ctx context.Context, key string) *IntCmd
`VDIM key` note: the API is experimental and may be subject to change.
func (c Tx) VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
`VEMB key element [RAW]` note: the API is experimental and may be subject to change.
func (c Tx) VGetAttr(ctx context.Context, key, element string) *StringCmd
`VGETATTR key element` note: the API is experimental and may be subject to change.
func (c Tx) VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
`VINFO key` note: the API is experimental and may be subject to change.
func (c Tx) VLinks(ctx context.Context, key, element string) *StringSliceCmd
`VLINKS key element` note: the API is experimental and may be subject to change.
func (c Tx) VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
`VLINKS key element WITHSCORES` note: the API is experimental and may be subject to change.
func (c Tx) VRandMember(ctx context.Context, key string) *StringCmd
`VRANDMEMBER key` note: the API is experimental and may be subject to change.
func (c Tx) VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
`VRANDMEMBER key [count]` note: the API is experimental and may be subject to change.
func (c Tx) VRem(ctx context.Context, key, element string) *BoolCmd
`VREM key element` note: the API is experimental and may be subject to change.
func (c Tx) VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
`VSETATTR key element "{ JSON obj }"` The `attr` 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.
note: the API is experimental and may be subject to change.
func (c Tx) VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element)` note: the API is experimental and may be subject to change.
func (c Tx) VSimWithArgs(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *StringSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Tx) VSimWithArgsWithScores(ctx context.Context, key string, val Vector, simArgs *VSimArgs) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EPSILON delta] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]` note: the API is experimental and may be subject to change.
func (c Tx) VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
`VSIM key (ELE | FP32 | VALUES num) (vector | element) WITHSCORES` note: the API is experimental and may be subject to change.
func (c Tx) Wait(ctx context.Context, numSlaves int, timeout time.Duration) *IntCmd
func (c Tx) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd
func (c *Tx) Watch(ctx context.Context, keys ...string) *StatusCmd
Watch marks the keys to be watched for conditional execution of a transaction.
func (c Tx) XAck(ctx context.Context, stream, group string, ids ...string) *IntCmd
func (c Tx) XAckDel(ctx context.Context, stream string, group string, mode string, ids ...string) *SliceCmd
func (c Tx) XAdd(ctx context.Context, a *XAddArgs) *StringCmd
func (c Tx) XAutoClaim(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimCmd
func (c Tx) XAutoClaimJustID(ctx context.Context, a *XAutoClaimArgs) *XAutoClaimJustIDCmd
func (c Tx) XClaim(ctx context.Context, a *XClaimArgs) *XMessageSliceCmd
func (c Tx) XClaimJustID(ctx context.Context, a *XClaimArgs) *StringSliceCmd
func (c Tx) XDel(ctx context.Context, stream string, ids ...string) *IntCmd
func (c Tx) XDelEx(ctx context.Context, stream string, mode string, ids ...string) *SliceCmd
func (c Tx) XGroupCreate(ctx context.Context, stream, group, start string) *StatusCmd
func (c Tx) XGroupCreateConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Tx) XGroupCreateMkStream(ctx context.Context, stream, group, start string) *StatusCmd
func (c Tx) XGroupDelConsumer(ctx context.Context, stream, group, consumer string) *IntCmd
func (c Tx) XGroupDestroy(ctx context.Context, stream, group string) *IntCmd
func (c Tx) XGroupSetID(ctx context.Context, stream, group, start string) *StatusCmd
func (c Tx) XInfoConsumers(ctx context.Context, key string, group string) *XInfoConsumersCmd
func (c Tx) XInfoGroups(ctx context.Context, key string) *XInfoGroupsCmd
func (c Tx) XInfoStream(ctx context.Context, key string) *XInfoStreamCmd
func (c Tx) XInfoStreamFull(ctx context.Context, key string, count int) *XInfoStreamFullCmd
XInfoStreamFull XINFO STREAM FULL [COUNT count] redis-server >= 6.0.
func (c Tx) XLen(ctx context.Context, stream string) *IntCmd
func (c Tx) XPending(ctx context.Context, stream, group string) *XPendingCmd
func (c Tx) XPendingExt(ctx context.Context, a *XPendingExtArgs) *XPendingExtCmd
func (c Tx) XRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Tx) XRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
func (c Tx) XRead(ctx context.Context, a *XReadArgs) *XStreamSliceCmd
func (c Tx) XReadGroup(ctx context.Context, a *XReadGroupArgs) *XStreamSliceCmd
func (c Tx) XReadStreams(ctx context.Context, streams ...string) *XStreamSliceCmd
func (c Tx) XRevRange(ctx context.Context, stream, start, stop string) *XMessageSliceCmd
func (c Tx) XRevRangeN(ctx context.Context, stream, start, stop string, count int64) *XMessageSliceCmd
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 (c Tx) XTrimMaxLenApprox(ctx context.Context, key string, maxLen, limit int64) *IntCmd
func (c Tx) XTrimMaxLenApproxMode(ctx context.Context, key string, maxLen, limit int64, mode string) *IntCmd
func (c Tx) XTrimMaxLenMode(ctx context.Context, key string, maxLen int64, mode string) *IntCmd
func (c Tx) XTrimMinID(ctx context.Context, key string, minID string) *IntCmd
func (c Tx) XTrimMinIDApprox(ctx context.Context, key string, minID string, limit int64) *IntCmd
func (c Tx) XTrimMinIDApproxMode(ctx context.Context, key string, minID string, limit int64, mode string) *IntCmd
func (c Tx) XTrimMinIDMode(ctx context.Context, key string, minID string, mode string) *IntCmd
func (c Tx) ZAdd(ctx context.Context, key string, members ...Z) *IntCmd
ZAdd Redis `ZADD key score member [score member ...]` command.
func (c Tx) ZAddArgs(ctx context.Context, key string, args ZAddArgs) *IntCmd
func (c Tx) ZAddArgsIncr(ctx context.Context, key string, args ZAddArgs) *FloatCmd
func (c Tx) ZAddGT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddGT Redis `ZADD key GT score member [score member ...]` command.
func (c Tx) ZAddLT(ctx context.Context, key string, members ...Z) *IntCmd
ZAddLT Redis `ZADD key LT score member [score member ...]` command.
func (c Tx) ZAddNX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddNX Redis `ZADD key NX score member [score member ...]` command.
func (c Tx) ZAddXX(ctx context.Context, key string, members ...Z) *IntCmd
ZAddXX Redis `ZADD key XX score member [score member ...]` command.
func (c Tx) ZCard(ctx context.Context, key string) *IntCmd
func (c Tx) ZCount(ctx context.Context, key, min, max string) *IntCmd
func (c Tx) ZDiff(ctx context.Context, keys ...string) *StringSliceCmd
ZDiff redis-server version >= 6.2.0.
func (c Tx) ZDiffStore(ctx context.Context, destination string, keys ...string) *IntCmd
ZDiffStore redis-server version >=6.2.0.
func (c Tx) ZDiffWithScores(ctx context.Context, keys ...string) *ZSliceCmd
ZDiffWithScores redis-server version >= 6.2.0.
func (c Tx) ZIncrBy(ctx context.Context, key string, increment float64, member string) *FloatCmd
func (c Tx) ZInter(ctx context.Context, store *ZStore) *StringSliceCmd
func (c Tx) ZInterCard(ctx context.Context, limit int64, keys ...string) *IntCmd
func (c Tx) ZInterStore(ctx context.Context, destination string, store *ZStore) *IntCmd
func (c Tx) ZInterWithScores(ctx context.Context, store *ZStore) *ZSliceCmd
func (c Tx) ZLexCount(ctx context.Context, key, min, max string) *IntCmd
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 (c Tx) ZMScore(ctx context.Context, key string, members ...string) *FloatSliceCmd
func (c Tx) ZPopMax(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Tx) ZPopMin(ctx context.Context, key string, count ...int64) *ZSliceCmd
func (c Tx) ZRandMember(ctx context.Context, key string, count int) *StringSliceCmd
ZRandMember redis-server version >= 6.2.0.
func (c Tx) ZRandMemberWithScores(ctx context.Context, key string, count int) *ZSliceCmd
ZRandMemberWithScores redis-server version >= 6.2.0.
func (c Tx) ZRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Tx) ZRangeArgs(ctx context.Context, z ZRangeArgs) *StringSliceCmd
func (c Tx) ZRangeArgsWithScores(ctx context.Context, z ZRangeArgs) *ZSliceCmd
func (c Tx) ZRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Tx) ZRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Tx) ZRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
func (c Tx) ZRangeStore(ctx context.Context, dst string, z ZRangeArgs) *IntCmd
func (c Tx) ZRangeWithScores(ctx context.Context, key string, start, stop int64) *ZSliceCmd
func (c Tx) ZRank(ctx context.Context, key, member string) *IntCmd
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 (c Tx) ZRem(ctx context.Context, key string, members ...interface{}) *IntCmd
func (c Tx) ZRemRangeByLex(ctx context.Context, key, min, max string) *IntCmd
func (c Tx) ZRemRangeByRank(ctx context.Context, key string, start, stop int64) *IntCmd
func (c Tx) ZRemRangeByScore(ctx context.Context, key, min, max string) *IntCmd
func (c Tx) ZRevRange(ctx context.Context, key string, start, stop int64) *StringSliceCmd
func (c Tx) ZRevRangeByLex(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Tx) ZRevRangeByScore(ctx context.Context, key string, opt *ZRangeBy) *StringSliceCmd
func (c Tx) ZRevRangeByScoreWithScores(ctx context.Context, key string, opt *ZRangeBy) *ZSliceCmd
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 (c Tx) ZRevRank(ctx context.Context, key, member string) *IntCmd
func (c Tx) ZRevRankWithScore(ctx context.Context, key, member string) *RankWithScoreCmd
func (c Tx) ZScan(ctx context.Context, key string, cursor uint64, match string, count int64) *ScanCmd
func (c Tx) ZScore(ctx context.Context, key, member string) *FloatCmd
func (c Tx) ZUnion(ctx context.Context, store ZStore) *StringSliceCmd
func (c Tx) ZUnionStore(ctx context.Context, dest string, store *ZStore) *IntCmd
func (c Tx) ZUnionWithScores(ctx context.Context, store ZStore) *ZSliceCmd
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.
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
}
func NewUniversalClient(opts *UniversalOptions) UniversalClient
NewUniversalClient returns a new multi client. The type of the returned client depends on the following conditions:
▹ Example (Cluster)
▹ Example (Failover)
▹ Example (Simple)
UniversalOptions information is required by UniversalClient to establish connections.
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
// 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)
// CredentialsProviderContext is an enhanced parameter of CredentialsProvider,
// done to maintain API compatibility. In the future,
// there might be a merge between CredentialsProviderContext and CredentialsProvider.
// There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider.
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
// StreamingCredentialsProvider is used to retrieve the credentials
// for the connection from an external source. Those credentials may change
// during the connection lifetime. This is useful for managed identity
// scenarios where the credentials are retrieved from an external source.
//
// Currently, this is a placeholder for the future implementation.
StreamingCredentialsProvider auth.StreamingCredentialsProvider
SentinelUsername string
SentinelPassword string
MaxRetries int
MinRetryBackoff time.Duration
MaxRetryBackoff time.Duration
DialTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
ContextTimeoutEnabled bool
// ReadBufferSize is the size of the bufio.Reader buffer for each connection.
// Larger buffers can improve performance for commands that return large responses.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
ReadBufferSize int
// WriteBufferSize is the size of the bufio.Writer buffer for each connection.
// Larger buffers can improve performance for large pipelines and commands with many arguments.
// Smaller buffers can improve memory usage for larger pools.
//
// default: 32KiB (32768 bytes)
WriteBufferSize int
// 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 is the sentinel master name.
// Only for failover clients.
MasterName string
// DisableIndentity - Disable set-lib on connect.
//
// default: false
//
// Deprecated: Use DisableIdentity instead.
DisableIndentity bool
// DisableIdentity is used to disable CLIENT SETINFO command on connect.
//
// default: false
DisableIdentity bool
IdentitySuffix string
// FailingTimeoutSeconds is the timeout in seconds for marking a cluster node as failing.
// When a node is marked as failing, it will be avoided for this duration.
// Only applies to cluster clients. Default is 15 seconds.
FailingTimeoutSeconds int
UnstableResp3 bool
// IsClusterMode can be used when only one Addrs is provided (e.g. Elasticache supports setting up cluster mode with configuration endpoint).
IsClusterMode bool
}
func (o *UniversalOptions) Cluster() *ClusterOptions
Cluster returns cluster options created from the universal options.
func (o *UniversalOptions) Failover() *FailoverOptions
Failover returns failover options created from the universal options.
func (o *UniversalOptions) Simple() *Options
Simple returns basic options created from the universal options.
type VAddArgs struct {
// the REDUCE option must be passed immediately after the key
Reduce int64
Cas bool
// The NoQuant, Q8 and Bin options are mutually exclusive.
NoQuant bool
Q8 bool
Bin bool
EF int64
SetAttr string
M int64
}
type VSimArgs struct {
Count int64
EF int64
Filter string
FilterEF int64
Truth bool
NoThread bool
Epsilon float64
}
type Vector interface {
Value() []any
}
type VectorFP32 struct {
Val []byte
}
func (v *VectorFP32) Value() []any
type VectorRef struct {
Name string // the name of the referent vector
}
func (v *VectorRef) Value() []any
type VectorScore struct {
Name string
Score float64
}
type VectorScoreSliceCmd struct {
// contains filtered or unexported fields
}
func NewVectorInfoSliceCmd(ctx context.Context, args ...any) *VectorScoreSliceCmd
func (cmd *VectorScoreSliceCmd) Args() []interface{}
func (cmd *VectorScoreSliceCmd) Err() error
func (cmd *VectorScoreSliceCmd) FullName() string
func (cmd *VectorScoreSliceCmd) Name() string
func (cmd *VectorScoreSliceCmd) Result() ([]VectorScore, error)
func (cmd *VectorScoreSliceCmd) SetErr(e error)
func (cmd *VectorScoreSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *VectorScoreSliceCmd) SetVal(val []VectorScore)
func (cmd *VectorScoreSliceCmd) String() string
func (cmd *VectorScoreSliceCmd) Val() []VectorScore
note: the APIs is experimental and may be subject to change.
type VectorSetCmdable interface {
VAdd(ctx context.Context, key, element string, val Vector) *BoolCmd
VAddWithArgs(ctx context.Context, key, element string, val Vector, addArgs *VAddArgs) *BoolCmd
VCard(ctx context.Context, key string) *IntCmd
VDim(ctx context.Context, key string) *IntCmd
VEmb(ctx context.Context, key, element string, raw bool) *SliceCmd
VGetAttr(ctx context.Context, key, element string) *StringCmd
VInfo(ctx context.Context, key string) *MapStringInterfaceCmd
VLinks(ctx context.Context, key, element string) *StringSliceCmd
VLinksWithScores(ctx context.Context, key, element string) *VectorScoreSliceCmd
VRandMember(ctx context.Context, key string) *StringCmd
VRandMemberCount(ctx context.Context, key string, count int) *StringSliceCmd
VRem(ctx context.Context, key, element string) *BoolCmd
VSetAttr(ctx context.Context, key, element string, attr interface{}) *BoolCmd
VClearAttributes(ctx context.Context, key, element string) *BoolCmd
VSim(ctx context.Context, key string, val Vector) *StringSliceCmd
VSimWithScores(ctx context.Context, key string, val Vector) *VectorScoreSliceCmd
VSimWithArgs(ctx context.Context, key string, val Vector, args *VSimArgs) *StringSliceCmd
VSimWithArgsWithScores(ctx context.Context, key string, val Vector, args *VSimArgs) *VectorScoreSliceCmd
}
type VectorValues struct {
Val []float64
}
func (v *VectorValues) Value() []any
XAddArgs accepts values in the following formats:
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 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
Mode string
ID string
Values interface{}
}
type XAutoClaimArgs struct {
Stream string
Group string
MinIdle time.Duration
Start string
Count int64
Consumer string
}
type XAutoClaimCmd struct {
// contains filtered or unexported fields
}
func NewXAutoClaimCmd(ctx context.Context, args ...interface{}) *XAutoClaimCmd
func (cmd *XAutoClaimCmd) Args() []interface{}
func (cmd *XAutoClaimCmd) Err() error
func (cmd *XAutoClaimCmd) FullName() string
func (cmd *XAutoClaimCmd) Name() string
func (cmd *XAutoClaimCmd) Result() (messages []XMessage, start string, err error)
func (cmd *XAutoClaimCmd) SetErr(e error)
func (cmd *XAutoClaimCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XAutoClaimCmd) SetVal(val []XMessage, start string)
func (cmd *XAutoClaimCmd) String() string
func (cmd *XAutoClaimCmd) Val() (messages []XMessage, start string)
type XAutoClaimJustIDCmd struct {
// contains filtered or unexported fields
}
func NewXAutoClaimJustIDCmd(ctx context.Context, args ...interface{}) *XAutoClaimJustIDCmd
func (cmd *XAutoClaimJustIDCmd) Args() []interface{}
func (cmd *XAutoClaimJustIDCmd) Err() error
func (cmd *XAutoClaimJustIDCmd) FullName() string
func (cmd *XAutoClaimJustIDCmd) Name() string
func (cmd *XAutoClaimJustIDCmd) Result() (ids []string, start string, err error)
func (cmd *XAutoClaimJustIDCmd) SetErr(e error)
func (cmd *XAutoClaimJustIDCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XAutoClaimJustIDCmd) SetVal(val []string, start string)
func (cmd *XAutoClaimJustIDCmd) String() string
func (cmd *XAutoClaimJustIDCmd) Val() (ids []string, start string)
type XClaimArgs struct {
Stream string
Group string
Consumer string
MinIdle time.Duration
Messages []string
}
type XInfoConsumer struct {
Name string
Pending int64
Idle time.Duration
Inactive time.Duration
}
type XInfoConsumersCmd struct {
// contains filtered or unexported fields
}
func NewXInfoConsumersCmd(ctx context.Context, stream string, group string) *XInfoConsumersCmd
func (cmd *XInfoConsumersCmd) Args() []interface{}
func (cmd *XInfoConsumersCmd) Err() error
func (cmd *XInfoConsumersCmd) FullName() string
func (cmd *XInfoConsumersCmd) Name() string
func (cmd *XInfoConsumersCmd) Result() ([]XInfoConsumer, error)
func (cmd *XInfoConsumersCmd) SetErr(e error)
func (cmd *XInfoConsumersCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XInfoConsumersCmd) SetVal(val []XInfoConsumer)
func (cmd *XInfoConsumersCmd) String() string
func (cmd *XInfoConsumersCmd) Val() []XInfoConsumer
type XInfoGroup struct {
Name string
Consumers int64
Pending int64
LastDeliveredID string
EntriesRead int64
// Lag represents the number of pending messages in the stream not yet
// delivered to this consumer group. Returns -1 when the lag cannot be determined.
Lag int64
}
type XInfoGroupsCmd struct {
// contains filtered or unexported fields
}
func NewXInfoGroupsCmd(ctx context.Context, stream string) *XInfoGroupsCmd
func (cmd *XInfoGroupsCmd) Args() []interface{}
func (cmd *XInfoGroupsCmd) Err() error
func (cmd *XInfoGroupsCmd) FullName() string
func (cmd *XInfoGroupsCmd) Name() string
func (cmd *XInfoGroupsCmd) Result() ([]XInfoGroup, error)
func (cmd *XInfoGroupsCmd) SetErr(e error)
func (cmd *XInfoGroupsCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XInfoGroupsCmd) SetVal(val []XInfoGroup)
func (cmd *XInfoGroupsCmd) String() string
func (cmd *XInfoGroupsCmd) Val() []XInfoGroup
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 struct {
// contains filtered or unexported fields
}
func NewXInfoStreamCmd(ctx context.Context, stream string) *XInfoStreamCmd
func (cmd *XInfoStreamCmd) Args() []interface{}
func (cmd *XInfoStreamCmd) Err() error
func (cmd *XInfoStreamCmd) FullName() string
func (cmd *XInfoStreamCmd) Name() string
func (cmd *XInfoStreamCmd) Result() (*XInfoStream, error)
func (cmd *XInfoStreamCmd) SetErr(e error)
func (cmd *XInfoStreamCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XInfoStreamCmd) SetVal(val *XInfoStream)
func (cmd *XInfoStreamCmd) String() string
func (cmd *XInfoStreamCmd) Val() *XInfoStream
type XInfoStreamConsumer struct {
Name string
SeenTime time.Time
ActiveTime time.Time
PelCount int64
Pending []XInfoStreamConsumerPending
}
type XInfoStreamConsumerPending struct {
ID string
DeliveryTime time.Time
DeliveryCount int64
}
type XInfoStreamFull struct {
Length int64
RadixTreeKeys int64
RadixTreeNodes int64
LastGeneratedID string
MaxDeletedEntryID string
EntriesAdded int64
Entries []XMessage
Groups []XInfoStreamGroup
RecordedFirstEntryID string
}
type XInfoStreamFullCmd struct {
// contains filtered or unexported fields
}
func NewXInfoStreamFullCmd(ctx context.Context, args ...interface{}) *XInfoStreamFullCmd
func (cmd *XInfoStreamFullCmd) Args() []interface{}
func (cmd *XInfoStreamFullCmd) Err() error
func (cmd *XInfoStreamFullCmd) FullName() string
func (cmd *XInfoStreamFullCmd) Name() string
func (cmd *XInfoStreamFullCmd) Result() (*XInfoStreamFull, error)
func (cmd *XInfoStreamFullCmd) SetErr(e error)
func (cmd *XInfoStreamFullCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XInfoStreamFullCmd) SetVal(val *XInfoStreamFull)
func (cmd *XInfoStreamFullCmd) String() string
func (cmd *XInfoStreamFullCmd) Val() *XInfoStreamFull
type XInfoStreamGroup struct {
Name string
LastDeliveredID string
EntriesRead int64
Lag int64
PelCount int64
Pending []XInfoStreamGroupPending
Consumers []XInfoStreamConsumer
}
type XInfoStreamGroupPending struct {
ID string
Consumer string
DeliveryTime time.Time
DeliveryCount int64
}
type XMessage struct {
ID string
Values map[string]interface{}
}
type XMessageSliceCmd struct {
// contains filtered or unexported fields
}
func NewXMessageSliceCmd(ctx context.Context, args ...interface{}) *XMessageSliceCmd
func NewXMessageSliceCmdResult(val []XMessage, err error) *XMessageSliceCmd
NewXMessageSliceCmdResult returns a XMessageSliceCmd initialised with val and err for testing.
func (cmd *XMessageSliceCmd) Args() []interface{}
func (cmd *XMessageSliceCmd) Err() error
func (cmd *XMessageSliceCmd) FullName() string
func (cmd *XMessageSliceCmd) Name() string
func (cmd *XMessageSliceCmd) Result() ([]XMessage, error)
func (cmd *XMessageSliceCmd) SetErr(e error)
func (cmd *XMessageSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XMessageSliceCmd) SetVal(val []XMessage)
func (cmd *XMessageSliceCmd) String() string
func (cmd *XMessageSliceCmd) Val() []XMessage
type XPending struct {
Count int64
Lower string
Higher string
Consumers map[string]int64
}
type XPendingCmd struct {
// contains filtered or unexported fields
}
func NewXPendingCmd(ctx context.Context, args ...interface{}) *XPendingCmd
func NewXPendingResult(val *XPending, err error) *XPendingCmd
NewXPendingResult returns a XPendingCmd initialised with val and err for testing.
func (cmd *XPendingCmd) Args() []interface{}
func (cmd *XPendingCmd) Err() error
func (cmd *XPendingCmd) FullName() string
func (cmd *XPendingCmd) Name() string
func (cmd *XPendingCmd) Result() (*XPending, error)
func (cmd *XPendingCmd) SetErr(e error)
func (cmd *XPendingCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XPendingCmd) SetVal(val *XPending)
func (cmd *XPendingCmd) String() string
func (cmd *XPendingCmd) Val() *XPending
type XPendingExt struct {
ID string
Consumer string
Idle time.Duration
RetryCount int64
}
type XPendingExtArgs struct {
Stream string
Group string
Idle time.Duration
Start string
End string
Count int64
Consumer string
}
type XPendingExtCmd struct {
// contains filtered or unexported fields
}
func NewXPendingExtCmd(ctx context.Context, args ...interface{}) *XPendingExtCmd
func (cmd *XPendingExtCmd) Args() []interface{}
func (cmd *XPendingExtCmd) Err() error
func (cmd *XPendingExtCmd) FullName() string
func (cmd *XPendingExtCmd) Name() string
func (cmd *XPendingExtCmd) Result() ([]XPendingExt, error)
func (cmd *XPendingExtCmd) SetErr(e error)
func (cmd *XPendingExtCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XPendingExtCmd) SetVal(val []XPendingExt)
func (cmd *XPendingExtCmd) String() string
func (cmd *XPendingExtCmd) Val() []XPendingExt
type XReadArgs struct {
Streams []string // list of streams and ids, e.g. stream1 stream2 id1 id2
Count int64
Block time.Duration
ID string
}
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 struct {
Stream string
Messages []XMessage
}
type XStreamSliceCmd struct {
// contains filtered or unexported fields
}
func NewXStreamSliceCmd(ctx context.Context, args ...interface{}) *XStreamSliceCmd
func NewXStreamSliceCmdResult(val []XStream, err error) *XStreamSliceCmd
NewXStreamSliceCmdResult returns a XStreamSliceCmd initialised with val and err for testing.
func (cmd *XStreamSliceCmd) Args() []interface{}
func (cmd *XStreamSliceCmd) Err() error
func (cmd *XStreamSliceCmd) FullName() string
func (cmd *XStreamSliceCmd) Name() string
func (cmd *XStreamSliceCmd) Result() ([]XStream, error)
func (cmd *XStreamSliceCmd) SetErr(e error)
func (cmd *XStreamSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *XStreamSliceCmd) SetVal(val []XStream)
func (cmd *XStreamSliceCmd) String() string
func (cmd *XStreamSliceCmd) Val() []XStream
Z represents sorted set member.
type Z struct {
Score float64
Member interface{}
}
ZAddArgs WARN: The GT, LT and NX options are mutually exclusive.
type ZAddArgs struct {
NX bool
XX bool
LT bool
GT bool
Ch bool
Members []Z
}
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 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
}
type ZRangeBy struct {
Min, Max string
Offset, Count int64
}
type ZSliceCmd struct {
// contains filtered or unexported fields
}
func NewZSliceCmd(ctx context.Context, args ...interface{}) *ZSliceCmd
func NewZSliceCmdResult(val []Z, err error) *ZSliceCmd
NewZSliceCmdResult returns a ZSliceCmd initialised with val and err for testing.
func (cmd *ZSliceCmd) Args() []interface{}
func (cmd *ZSliceCmd) Err() error
func (cmd *ZSliceCmd) FullName() string
func (cmd *ZSliceCmd) Name() string
func (cmd *ZSliceCmd) Result() ([]Z, error)
func (cmd *ZSliceCmd) SetErr(e error)
func (cmd *ZSliceCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ZSliceCmd) SetVal(val []Z)
func (cmd *ZSliceCmd) String() string
func (cmd *ZSliceCmd) Val() []Z
type ZSliceWithKeyCmd struct {
// contains filtered or unexported fields
}
func NewZSliceWithKeyCmd(ctx context.Context, args ...interface{}) *ZSliceWithKeyCmd
func (cmd *ZSliceWithKeyCmd) Args() []interface{}
func (cmd *ZSliceWithKeyCmd) Err() error
func (cmd *ZSliceWithKeyCmd) FullName() string
func (cmd *ZSliceWithKeyCmd) Name() string
func (cmd *ZSliceWithKeyCmd) Result() (string, []Z, error)
func (cmd *ZSliceWithKeyCmd) SetErr(e error)
func (cmd *ZSliceWithKeyCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ZSliceWithKeyCmd) SetVal(key string, val []Z)
func (cmd *ZSliceWithKeyCmd) String() string
func (cmd *ZSliceWithKeyCmd) Val() (string, []Z)
ZStore is used as an arg to ZInter/ZInterStore and ZUnion/ZUnionStore.
type ZStore struct {
Keys []string
Weights []float64
// Can be SUM, MIN or MAX.
Aggregate string
}
ZWithKey represents sorted set member including the name of the key where it was popped.
type ZWithKey struct {
Z
Key string
}
type ZWithKeyCmd struct {
// contains filtered or unexported fields
}
func NewZWithKeyCmd(ctx context.Context, args ...interface{}) *ZWithKeyCmd
func NewZWithKeyCmdResult(val *ZWithKey, err error) *ZWithKeyCmd
NewZWithKeyCmdResult returns a ZWithKeyCmd initialised with val and err for testing.
func (cmd *ZWithKeyCmd) Args() []interface{}
func (cmd *ZWithKeyCmd) Err() error
func (cmd *ZWithKeyCmd) FullName() string
func (cmd *ZWithKeyCmd) Name() string
func (cmd *ZWithKeyCmd) Result() (*ZWithKey, error)
func (cmd *ZWithKeyCmd) SetErr(e error)
func (cmd *ZWithKeyCmd) SetFirstKeyPos(keyPos int8)
func (cmd *ZWithKeyCmd) SetVal(val *ZWithKey)
func (cmd *ZWithKeyCmd) String() string
func (cmd *ZWithKeyCmd) Val() *ZWithKey