public virtual async Task <bool> ExistsWithRedisAsync(string id) { RedisHitStatistics?.AddTotal(); var exists = RedisClient.HashFieldExists(RedisKey, id, SerializeType) > 0; if (!exists) { exists = await ExistsAsync(id); } else { RedisHitStatistics?.AddHit(); } return(exists); }
public override async Task <IEnumerable <SysAreaDto> > GetAllAsync() { RedisHitStatistics?.AddTotal(); var list = RedisClient.HashGetAll <SysAreaDto>(RedisKey, SerializeType).Select(e => e.Value as SysAreaDto); if (list.Any()) { RedisHitStatistics?.AddHit(); } else { list = await base.GetAllAsync(); } return(list); }
public virtual async Task <long> CountWidthRedisAsync() { RedisHitStatistics?.AddTotal(); var list = RedisClient.HashGetAll <TDto>(RedisKey, DataType.Protobuf).Select(e => e.Value as TDto); if (!list.Any()) { list = await GetAllAsync(); list.AsParallel().ToList().ForEach(e => RedisClient.HashSetFieldValue(RedisKey, e.Serialnum, e, SerializeType)); } else { RedisHitStatistics?.AddHit(); } return(list.Count()); }
public virtual async Task <TDto> GetByIdWithRedisAsync(string id) { if (id.IsNullOrWhiteSpace()) { return(null); } RedisHitStatistics?.AddTotal(); var model = RedisClient.HashGet <TDto>(RedisKey, id, SerializeType); if (model == null) { model = await GetByIdAsync(id); RedisClient.HashSetFieldValue(RedisKey, id, model, SerializeType); } else { RedisHitStatistics?.AddHit(); } return(model); }