Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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());
        }
Beispiel #4
0
        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);
        }