feat(core): UnitService - работа с кэш

This commit is contained in:
Mikhail Trubnikov
2026-05-29 17:09:36 +10:00
parent 83df669f84
commit 437f996ea8
8 changed files with 583 additions and 35 deletions

View File

@@ -82,8 +82,9 @@
/// <param name="field"></param>
/// <param name="value"></param>
/// <param name="ttl">Если указано, обновится у всего Hash. Если не указано и hash не существовал, создастся Hash с бесокнечным ttl</param>
/// <param name="useCompression">Сжимать данные</param>
/// <returns></returns>
Task SetHashFieldAsync<T>(string hashKey, string field, T value, TimeSpan? ttl = null);
Task SetHashFieldAsync<T>(string hashKey, string field, T value, TimeSpan? ttl = null, bool useCompression = false);
/// <summary>
/// Получить значение поля из Hash
@@ -92,7 +93,7 @@
/// <param name="hashKey"></param>
/// <param name="field"></param>
/// <returns></returns>
Task<T?> GetHashFieldAsync<T>(string hashKey, string field);
Task<T?> GetHashFieldAsync<T>(string hashKey, string field, bool useCompression = false);
/// <summary>
/// Получить случайную первую запись из Hash
@@ -100,7 +101,7 @@
/// <typeparam name="T"></typeparam>
/// <param name="hashKey"></param>
/// <returns></returns>
Task<(string Field, T? Value)?> GetFirstHashFieldAsync<T>(string hashKey);
Task<(string Field, T? Value)?> GetFirstHashFieldAsync<T>(string hashKey, bool useCompression = false);
/// <summary>
/// Получить все значения из Hash
@@ -108,7 +109,7 @@
/// <typeparam name="T"></typeparam>
/// <param name="hashKey"></param>
/// <returns></returns>
Task<Dictionary<string, T>> GetAllHashFieldsAsync<T>(string hashKey);
Task<Dictionary<string, T>> GetAllHashFieldsAsync<T>(string hashKey, bool useCompression = false);
/// <summary>
/// Удалить одну запись из Hash
@@ -148,6 +149,15 @@
/// <returns></returns>
Task SetHashTtlAsync(string hashKey, TimeSpan ttl);
/// <summary>
/// Получить значения нескольких полей из Hash
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="keys"></param>
/// <param name="useCompression"></param>
/// <returns></returns>
Task<List<T>> GetHashFieldsAsync<T>(List<(string HashKey, string FieldKey)> keys, bool useCompression = false);
#endregion
}
}