Skip to content

Shuvo091/SharedLibraries

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

106 Commits
 
 
 
 
 
 

Repository files navigation

Shared Library

Redis Services

Provides various Redis functionalities for microservices.

Caching Functionality

The ICacheService interface provides caching operations:

public interface ICacheService
{
    Task<T?> GetAsync<T>(string key);
    Task<bool> SetAsync<T>(string key, T value, TimeSpan? expiration = null);
    Task<bool> RemoveAsync(string key);
    Task<bool> ExistsAsync(string key);
    Task<bool> SetExpirationAsync(string key, TimeSpan expiration);
    Task<TimeSpan?> GetTimeToLiveAsync(string key);
}
Queue Functionality

The IQueueService interface provides queue operations:

public interface IQueueService
{
    Task EnqueueAsync<T>(string queueName, T item);
    Task<T?> DequeueAsync<T>(string queueName);
    Task<long> GetLengthAsync(string queueName);
    Task<T?> PeekAsync<T>(string queueName);
    Task ClearAsync(string queueName);
}
Dependency Injection Setup

1. Configuration

Add Redis configuration to your appsettings.json:

{
  "Redis": {
    "ConnectionString": "localhost:6379",
    "DatabaseId": 0,
    "ConnectTimeout": 60000,
    "SyncTimeout": 60000,
    "ConnectRetry": 3,
    "ReconnectRetryPolicy": 3
  }
}

2. Service Registration

In your Program.cs or Startup.cs:

using SharedLibrary.Cache.ServiceCollectionExtensions;

// Add Redis connection
builder.Services.AddRedis(configuration);

// Add Redis cache service
builder.Services.AddRedisCache(configuration);

// Add Redis queue service
builder.Services.AddRedisQueue(configuration);
Dependencies
  • StackExchange.Redis
  • Microsoft.Extensions.DependencyInjection
  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Logging

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages