Releases: redis/rueidis
1.0.52
Changes
- feat: add
ModuleLoadex
,SlaveOf
,ClusterMyShardID
torueidiscompat
(#708) - feat: add
BitFieldRO
,HScanNoValues
, andClientInfo
torueidiscompat
(#707) - feat: add
CacheMarshal
andCacheUnmarshalView
for third party cache libraries (#693) - feat: add
ReplicaSelector
for selecting which replica to send commands (#692) - feat: retry
DoCache
andDoMultiCache
onMOVED
/ASK
redirections (#701) (#704) - feat: retry single slot
DoMulti
onMOVED
/ASK
redirections (#697) (#709) - perf: reduce goroutines used by
DoMulti
andDoMultiCache
in a cluster client (#699) - fix: hide InitAddress from
client.Nodes()
if they doesn't show up in the cluster topology (#687) - fix: immature recycling of the intermediate structs when doing cluster
DoMulti
on network errors (#706) - fix: panic on cluster redirection to a node with a stale role (#695)
- fix: protocol out of sync when mixing
sunsubscribe
requests and slot migrations (#691) - fix: avoid picking unhealthy replicas (#689)
Contributors
We'd like to thank all the contributors who worked on this release!
@proost, @rueian, @unknowntpo and @wyxloading
1.0.51
Changes
- feat: add RateLimitOption to
rueidislimiter
(#681) - feat: allow setting negative values to disable keepalive and write timeout (#682)
- feat: add options for removing idle connections in connection pools (#674)
Contributors
We'd like to thank all the contributors who worked on this release!
@altanozlu, @rueian and @veirfuna
1.0.50
Changes
- feat: add
FtSearch
and related functions torueidiscompat
(#676) - feat: add
rueidislimiter
module for Distributed Rate Limiting (#661) - fix: convert
os.ErrDeadlineExceeded
tocontext.DeadlineExceeded
only whenConnWriteTimeout
is shorter (#672) - fix: register client tracking again after receiving invalidations in
rueidislock
(#669) - fix: close connections that are still blocked while recycling them to pools, instead of waiting for unsubscribe command responses (#667)
- fix: do not cap timeouts when context has a deadline on a blocking call (#666)
- chore: use
dpool
for blocking commands to be able to respect context deadlines (#668)
Contributors
We'd like to thank all the contributors who worked on this release!
@nesty92, @rueian, @unknowntpo and @zeiler
1.0.49
Fixes for refreshing cluster topology
We strongly encourage everyone to upgrade to version 1.0.49 to address the issues related to refreshing the cluster topology.
Changes
- fix: refresh the cluster topology by using the old
CLUSTER SLOTS
instead ofCLUSTER SHARDS
for clusters with version less than 8. This is due to a server bug that returns empty slot information after the first failover. (#664) - fix: do not pick failed cluster nodes from the
CLUSTER SHARDS
response. (#660) - fix: do not block
client.Do
for 1 second of refreshing threshold in the cases of network error. (#659) - feat: auto retries on
LOADING
errors. (#657) - feat: support multiple options in
FT.ALTER
. (#655) - feat: add
FT.ALTER
in OM JSON and Hash repo. (#645) - feat: support Go 1.23 iterators for the
ZADD
command. (#652)
Contributors
We'd like to thank all the contributors who worked on this release!
@imvtsl, @justinmir, @mingdaoy, @nesty92 and @rueian
1.0.48
Changes
- feat: add
DisableTCPNoDelay
option for better p99 latencies in certain network conditions such as GCP without gVNIC. (#650) - feat: add
DisableAutoPipelining
option to serve requests from connection pools for better latencies by avoiding pipelining overhead and HoL blocking. (#646) - feat: Retries are now back-offed and jittered with a 1-second cap by default. This can be customized by the
RetryDelay
option. (#643)
Contributors
We'd like to thank all the contributors who worked on this release!
1.0.47
1.0.46
Changes
- perf: use dedicated connections for
DoMulti()
with 2000+ commands by default (#631) - feat: add
SCRIPT SHOW
,CLIENT CAPA
, andCLUSTER SLOT-STATS
commands (#628) - feat: add option to disable making
CLIENT SETINFO
command on initialization (#622) - feat: support iter.Seq2 for
*FieldValue
command builders (#625) - fix: panic on
rueidiscompat.SSubscribe
due to unnecessaryPING
(#636)
Contributors
We'd like to thank all the contributors who worked on this release!
@rahulgkatre, @rueian and @tamayika
1.0.45
Changes
- feat: drop Go 1.20 support. Now the minimum requirement is Go 1.21. (#613)
- feat: add HExpire, HPExpire, HTTL, and HPTTL methods to
rueidiscompat
. (#618) - feat: improve
rueidislock
error messages to contain why a lock can't be acquired. (#616) - feat: upgrade OpenTelemetry to v1.28.0.
Improvements
- perf: clear containers before calling the
Put
ofsync.Pool
to reclaim memory faster. (#613) - perf: reduce OpenTelemetry allocations in
rueidisotel
(#614)
Bugs
- fix: add timeouts when refreshing cluster slots to avoid being stuck. (#615)
- fix: avoid panics when using
rueidiscompat.Pipeliner
with commands likeBGSAVE
. - fix: export fields of
rueidiscompat.TSCreateRuleWithArgs
correctly.
Contributors
We'd like to thank all the contributors who worked on this release!
1.0.44
Changes
- feat: add
NewScript
torueidiscompat
(#601) - feat: add
Watch
,Tx
andTxPipeline
torueidiscompat
(#605) - feat: add
Pipeline
torueidiscompat
(#599) - feat: add
WithEnableReadOperation
torueidisprob
(#598) - fix: remove busy retries if
rueidislock.WithContext
is waiting for the lock (#604) - fix: avoid
too many results to unpack script
inrueidisprob
(#595)
Contributors
We'd like to thank all the contributors who worked on this release!
1.0.43
Changes
Contributors
We'd like to thank all the contributors who worked on this release!