1.1.2

@MichaCo MichaCo released this Nov 18, 2017 · 15 commits to dev since this release

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

1.1.1

@MichaCo MichaCo released this Jul 2, 2017 · 9 commits to master since this release

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)

1.1.0

@MichaCo MichaCo released this Jun 5, 2017 · 24 commits to master since this release

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

1.0.1

@MichaCo MichaCo released this Apr 20, 2017 · 56 commits to dev since this release

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.

1.0.0 Nuget Release

@MichaCo MichaCo released this Mar 19, 2017 · 69 commits to dev since this release

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.

0.9.3 Nuget Release

@MichaCo MichaCo released this Feb 3, 2017 · 110 commits to master since this release

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

0.9.2 Nuget Release

@MichaCo MichaCo released this Dec 1, 2016 · 158 commits to dev since this release

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

0.9.1 Nuget Release

@MichaCo MichaCo released this Sep 23, 2016 · 164 commits to master since this release

  • 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

0.9.0 Nuget Release

@MichaCo MichaCo released this Aug 21, 2016 · 176 commits to master since this release

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

0.8.0 Nuget Release

@MichaCo MichaCo released this Feb 28, 2016 · 218 commits to master since this release

Breaking Changes

  • CacheBackPlate got renamed to CacheBackplane. This affects all related implementations, documentation and configuration elements. #44

New features and updates

  • Added feature check for Redis cache handle, now supporting older versions of Redis server #42
  • CacheBackplane now works with events
  • CacheBackplane performance has been improved significantly #39
  • Documentation for Serialization added #40
  • API reference documentation: Replaced the old one with new, custom, based on docfx #40
  • Added periodical expire check to dictionary cache handle bf76178