Documentation ¶
Index ¶
- Constants
- type AuxObject
- type BaseObject
- type CallbackFunc
- type DBSizeObject
- type HashObject
- type IntsetDetail
- type ListObject
- type ModuleTypeObject
- type Quicklist2Detail
- type QuicklistDetail
- type RedisObject
- type SetObject
- type StreamConsumer
- type StreamEntry
- type StreamGroup
- type StreamId
- type StreamMessage
- type StreamNAck
- type StreamObject
- type StringObject
- type ZSetEntry
- type ZSetObject
- type ZiplistDetail
Constants ¶
const ( // StringType is redis string StringType = "string" // ListType is redis list ListType = "list" // SetType is redis set SetType = "set" // HashType is redis hash HashType = "hash" // ZSetType is redis sorted set ZSetType = "zset" // AuxType is redis metadata key-value pair AuxType = "aux" // DBSizeType is for RDB_OPCODE_RESIZEDB DBSizeType = "dbsize" // StreamType is a redis stream StreamType = "stream" )
const ( // StringEncoding for string StringEncoding = "string" // ListEncoding is formed by a length encoding and some string ListEncoding = "list" // SetEncoding is formed by a length encoding and some string SetEncoding = "set" // ZSetEncoding is formed by a length encoding and some string ZSetEncoding = "zset" // HashEncoding is formed by a length encoding and some string HashEncoding = "hash" // ZSet2Encoding is zset version2 which stores doubles in binary format ZSet2Encoding = "zset2" // ZipMapEncoding has been deprecated ZipMapEncoding = "zipmap" // ZipListEncoding stores data in contiguous memory ZipListEncoding = "ziplist" // IntSetEncoding is a ordered list of integers IntSetEncoding = "intset" // QuickListEncoding is a list of ziplist QuickListEncoding = "quicklist" // ListPackEncoding is a new replacement for ziplist ListPackEncoding = "listpack" // QuickList2Encoding is a list of listpack QuickList2Encoding = "quicklist2" )
const QuicklistNodeContainerPacked = 2
QuicklistNodeContainerPacked means node of quicklist is list pack
const QuicklistNodeContainerPlain = 1
QuicklistNodeContainerPlain means node of quicklist is normal string
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuxObject ¶
type AuxObject struct { *BaseObject Value []byte }
AuxObject stores redis metadata
func (*AuxObject) MarshalJSON ¶
MarshalJSON marshal []byte as string
type BaseObject ¶
type BaseObject struct { DB int `json:"db"` // DB is db index of redis object Key string `json:"key"` // Key is key of redis object Expiration *time.Time `json:"expiration,omitempty"` // Expiration is expiration time, expiration of persistent object is nil Size int `json:"size"` // Size is rdb value size in Byte Type string `json:"type"` // Type is one of string/list/set/hash/zset Encoding string `json:"encoding"` // Encoding is the exact encoding method Extra interface{} `json:"-"` // Extra stores more detail of encoding for memory profiler and other usages }
BaseObject is basement of redis object
func (*BaseObject) GetDBIndex ¶
func (o *BaseObject) GetDBIndex() int
GetDBIndex returns db index of object
func (*BaseObject) GetElemCount ¶
func (o *BaseObject) GetElemCount() int
GetElemCount returns number of elements in list/set/hash/zset
func (*BaseObject) GetEncoding ¶
func (o *BaseObject) GetEncoding() string
GetEncoding returns encoding of object
func (*BaseObject) GetExpiration ¶
func (o *BaseObject) GetExpiration() *time.Time
GetExpiration returns expiration time, expiration of persistent object is nil
func (*BaseObject) GetSize ¶
func (o *BaseObject) GetSize() int
GetSize returns rdb value size in Byte
type CallbackFunc ¶
type CallbackFunc func(object RedisObject) bool
CallbackFunc process redis object
type DBSizeObject ¶
type DBSizeObject struct { *BaseObject KeyCount uint64 TTLCount uint64 }
DBSizeObject stores db size metadata
func (*DBSizeObject) GetType ¶
func (o *DBSizeObject) GetType() string
GetType returns redis object type
type HashObject ¶
type HashObject struct { *BaseObject Hash map[string][]byte }
HashObject stores a hash object
func (*HashObject) GetElemCount ¶
func (o *HashObject) GetElemCount() int
GetElemCount returns number of elements in list/set/hash/zset
func (*HashObject) GetType ¶
func (o *HashObject) GetType() string
GetType returns redis object type
func (*HashObject) MarshalJSON ¶
func (o *HashObject) MarshalJSON() ([]byte, error)
MarshalJSON marshal []byte as string
type IntsetDetail ¶
type IntsetDetail struct {
RawStringSize int
}
IntsetDetail stores detail for intset
type ListObject ¶
type ListObject struct { *BaseObject Values [][]byte }
ListObject stores a list object
func (*ListObject) GetElemCount ¶
func (o *ListObject) GetElemCount() int
GetElemCount returns number of elements in list/set/hash/zset
func (*ListObject) GetType ¶
func (o *ListObject) GetType() string
GetType returns redis object type
func (*ListObject) MarshalJSON ¶
func (o *ListObject) MarshalJSON() ([]byte, error)
MarshalJSON marshal []byte as string
type ModuleTypeObject ¶
type ModuleTypeObject struct { *BaseObject ModuleType string Value interface{} }
ModuleTypeObject stores a module type object parsed by custom handler
func (*ModuleTypeObject) GetType ¶
func (o *ModuleTypeObject) GetType() string
GetType returns module type name
func (*ModuleTypeObject) MarshalJSON ¶
func (o *ModuleTypeObject) MarshalJSON() ([]byte, error)
MarshalJSON marshal []byte as string
type Quicklist2Detail ¶
type Quicklist2Detail struct { // NodeEncodings means node of quicklist is QuicklistNodeContainerPlain or QuicklistNodeContainerPacked NodeEncodings []int // ListPackEntrySize stores sizes of each listPackEntry is node encoding is QuicklistNodeContainerPacked ListPackEntrySize [][]uint32 }
Quicklist2Detail stores detail for quicklist2
type QuicklistDetail ¶
type QuicklistDetail struct { // ZiplistStruct stores each ziplist within quicklist ZiplistStruct [][][]byte }
QuicklistDetail stores detail for quicklist
type RedisObject ¶
type RedisObject interface { // GetType returns redis type of object: string/list/set/hash/zset GetType() string // GetKey returns key of object GetKey() string // GetDBIndex returns db index of object GetDBIndex() int // GetExpiration returns expiration time, expiration of persistent object is nil GetExpiration() *time.Time // GetSize returns rdb value size in Byte GetSize() int // GetElemCount returns number of elements in list/set/hash/zset GetElemCount() int // GetEncoding returns encoding of object GetEncoding() string }
RedisObject is interface for a redis object
type SetObject ¶
type SetObject struct { *BaseObject Members [][]byte }
SetObject stores a set object
func (*SetObject) GetElemCount ¶
GetElemCount returns number of elements in list/set/hash/zset
func (*SetObject) MarshalJSON ¶
MarshalJSON marshal []byte as string
type StreamConsumer ¶
type StreamConsumer struct { Name string `json:"name"` SeenTime uint64 `json:"seenTime"` Pending []*StreamId `json:"pending,omitempty"` }
StreamConsumer is a consumer
type StreamEntry ¶
type StreamEntry struct { FirstMsgId *StreamId `json:"firstMsgId"` Fields []string `json:"fields"` Msgs []*StreamMessage `json:"msgs"` }
StreamEntry is a group of messages in stream Actually, it is a node of radix tree which may contains
type StreamGroup ¶
type StreamGroup struct { Name string `json:"name"` LastId *StreamId `json:"lastId"` Pending []*StreamNAck `json:"pending,omitempty"` Consumers []*StreamConsumer `json:"consumers,omitempty"` // EntriesRead is only valid in V2. The following comments are from redis to illustrate its use /*In a perfect world (CG starts at 0-0, no dels, no XGROUP SETID, ...), this is the total number of group reads. In the real world, the reasoning behind this value is detailed at the top comment of streamEstimateDistanceFromFirstEverEntry(). */ EntriesRead uint64 `json:"entriesRead,omitempty"` }
StreamGroup is a consumer group
type StreamId ¶
StreamId is a 128-bit number composed of a milliseconds time and a sequence counter
func (*StreamId) MarshalText ¶
type StreamMessage ¶
type StreamMessage struct { Id *StreamId `json:"id"` Fields map[string]string `json:"fields"` Deleted bool `json:"deleted"` }
StreamMessage is a message item in stream
type StreamNAck ¶
type StreamNAck struct { Id *StreamId `json:"id"` DeliveryTime uint64 `json:"deliveryTime"` DeliveryCount uint64 `json:"deliveryCount"` }
StreamNAck points a pending message
type StreamObject ¶
type StreamObject struct { *BaseObject // IsV2 means is RDB_TYPE_STREAM_LISTPACKS_2` IsV2 bool `json:"isV2,omitempty"` // Entries stores messages in stream Entries []*StreamEntry `json:"entries,omitempty"` // Groups is consumer groups of stream Groups []*StreamGroup `json:"groups,omitempty"` // Length is current number of elements inside this stream Length uint64 `json:"len"` // LastId is the ID of last entry in stream LastId *StreamId `json:"lastId"` // FirstId is the ID of first entry in stream. only valid in V2 FirstId *StreamId `json:"firstId,omitempty"` // MaxDeletedId is the maximal ID that was deleted in stream. only valid in V2 MaxDeletedId *StreamId `json:"maxDeletedId,omitempty"` // AddedEntriesCount is count of elements added in all time. only valid in V2 AddedEntriesCount uint64 `json:"addedEntriesCount,omitempty"` }
StreamObject stores a stream object
func (*StreamObject) GetType ¶
func (obj *StreamObject) GetType() string
type StringObject ¶
type StringObject struct { *BaseObject Value []byte }
StringObject stores a string object
func (*StringObject) GetType ¶
func (o *StringObject) GetType() string
GetType returns redis object type
func (*StringObject) MarshalJSON ¶
func (o *StringObject) MarshalJSON() ([]byte, error)
MarshalJSON marshal []byte as string
type ZSetObject ¶
type ZSetObject struct { *BaseObject Entries []*ZSetEntry `json:"entries"` }
ZSetObject stores a sorted set object
func (*ZSetObject) GetElemCount ¶
func (o *ZSetObject) GetElemCount() int
GetElemCount returns number of elements in list/set/hash/zset
func (*ZSetObject) GetType ¶
func (o *ZSetObject) GetType() string
GetType returns redis object type
type ZiplistDetail ¶
type ZiplistDetail struct {
RawStringSize int
}
ZiplistDetail stores detail for ziplist