using LY.App.Extensions.DI; using StackExchange.Redis; using System.Text.Json; namespace LY.App.Common.Redis { /// /// redis 连接服务 /// public class RedisService { private readonly IDatabase _db; /// /// 构造函数 /// /// public RedisService(string connectionString) { var redis = ConnectionMultiplexer.Connect(connectionString); _db = redis.GetDatabase(); } /// /// 泛型存储数据到 Redis /// public async Task SetAsync(string key, T value, TimeSpan? expiry = null) { string jsonData = JsonSerializer.Serialize(value); return await _db.StringSetAsync(key, jsonData, expiry); } /// /// 泛型获取数据 /// public async Task GetAsync(string key) { string jsonData = await _db.StringGetAsync(key); return jsonData is not null ? JsonSerializer.Deserialize(jsonData) : default; } /// /// 删除 Key /// public async Task DeleteAsync(string key) { return await _db.KeyDeleteAsync(key); } /// /// 检查 Key 是否存在 /// public async Task ExistsAsync(string key) { return await _db.KeyExistsAsync(key); } } }