using Atomx.Common.Constants; using Atomx.Common.Entities; namespace Atomx.Data.CacheServices { public partial interface ICacheService { /// /// 获取用户基本信息 /// /// /// /// Task GetUserBaseInfo(long id, bool? reload = null); /// /// 更新用户缓存 /// /// /// Task UpdateUserBaseInfo(User user); } public partial class CacheService : ICacheService { public async Task GetUserBaseInfo(long id, bool? reload = null) { var cacheData = await GetCacheAsync($"{CacheKeys.UserPrefix}{id}"); if (cacheData == null || reload.HasValue) { var data = _dbContext.Users.Where(p => p.Id == id).SingleOrDefault(); if (data != null) { cacheData = data; await SetCacheAsync($"{CacheKeys.UserPrefix}{id}", cacheData, 0.5); } } return cacheData; } public async Task UpdateUserBaseInfo(User user) { var cacheData = await GetCacheAsync($"{CacheKeys.UserPrefix}{user.Id}"); cacheData = user; await SetCacheAsync($"{CacheKeys.UserPrefix}{user.Id}", cacheData, 0.5); return cacheData; } } }