mirror of
https://github.com/hanzokv/go.git
synced 2026-09-24 00:31:51 +00:00
We do not use Redis. The client was a go-redis fork and still said so
everywhere: `package redis`, `redis.NewClient`, `redis://`, `extra/redisotel`.
Consumers wrote `redis.Client` against a Valkey-backed store called KV.
package redis -> package kv (93 decls)
redis.X -> kv.X (2,794 call sites)
"redis: …" errors -> "kv: …" (206)
extra/redis{otel,cmd,prometheus,census} -> extra/kv{otel,cmd,prometheus,census}
redis:// , rediss:// -> kv:// , kvs:// (ParseURL)
Redis*/*Redis* idents -> KV*/*KV*
REDIS_VERSION, REDIS_ENDPOINTS_CONFIG_PATH -> KV_*
I previously argued this rename was unsafe because much of it was "wire
contract". That was wrong, and the categorisation shows why: RESP command names
are GET/SET/HSET — they never contain the word. Of 5,771 occurrences only two
kinds were server-visible at all: the ParseURL scheme (we choose what we pass;
our configs already use kv://) and the CLIENT SETINFO lib-name label, which the
server merely records. Nothing here changes a byte of protocol.
Two things deliberately keep the old spelling:
RediSearch — names a specific external module the FT.* commands map to.
StoreDist — contains the letters by accident (sto-reDis-t), not the word.
Breaking for consumers by design: every import site must move redis.X -> kv.X.
Minor bump, never a major — this module stays v9 forever.
197 lines
5.3 KiB
Go
197 lines
5.3 KiB
Go
package kv
|
|
|
|
import "time"
|
|
|
|
// NewCmdResult returns a Cmd initialised with val and err for testing.
|
|
func NewCmdResult(val interface{}, err error) *Cmd {
|
|
var cmd Cmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewSliceResult returns a SliceCmd initialised with val and err for testing.
|
|
func NewSliceResult(val []interface{}, err error) *SliceCmd {
|
|
var cmd SliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewStatusResult returns a StatusCmd initialised with val and err for testing.
|
|
func NewStatusResult(val string, err error) *StatusCmd {
|
|
var cmd StatusCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewIntResult returns an IntCmd initialised with val and err for testing.
|
|
func NewIntResult(val int64, err error) *IntCmd {
|
|
var cmd IntCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewDurationResult returns a DurationCmd initialised with val and err for testing.
|
|
func NewDurationResult(val time.Duration, err error) *DurationCmd {
|
|
var cmd DurationCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewBoolResult returns a BoolCmd initialised with val and err for testing.
|
|
func NewBoolResult(val bool, err error) *BoolCmd {
|
|
var cmd BoolCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewStringResult returns a StringCmd initialised with val and err for testing.
|
|
func NewStringResult(val string, err error) *StringCmd {
|
|
var cmd StringCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewFloatResult returns a FloatCmd initialised with val and err for testing.
|
|
func NewFloatResult(val float64, err error) *FloatCmd {
|
|
var cmd FloatCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewStringSliceResult returns a StringSliceCmd initialised with val and err for testing.
|
|
func NewStringSliceResult(val []string, err error) *StringSliceCmd {
|
|
var cmd StringSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewBoolSliceResult returns a BoolSliceCmd initialised with val and err for testing.
|
|
func NewBoolSliceResult(val []bool, err error) *BoolSliceCmd {
|
|
var cmd BoolSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewFloatSliceResult returns a FloatSliceCmd initialised with val and err for testing.
|
|
func NewFloatSliceResult(val []float64, err error) *FloatSliceCmd {
|
|
var cmd FloatSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewMapStringStringResult returns a MapStringStringCmd initialised with val and err for testing.
|
|
func NewMapStringStringResult(val map[string]string, err error) *MapStringStringCmd {
|
|
var cmd MapStringStringCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewMapStringIntCmdResult returns a MapStringIntCmd initialised with val and err for testing.
|
|
func NewMapStringIntCmdResult(val map[string]int64, err error) *MapStringIntCmd {
|
|
var cmd MapStringIntCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewTimeCmdResult returns a TimeCmd initialised with val and err for testing.
|
|
func NewTimeCmdResult(val time.Time, err error) *TimeCmd {
|
|
var cmd TimeCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewZSliceCmdResult returns a ZSliceCmd initialised with val and err for testing.
|
|
func NewZSliceCmdResult(val []Z, err error) *ZSliceCmd {
|
|
var cmd ZSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewZWithKeyCmdResult returns a ZWithKeyCmd initialised with val and err for testing.
|
|
func NewZWithKeyCmdResult(val *ZWithKey, err error) *ZWithKeyCmd {
|
|
var cmd ZWithKeyCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewScanCmdResult returns a ScanCmd initialised with val and err for testing.
|
|
func NewScanCmdResult(keys []string, cursor uint64, err error) *ScanCmd {
|
|
var cmd ScanCmd
|
|
cmd.page = keys
|
|
cmd.cursor = cursor
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewClusterSlotsCmdResult returns a ClusterSlotsCmd initialised with val and err for testing.
|
|
func NewClusterSlotsCmdResult(val []ClusterSlot, err error) *ClusterSlotsCmd {
|
|
var cmd ClusterSlotsCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewGeoLocationCmdResult returns a GeoLocationCmd initialised with val and err for testing.
|
|
func NewGeoLocationCmdResult(val []GeoLocation, err error) *GeoLocationCmd {
|
|
var cmd GeoLocationCmd
|
|
cmd.locations = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewGeoPosCmdResult returns a GeoPosCmd initialised with val and err for testing.
|
|
func NewGeoPosCmdResult(val []*GeoPos, err error) *GeoPosCmd {
|
|
var cmd GeoPosCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewCommandsInfoCmdResult returns a CommandsInfoCmd initialised with val and err for testing.
|
|
func NewCommandsInfoCmdResult(val map[string]*CommandInfo, err error) *CommandsInfoCmd {
|
|
var cmd CommandsInfoCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewXMessageSliceCmdResult returns a XMessageSliceCmd initialised with val and err for testing.
|
|
func NewXMessageSliceCmdResult(val []XMessage, err error) *XMessageSliceCmd {
|
|
var cmd XMessageSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewXStreamSliceCmdResult returns a XStreamSliceCmd initialised with val and err for testing.
|
|
func NewXStreamSliceCmdResult(val []XStream, err error) *XStreamSliceCmd {
|
|
var cmd XStreamSliceCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|
|
|
|
// NewXPendingResult returns a XPendingCmd initialised with val and err for testing.
|
|
func NewXPendingResult(val *XPending, err error) *XPendingCmd {
|
|
var cmd XPendingCmd
|
|
cmd.val = val
|
|
cmd.SetErr(err)
|
|
return &cmd
|
|
}
|