2022-02-21 22:35:06 +00:00
|
|
|
namespace VoidCat.Services.Abstractions;
|
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
/// <summary>
|
|
|
|
/// Basic KV cache interface
|
|
|
|
/// </summary>
|
2022-02-21 22:35:06 +00:00
|
|
|
public interface ICache
|
|
|
|
{
|
2022-06-13 10:29:16 +00:00
|
|
|
/// <summary>
|
|
|
|
/// Get a single object from cache by its key
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <typeparam name="T"></typeparam>
|
|
|
|
/// <returns></returns>
|
2022-02-21 22:35:06 +00:00
|
|
|
ValueTask<T?> Get<T>(string key);
|
2022-06-13 10:29:16 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Set the the value of a key in the cache
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <param name="value"></param>
|
|
|
|
/// <param name="expire"></param>
|
|
|
|
/// <typeparam name="T"></typeparam>
|
|
|
|
/// <returns></returns>
|
2022-02-21 22:35:06 +00:00
|
|
|
ValueTask Set<T>(string key, T value, TimeSpan? expire = null);
|
2022-06-13 10:29:16 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Delete an object from the cache
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <returns></returns>
|
2022-03-04 20:05:01 +00:00
|
|
|
ValueTask Delete(string key);
|
2022-02-21 22:35:06 +00:00
|
|
|
|
2022-06-13 10:29:16 +00:00
|
|
|
/// <summary>
|
|
|
|
/// Return a list of items at the specified key
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <returns></returns>
|
2022-02-21 22:35:06 +00:00
|
|
|
ValueTask<string[]> GetList(string key);
|
2022-06-13 10:29:16 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Add an item to the list at the specified key
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <param name="value"></param>
|
|
|
|
/// <returns></returns>
|
2022-02-21 22:35:06 +00:00
|
|
|
ValueTask AddToList(string key, string value);
|
2022-06-13 10:29:16 +00:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Remove an item from the list at a the specified key
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="key"></param>
|
|
|
|
/// <param name="value"></param>
|
|
|
|
/// <returns></returns>
|
2022-03-04 20:05:01 +00:00
|
|
|
ValueTask RemoveFromList(string key, string value);
|
2022-03-02 11:37:15 +00:00
|
|
|
|
2022-02-21 22:35:06 +00:00
|
|
|
}
|