All Versions
10
Latest Version
Avg Release Cycle
93 days
Latest Release
1939 days ago

Changelog History

  • v1.2.0 Changes

    December 06, 2018

    ๐Ÿš€ This will most likely be the last 1.x release of CacheManager. Version 2.0 will get more changes and maybe breaking changes and simplifications.

    ๐Ÿš€ Because of building 2.0 is taking longer, I decided to re-release the 1.1.2 bits with .NET Standard 2.0 support and the StackExchange.Redis client upgrade to 2.x,.
    Apart from that, the code is exactly the same as in Version 1.1.2!

    ๐Ÿ”„ Changes

    • ๐Ÿ‘€ Basic .NET Standard 2.0 support, without code changes to port some features to .NET Standard (see #221)
    • โฌ†๏ธ StackExchange.Redis client upgrade to 2.x (see #251)
  • v1.1.2 Changes

    November 18, 2017

    ๐Ÿ”– Version 1.1.2

    ๐Ÿš€ This release contains some bug fixes and minor improvements.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Update StackExchange.Redis minimum version to 1.2.6 because of some bugfixes in that library - #179
    • ๐Ÿ›  Fixed an issue where using Default expiration mode didn't allow TimeSpan.Zero - #192
    • ๐Ÿ›  Fixed a compatibility issue with keys in Redis created with earlier versions of CacheManager - #183
    • โœ‚ Removed sealed from BaseCacheManager - #176
    • ๐Ÿ›  Fixed a bug where the default database setting in the connection string wasn't used - #175
  • v1.1.1 Changes

    July 02, 2017

    ๐Ÿ”– Version 1.1.1

    ๐Ÿš€ This release contains some bug fixes and minor improvements.

    ๐Ÿ†• New Features

    • โž• Added some missing overloads for GetOrAdd (see #152). Thanks to @ahockersten for the PR!
    • ๐Ÿ‘Œ Improved message size and read/write speed of backplane messages (see f4846d9)

    ๐Ÿ›  Bugfixes

    • ๐Ÿ‘€ Redis OnRemove got triggered twice in some rare cases (see #168). Manual del will not trigger OnRemove anymore now
    • ๐Ÿ‘€ Race condition in dictionary cache handle (see #167)
    • ๐Ÿ‘€ Exception if no strictCompatibilityModeVersion is defined in app/web.config (see #165)
  • v1.1.0 Changes

    June 05, 2017

    ๐Ÿš€ Release 1.1.0 comes with some improvements for redis keyspace events and some love for the Couchbase based implementation.

    ๐Ÿ†• New Features

    • ๐Ÿ‘€ If configured, CacheManager can now listen on external dels in Redis and sync the instances accordingly (see #148)
    • ๐Ÿ‘€ The redis backplane can now also be used with in-memory caches only (see #111).
    • โž• Added compatibility mode setting to Redis and support for TwemProxy (see #54 and 07f1db9). Also added lua script support without pre-loading (if that is not available).

    ๐Ÿ‘Œ Improvements for Couchbase (see #154)

    • โž• Added netstandard support as the Couchbase client now supports it.
    • ๐Ÿ”ง A bunch of configuration and initialization changes. The extensions to configure Couchbase now are more flexible.

    Other Improvements

    ๐Ÿ“š The API documentation has been updated/fixed to use latest version of docfx and is published on the re-designed site http://cachemanager.michaco.net.

    ๐Ÿ› Bug Fixes

    • #159 Small sanity check for too low expiration timeouts when using Redis
  • v1.0.1 Changes

    April 20, 2017

    ๐Ÿš€ Release 1.0.1

    • ๐Ÿ‘Œ Improvements for using CacheManager in ASP.NET Core DI, new overloads for the IServiceCollection
    • ๐Ÿ›  Fixed an issue with NuGet references when CacheManager.Core was referenced implicitly only #147
    • ๐Ÿšš Extended the RemoveByHandle event to also return the removed cache value (if possible). This is not supported for Redis key-events based triggers #144

    ๐Ÿš€ Release 1.0.0

    ๐Ÿ†• New Things

    • ๐Ÿ†• New serializer(s) based on Microsoft.Bond supporting all three Bond serializers! #127
    • ๐Ÿ‘€ Eviction based events reacting on the cache vendor specific evictions see #116
      • New event on BaseCacheManager with information about which cache handle and why the event was triggered
      • With this, CacheManager now can sync the cache Up.

    Minor New Things

    • Dictionary Cache Handle now has a timer based eviction loop which should be more reliable.
    • The Memcached cache handle now finally has a working clear region function #104
    • ๐Ÿ”ง All serializers can be used via Microsoft's configuration extensions as known types (also added to the json schema)
    • ๐Ÿ”ง Memcached and Redis cache handles now can be configured to use an already initialized client. The WithxyzHandle extension methods have new overloads to pass in the existing client. #118

    ๐Ÿ› Bug Fixes

    • #134 Serialization had some issues in some cases with loading the correct Types
    • #136 when working with absolute expiration, there were some odds when renewing the expiration date
    • ๐Ÿ‘€ Memcached handle had a bug in version 0.9.3 when configured via xml configuration section, see #118

    ๐Ÿ’ฅ Breaking Changes

    • โšก๏ธ UpdateMode Full has been removed
    • ๐Ÿ“ฆ Minimum netstandard has been increased to 1.2 from 1.1 for the Core package

    ๐Ÿšš Please report any bugs on github, and feel free to ask questions on either StackOverflow with the [cachemanager] tag or on our (moved) homepage http://cachemanager.michaco.net.

  • v1.0.0 Changes

    March 19, 2017

    ๐Ÿš€ This is finally the 1.0 release.
    It has been some time but after migration the solution to the new csproj format and Visual Studio 2017, it was about time ;)

    ๐Ÿ‘ Thanks everyone for supporting this library and sending in either feature requests, questions or bug reports!

    ๐Ÿ†• New Things

    • ๐Ÿ†• New serializer(s) based on Microsoft.Bond supporting all three Bond serializers! #127
    • ๐Ÿ‘€ Eviction based events reacting on the cache vendor specific evictions see #116
      • New event on BaseCacheManager with information about which cache handle and why the event was triggered
      • With this, CacheManager now can sync the cache Up.

    Minor New Things

    • Dictionary Cache Handle now has a timer based eviction loop which should be more reliable.
    • The Memcached cache handle now finally has a working clear region function #104
    • ๐Ÿ”ง All serializers can be used via Microsoft's configuration extensions as known types (also added to the json schema)
    • ๐Ÿ”ง Memcached and Redis cache handles now can be configured to use an already initialized client. The WithxyzHandle extension methods have new overloads to pass in the existing client. #118

    ๐Ÿ› Bug Fixes

    • #134 Serialization had some issues in some cases with loading the correct Types
    • #136 when working with absolute expiration, there were some odds when renewing the expiration date
    • ๐Ÿ‘€ Memcached handle had a bug in version 0.9.3 when configured via xml configuration section, see #118

    ๐Ÿ’ฅ Breaking Changes

    • โšก๏ธ UpdateMode Full has been removed
    • ๐Ÿ“ฆ Minimum netstandard has been increased to 1.2 from 1.1 for the Core package

    ๐Ÿšš Please report any bugs on github, and feel free to ask questions on either StackOverflow with the [cachemanager] tag or on our (moved) homepage http://cachemanager.michaco.net.

  • v0.9.3 Changes

    February 03, 2017

    ๐Ÿš€ This release has some new features and fixes.

    ๐Ÿ†• New Features

    • ๐Ÿ‘ Exists method to check if the key exists without actually retrieving it (if supported by the cache vendor) #46
    • โž• Added more "knownTypes" to Microsoft.Extensions.Configuration based CacheManager configuration's json schema #125 #123
      • for the Microsoft.Extensions.Caching.MemoryCache based cache handle
      • Protobuf serializer
      • GzJson serializer
    • ๐Ÿ‘ Allow Memcached and Redis cache handles to use pre existing cache clients. The clients can now be passed into the configuration methods WithRedisConfiguration, WithMemcachedHandle. #118

    Other Changes

    • Instead of CacheManagerConfiguration now ICacheManagerConfiguration will be used everywhere (more injection friendly)
    • ๐Ÿ‘Œ Improved validation at configuration time in case a cache handle requires a serializer, but none is defined (only net core target as full framework falls back to binary).
    • ๐Ÿ— custom serialization logic for memcached to use our cache serializers instead of the build in binary.
    • โž• Added overload to configure binary serializer settings during configuration.

    ๐Ÿ› Bug fixes

    • โฑ Validate expiration timeout not being in the past #74
    • โšก๏ธ Changed update mechanism in the redis implementation to use a version field #109
    • ๐Ÿ›  Fixed a bug where the mechanic in CacheManager which adds a key/value to other cache handles does not correctly apply expiration settings based on the cache handle configuration when it comes from Redis.
    • other minor things

    Please report any bugs or issues you find on github

  • v0.9.2 Changes

    December 01, 2016

    ๐Ÿ‘€ see https://github.com/MichaCo/CacheManager/milestone/7?closed=1

    ๐Ÿ”„ Changes:

    • Rework of the event handling in CacheManager. Events are now more reliable and are now also getting triggered in multi instance scenarios using the backplane feature. Also, introduced an Origin property on the EventArgs which indicates where the event got triggered
    • โšก๏ธ GetOrAdd and Update/TryUpdate were throwing exceptions a little inconsistently. Introduced a new TryGetOrAdd method

    ๐Ÿ›  Bugfixes:

    • Setting expiration mode to None for an individual cache item not working in some cases
    • Serializer settings are not getting applied correctly
    • ๐Ÿ”ง Redis configuration via config file doesn't respect database if connection string is used
  • v0.9.1 Changes

    September 23, 2016
    • ๐ŸŽ Protobuf serialization performance optimizations
    • ๐Ÿ›  Bugfix in redis value converter to support different corelib type versions
    • ๐Ÿ“ฆ XML doc files now included in all nuget packages
    • ๐Ÿ“ฆ all packages are now signed #87
  • v0.9.0 Changes

    August 21, 2016

    ๐Ÿ— The solution has been migrated to .NET Core 1.0 and build with the latest dotnet-cli.
    ๐Ÿ’ฅ Breaking Changes

    • none

    ๐Ÿ†• New Features

    • ๐Ÿ†• New CacheHandle using Microsoft.Extensions.Caching.Memory (thanks to @AuroraDysis!)
    • ๐Ÿ“ฆ Protobuf-net based serialization package added (thanks to @wenisman!)
    • Json Serializer got a GZip variant (thanks to @fgideali!)
    • ๐Ÿ†• New GetOrAdd method in the main interface

    ๐Ÿ›  Bugfixes

    • #50 expiration setting issue in some scenarios
    • ๐Ÿ‘ #51 Couchbase JArray support/fix (thanks to @Kriskit!)
    • #57 expiration precision issue
    • #60 some doc spelling mistakes (thanks to @michael-baker!)
    • #64 clear region issue with redis
    • ๐Ÿ‘ #62 GetCasted improvement to support interfaces