MemoryCacheManager 1.0.3
dotnet add package MemoryCacheManager --version 1.0.3
NuGet\Install-Package MemoryCacheManager -Version 1.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MemoryCacheManager" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MemoryCacheManager --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MemoryCacheManager, 1.0.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MemoryCacheManager as a Cake Addin #addin nuget:?package=MemoryCacheManager&version=1.0.3 // Install MemoryCacheManager as a Cake Tool #tool nuget:?package=MemoryCacheManager&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MemoryCacheManager
<b>Memory Cache Manager</b> is a multi-thread safe caching mechanims
Nuget package
There is a nuget package avaliable here https://www.nuget.org/packages/MemoryCacheManager/.
Examples
Add and Get simple cache
const string cacheKey = "MyCache";
const int value = 123;
// Add the cache
Cache.AddCache(cacheKey, value);
// Get the cache
var cacheExists = Cache.TryGetCache(cacheKey, out int cachedValue);
// cacheValue: 123
Add and Get cache with parameters
const string cacheKey = "UserId";
const user1 = 'user1';
const user1Id = 1;
const user2 = 'user2';
const user2Id = 2;
// Add the cache
Cache.AddCache(cacheKey, user1Id, user1);
Cache.AddCache(cacheKey, user2Id, user2);
// Get the cache
Cache.TryGetCache(cacheKey, out int userId1Cached, user1);
Cache.TryGetCache(cacheKey, out int userId2Cached, user2);
// userId1Cached: 1
// userId2Cached: 2
Add and Get cache with expiration time
const string cacheKey = "MyCache";
const int value = 123;
var expirationTime = new TimeSpan(0, 10, 0); // Keep the cache per 10 minutes
// Add the cache
Cache.AddCacheExpirationTime(cacheKey, value, expirationTime);
// Get the cache
Cache.TryGetCache(cacheKey, out int cachedValue);
// cacheValue: 123
Runner method
In this case, Memory cache will try to find a cache value, if there is no cache by user name, it will process the block.
public int GetUserId(string userName)
{
return Cache.GetCacheOrRunAndCacheWithExpirationTime("UserCache", new TimeSpan(0, 1, 0), () =>
{
// This block will run only if there is no cached value
var userId = new Random().Next();
return userId;
}, userName);
}
Async
public async Task<int> GetUserId(string userName)
{
return Cache.GetCacheOrRunAndCacheWithExpirationTimeAsync("UserCache", new TimeSpan(0, 1, 0), async () =>
{
// This block will run only if there is no cached value
// Use any async function ....
var userId = new Random().Next();
return userId;
}, userName);
}
License
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.