Пример #1
0
        protected virtual async Task <byte[][]> GetAndRefreshManyAsync(
            IEnumerable <string> keys,
            bool getData,
            CancellationToken token = default)
        {
            token.ThrowIfCancellationRequested();

            await ConnectAsync(token);

            var keyArray = keys.Select(key => Instance + key).ToArray();

            RedisValue[][] results;

            if (getData)
            {
                results = await RedisDatabase.HashMemberGetManyAsync(keyArray, AbsoluteExpirationKey,
                                                                     SlidingExpirationKey, DataKey);
            }
            else
            {
                results = await RedisDatabase.HashMemberGetManyAsync(keyArray, AbsoluteExpirationKey,
                                                                     SlidingExpirationKey);
            }

            await Task.WhenAll(PipelineRefreshManyAndOutData(keyArray, results, out var bytes));

            return(bytes);
        }