Skip to content

Releases: bezzad/HybridRedisCache

v6.0.0

Choose a tag to compare

@bezzad bezzad released this 18 Jul 13:17

Highlights

Breaking

  • Upgraded to StackExchange.Redis 3.x. Consumers must also move to 3.x.
  • HybridCachingOptions.ThreadPoolSocketManagerEnable is obsolete and ignored: StackExchange.Redis 3.x removed SocketManager and always schedules socket work itself.
  • Async APIs gained a trailing optional CancellationToken parameter (source compatible, binary breaking).

Fixed

  • SetAll/SetAllAsync wrote the whole dictionary into the local cache under every key instead of that key's own value. With RedisCacheEnable=false this lost the data outright; otherwise it bloated memory and made every local read miss.
  • Startup no longer fails when the server rejects CONFIG SET notify-keyspace-events (Azure Cache for Redis, AWS ElastiCache and other managed/compatible servers). The error is logged and startup continues.
  • Reconnect no longer spins the CPU in a tight loop while Redis is unreachable.
  • RemoveWithPatternAsync logged a removed-key count that was always 0.
  • ExistsAsync's interface default flag (None) disagreed with the implementation (PreferMaster).

CI / tooling

  • New one-shot release routine (scripts/release.sh) and tag-triggered release workflow publishing to nuget.org via Trusted Publishing (OIDC, no stored API key).
  • Test coverage is now uploaded to Codecov.

Full Changelog: v5.2.0...v6.0.0

version 5.2.0

Choose a tag to compare

@bezzad bezzad released this 30 Dec 13:35
  • fix: retrieve cached value only from dataRetriever and set it in the local cache, excluding Redis
  • refactor: improved code structure and readability

version 5.1.0

Choose a tag to compare

@bezzad bezzad released this 07 Dec 12:12
  • feat: add multiple overloads for ScriptEvaluateAsync to enhance Lua script execution flexibility
  • Note: All 5.x.x versions does not used string serialization; all values are converted to bytes and read as binary.

version 5.0.2

Choose a tag to compare

@bezzad bezzad released this 04 Nov 06:51
  • Introduced a serializer interface to allow custom binary serializers.
  • Added MessagePack serializer option.
  • Added MemoryPack serializer option.
  • Added BSON option as the default serializer.
  • Added JsonSerializerSettings to configure Newtonsoft.Json serialization.
  • Fixed various bugs and issues.
  • Note: This version does not use string serialization; all values are converted to bytes and read as binary.

version 5.0.1

Choose a tag to compare

@bezzad bezzad released this 25 Oct 06:51
  • Introduced a serializer interface to allow custom binary serializers.
  • Added MessagePack serializer option.
  • Added MemoryPack serializer option.
  • Added BSON option as the default serializer.
  • Fixed various bugs and issues.

Note: This version does not use string serialization; all values are converted to bytes and read as binary.

version 4.0.0

Choose a tag to compare

@bezzad bezzad released this 13 Oct 12:48
  • Add support for flags in the Publish and PublishAsync methods, with FireAndForget as the default value.
  • Add important Hash functions: HashSet, HashGet, HashGetAll, HashDelete, HashExists, HashIncrement, and HashDecrement.
  • Updated the KeysAsync method to return pure key names instead of full keys with the instance prefix.
  • Replaced the Redis ExpireWhen enum with a new ExpireCondition enum for better encapsulation.
  • Corrected the KeyExpire and KeyExpireAsync methods to use the appropriate ExpireCondition enum.
  • Exposed the IDatabase RedisDb property for direct access by end users.
  • Resolved various bugs and issues.

version 3.9.0

Choose a tag to compare

@bezzad bezzad released this 05 Oct 07:29
  • Fetch data safety from dataRetriever task in GetAsync method
  • Fix LockKeyAsync method to wait on lock and release all tasks after releasing
  • Test some functionalities
  • Fix some bugs

version 3.8.0

Choose a tag to compare

@bezzad bezzad released this 04 Oct 13:53
  • Fetch data safety from dataRetriever task in GetAsync method
  • Add KeyExpiry method to set expiration to any keys
  • Add log for heavy values
  • Add options.DataSizeHistogramMetricName histogram metric for all set key/values
  • Fix convert key in ValueIncrementAsync and ValueDecrementAsync methods
  • Test some functionalities
  • Fix some bugs

version 3.5.0

Choose a tag to compare

@bezzad bezzad released this 07 Sep 07:28
  • Add Publish method to send signal on RedisBus on current sync context

version 3.4.0

Choose a tag to compare

@bezzad bezzad released this 03 Sep 10:59
  • Removed redlock key prefix
  • Fixed some issues