CodeNet.Redis
1.0.5
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package CodeNet.Redis --version 1.0.5
NuGet\Install-Package CodeNet.Redis -Version 1.0.5
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="CodeNet.Redis" Version="1.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CodeNet.Redis --version 1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CodeNet.Redis, 1.0.5"
#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 CodeNet.Redis as a Cake Addin #addin nuget:?package=CodeNet.Redis&version=1.0.5 // Install CodeNet.Redis as a Cake Tool #tool nuget:?package=CodeNet.Redis&version=1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CodeNet.Redis
CodeNet.Redis is a .Net library.
Installation
Use the package manager npm to install CodeNet.Redis.
dotnet add package CodeNet.Redis
Usage
appSettings.json
{
"Redis": {
"Hostname": "localhost",
"Port": 6379
}
}
program.cs
using CodeNet.Container.Extensions;
using CodeNet.Core.Extensions;
using CodeNet.Redis.Extensions;
using CodeNet.Redis.Module;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseNetCoreContainer(containerBuilder =>
{
//for cache
containerBuilder.AddModule<RedisDistributedCacheModule>();
//for lock
containerBuilder.AddModule<RedisDistributedLockModule>();
});
builder
.AddRedisDistributedCache("Redis")
.AddRedisDistributedLock("Redis");
//...
var app = builder.Build();
//...
app.Run();
Usage Lock
using MediatR;
using RedLockNet;
namespace ExampleApi.Handler;
public class TestRequestHandler(IDistributedLockFactory LockFactory) : IRequestHandler<TestRequest, ResponseBase<TestResponse>>
{
public async Task<ResponseBase<TestResponse>> Handle(TestRequest request, CancellationToken cancellationToken)
{
using var redLock = await LockFactory.CreateLockAsync("LOCK_KEY", TimeSpan.FromSeconds(3));
if (!redLock.IsAcquired)
throw new SynchronizationLockException();
//Process...
}
}
Or
using CodeNet.Redis.Attributes;
using MediatR;
namespace ExampleApi.Handler;
public class TestRequestHandler() : IRequestHandler<TestRequest, ResponseBase<TestResponse>>
{
[Lock(ExpiryTime = 3)]
public async Task<ResponseBase<TestResponse>> Handle(TestRequest request, CancellationToken cancellationToken)
{
//Process...
}
}
Usage Cache
using MediatR;
using Microsoft.Extensions.Caching.Distributed;
namespace ExampleApi.Handler;
public class TestRequestHandler(IDistributedLockFactory LockFactory) : IRequestHandler<TestRequest, ResponseBase<TestResponse>>
{
private const string CACHE_KEY = "KEY";
public async Task<ResponseBase<TestResponse>> Handle(TestRequest request, CancellationToken cancellationToken)
{
var cacheJsonValue = await DistributedCache.GetStringAsync(CACHE_KEY, cancellationToken);
if (string.IsNullOrEmpty(cacheJsonValue))
{
//Process...
var response = ...
await DistributedCache.SetStringAsync(CACHE_KEY, JsonConvert.SerializeObject(response), new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(60)
}, cancellationToken);
return response;
}
return JsonConvert.DeserializeObject<ResponseBase<TestResponse>>(cacheJsonValue);
}
}
Or
using CodeNet.Redis.Attributes;
using MediatR;
namespace ExampleApi.Handler;
public class TestRequestHandler() : IRequestHandler<TestRequest, ResponseBase<TestResponse>>
{
[Cache(Time = 60)]
public async Task<ResponseBase<TestResponse>> Handle(TestRequest request, CancellationToken cancellationToken)
{
//Process...
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- CodeNet.Core (>= 1.0.5)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
- RedLock.net (>= 2.3.2)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on CodeNet.Redis:
Package | Downloads |
---|---|
CodeNet.Parameters
CodeNet Parameters package. |
|
CodeNet.HealthCheck.Redis
CodeNet Health Check Redis package. |
|
CodeNet.BackgroundJob
CodeNet Core package. |
GitHub repositories
This package is not used by any popular GitHub repositories.