* Initial commit for FIFO pool
* Change PoolType string to PoolFIFO bool
* Remove redundant type
* add PoolFIFO option to all clients
Signed-off-by: monkey92t <golang@88.com>
Co-authored-by: Kim Tae Kwon <taekwon.kim@shopee.com>
Co-authored-by: monkey92t <golang@88.com>
* Remove OpenTelemetry from the code (but leave redisotel as is) (#1782)
* Add XAutoClaim command (#1780)
* fix typo (#1788)
* xgroup/xadd/xtrim supports new options (#1787)
* support cmd option
XGROUP CREATECONSUMER
XTRIM MINID LIMIT
XADD NOMKSTREAM MINID LIMIT
Signed-off-by: monkey <golang@88.com>
* add XAddArgs.Approx doc
Signed-off-by: monkey92t <golang@88.com>
* Add Bun to readme
* Upgrade the <sorted set> series of commands (#1792)
* Upgrade the <sorted set> series of commands
Signed-off-by: monkey92t <golang@88.com>
* Cancel the Deprecated mark of ZAddNX and ZAddXX
Signed-off-by: monkey92t <golang@88.com>
* Explain the use restrictions of KeepTTL. (#1799)
Signed-off-by: monkey92t <golang@88.com>
* Adjust KeepTTL annotation.
Signed-off-by: monkey92t <golang@88.com>
* the hello command throws possible errors, It may affect the "read timeout" test result.
Signed-off-by: monkey92t <golang@88.com>
Co-authored-by: Vladimir Mihailenco <vladimir.webdev@gmail.com>
Co-authored-by: ericmillin <31105612+ericmillin@users.noreply.github.com>
Co-authored-by: heyanfu <1145291570@qq.com>
The package uses reflection to decode default types (int, string
etc.) from Redis map results (key-value pair sequences) into
struct fields where the fields are matched to Redis keys by tags.
Similar to how `encoding/json` allows custom decoders using
`UnmarshalJSON()`, the package supports decoding of arbitrary
types into struct fields by defining a `Decode(string) error`
function on types.
The field/type spec of every struct that's passed to Scan() is
cached in the package so that subsequent scans avoid iteration
and reflection of the struct's fields.
This makes the reading and writing of lastDialError from the pool
faster, as atomic.Value is much more lightweight than the mutex.
Note that using error in atomic.Value directly could cause panics,
because errors could have inconsistent types. Thus wrap them with a
simple struct.