DistributedMemm.Lib
1.0.1
dotnet add package DistributedMemm.Lib --version 1.0.1
NuGet\Install-Package DistributedMemm.Lib -Version 1.0.1
<PackageReference Include="DistributedMemm.Lib" Version="1.0.1" />
<PackageVersion Include="DistributedMemm.Lib" Version="1.0.1" />
<PackageReference Include="DistributedMemm.Lib" />
paket add DistributedMemm.Lib --version 1.0.1
#r "nuget: DistributedMemm.Lib, 1.0.1"
#:package DistributedMemm.Lib@1.0.1
#addin nuget:?package=DistributedMemm.Lib&version=1.0.1
#tool nuget:?package=DistributedMemm.Lib&version=1.0.1
DistributedMemm: Distributed Memory Caching using RabbitMQ
Introduction
DistributedMemm is a C# library designed to provide distributed memory caching capabilities for .NET applications. By leveraging the power of RabbitMQ, this library ensures seamless data synchronization between multiple applications. In the event of cache data loss, DistributedMemm provides data recovery features using MongoDB.
Features
- Distributed Caching: Extend the benefits of in-memory caching across multiple applications or instances.
- Data Synchronization: Using RabbitMQ, DistributedMemm ensures that data changes are broadcast and synchronized across all connected applications.
- Idempotency: Ensures that operations are processed once and only once, preventing duplicate data and actions.
- Data Recovery: With the backup mechanism in MongoDB, applications can restore their memory cache on startup, ensuring minimal downtime and data loss.
- Integrated API: An additional API that consumes RabbitMQ events to maintain and update MongoDB backup data.
Prerequisites
- .NET Core or .NET 6+
- RabbitMQ Server
- MongoDB (if persist option enabled)
Installation
[Provide steps or code snippets to install and set up the library in a project]
Quick Start
Configuration: Set up your RabbitMQ and MongoDB configurations.
var config = new DistriCacheConfig { RabbitMQConnectionString = "YOUR_RABBITMQ_CONNECTION_STRING", MongoDBConnectionString = "YOUR_MONGODB_CONNECTION_STRING" };Initialize DistributedMemm:
private readonly IDistributedMemm _distributedMemm; public TestService(IDistributedMemm distributedMemm) { _distributedMemm = distributedMemm; }Usage:
_distributedMemm.Add("key", "value"); _distributedMemm.Add("key", new { Name = "jhon", SurName = "doe" }); var value = _distributedMemm.Get("key");
Data Recovery
In case application restarts our library will try to restore data by calling reserve api.
Contributing
We welcome contributions! Please see our CONTRIBUTING.md for details.
License
This project is licensed under [LICENSE NAME]. See the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Configuration (>= 7.0.0)
- Microsoft.Extensions.Hosting (>= 7.0.1)
- RabbitMQ.Client (>= 6.4.0)
- RestEase (>= 1.6.4)
- RestEase.HttpClientFactory (>= 1.6.4)
- Serilog.Sinks.Console (>= 4.1.0)
- Serilog.Sinks.File (>= 5.0.0)
- System.Text.Json (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.