InMemory 1.0.7
.NET Framework 4.5
Requires NuGet 2.8 or higher.
Install-Package InMemory -Version 1.0.7
dotnet add package InMemory --version 1.0.7
<PackageReference Include="InMemory" Version="1.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add InMemory --version 1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: InMemory, 1.0.7"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install InMemory as a Cake Addin
#addin nuget:?package=InMemory&version=1.0.7
// Install InMemory as a Cake Tool
#tool nuget:?package=InMemory&version=1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
InMemory Cache
A MemoryCache which tries to prevent cache miss for hot entries, by refreshing before expiration.
Auto Refreshing Cache example:
// define auto refreshing cache
var cache = new AutoRefreshingCache<string>(expireAfter: 10, refreshAfter: 8, cacheName: "shortTimeCache");
// add key/value data to cache
cache.Inject("key", "value");
// get count of expired cache by key elements
int expiredCacheCount = cache.CountExpiredElements(new[] { "key1", "key2", "key3", "key4" });
// get or update a key in cache, the update operate when occurred that cache was expired, else get old value.
var value = cache.Get("key", () => "new value");
Lifetime Cache example:
// define lifetime cache
var lifetimeCache = new AutoRefreshingCache<object>(cacheName: "lifetimeCache");
lifetimeCache.Inject("test", 123456);
int testValue = lifetimeCache.Get<int>("test");
Rate Limiter example:
// define rate limiter for decide can call a method too more or not?
var rateLimiter = new RateLimiter(maxTries: 100, inPeriod: 120, cacheName: "rateLimiterCache");
bool canProc = rateLimiter.CanProceed("method name or a key");
Request Limiter by IP Filter example:
// use rate limiter in Web API or MVC Controller to limit request count for all actions by IP filtering
[RequestLimiterByIpFilter] // default: maxTries: 2000, inPeriod: 3600, filterName: nameof(RequestLimiterByIpFilterAttribute)
[RequestLimiterByIpFilter(maxTries: 100, inPeriod: 120, filterName: nameof(TestController))] // customized
public class TestController : Controller
{
public IActionResult GetTest()
{
// ...
}
.
.
.
}
Product | Versions |
---|---|
.NET Framework | net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.5
- Microsoft.AspNet.WebApi.Core (>= 5.2.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
* Add lifetime cache feature