LiteX.Cache.Memcached
2.1.0
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 LiteX.Cache.Memcached --version 2.1.0
NuGet\Install-Package LiteX.Cache.Memcached -Version 2.1.0
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="LiteX.Cache.Memcached" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LiteX.Cache.Memcached --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LiteX.Cache.Memcached, 2.1.0"
#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 LiteX.Cache.Memcached as a Cake Addin #addin nuget:?package=LiteX.Cache.Memcached&version=2.1.0 // Install LiteX.Cache.Memcached as a Cake Tool #tool nuget:?package=LiteX.Cache.Memcached&version=2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LiteX Memcached Cache
LiteX.Cache.Memcached is a Memcached caching lib which is based on LiteX.Cache.Core and Memcached.
How to use ?
Install Nuget packages
Run the nuget command for installing the client as,
Install-Package LiteX.Cache.Core
Install-Package LiteX.Cache.Memcached
Configuration
AppSettings
{
"RedisConfig": {
"RedisCachingConnectionString": "127.0.0.1:6379,ssl=False",
"PersistDataProtectionKeysToRedis": false
}
}
Startup Configuration
public class Startup
{
public IConfiguration configuration { get; }
public Startup(IConfiguration configuration)
{
this.configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// 1. Use default configuration from appsettings.json's 'MemcachedConfig'
services.AddLiteXMemcachedCache();
//OR
// 2. Load configuration settings using options.
services.AddLiteXMemcachedCache(option =>
{
});
//OR
// 3. Load configuration settings on your own.
// (e.g. appsettings, database, hardcoded)
var memcachedConfig = new MemcachedConfig();
services.AddLiteXMemcachedCache(memcachedConfig);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseLiteXMemcachedCache();
}
}
Use in Controller or Business layer
The following code show how to use EasyCachingProvider in ASP.NET Core Web API.
public class CustomerController : Controller
{
#region Fields
private readonly ILiteXCacheManager _cacheManager;
#endregion
#region Ctor
/// <summary>
/// Ctor
/// </summary>
/// <param name="cacheManager"></param>
public CustomerController(ILiteXCacheManager cacheManager)
{
_cacheManager = cacheManager;
}
#endregion
#region Methods
/// <summary>
/// Get a cached item. If it's not in the cache yet, then load and cache it
/// </summary>
/// <returns></returns>
public IActionResult CacheCustomers()
{
IList<Customer> customers;
//cacheable key
var key = "customers";
customers = _cacheManager.Get(key, () =>
{
var result = new List<Customer>();
result = GetCustomers().ToList();
return result;
});
return Ok(customers);
}
/// <summary>
/// Get a cached item. If it's not in the cache yet, then load and cache it
/// </summary>
/// <param name="cacheTime">Cache time in minutes (0 - do not cache)</param>
/// <returns></returns>
public IActionResult CacheCustomers(int cacheTime)
{
IList<Customer> customers;
//cacheable key
var cacheKey = "customers";
customers = _cacheManager.Get(cacheKey, cacheTime, () =>
{
var result = new List<Customer>();
result = GetCustomers().ToList();
return result;
});
return Ok(customers);
}
/// <summary>
/// Get a cached item. If it's not in the cache yet, then load and cache it manually
/// </summary>
/// <param name="customerId"></param>
/// <returns></returns>
public IActionResult CacheCustomer(int customerId)
{
Customer customer = null;
var cacheKey = $"customer-{customerId}";
customer = _cacheManager.Get<Customer>(cacheKey);
if (customer == default(Customer))
{
//no value in the cache yet
//let's load customer and cache the result
customer = GetCustomerById(customerId);
_cacheManager.Set(cacheKey, customer, 60);
}
return Ok(customer);
}
/// <summary>
/// Remove cached item(s).
/// </summary>
/// <returns></returns>
public IActionResult RemoveCachedCustomers()
{
//cacheable key
var cacheKey = "customers";
_cacheManager.Remove(cacheKey);
// OR
var cacheKeyPattern = "customers-";
// remove by pattern
_cacheManager.RemoveByPattern(cacheKeyPattern);
return Ok();
}
#endregion
#region Utilities
private IList<Customer> GetCustomers()
{
IList<Customer> customers = new List<Customer>();
customers.Add(new Customer() { Id = 1, Username = "ashish", Email = "toaashishpatel@outlook.com" });
return customers;
}
private Customer GetCustomerById(int id)
{
Customer customer = null;
customer = GetCustomers().ToList().FirstOrDefault(x => x.Id == id);
return customer;
}
#endregion
}
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
- EnyimMemcachedCore (>= 2.1.0.7)
- LiteX.Cache.Core (>= 2.0.0)
- Microsoft.Extensions.Configuration (>= 2.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection (>= 2.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.
Added basic features.
Not tested thoroughly.