Пример #1
0
        /// <inheritdoc/>
        public void Set(Dictionary<CacheItemDefinition, byte[]> objects)
        {
            RedisValue[] values;
            RedisKey[] keys;
            GetMultipleSetValues(objects, out keys, out values);

            foreach (var key in keys)
            {
                GetRetryPolicy().Execute(() => GetDatabase().Publish(_setKeyChannel, (string)key));
            }

            GetRetryPolicy().Execute<RedisResult>(() => GetDatabase().ScriptEvaluate(LuaScripts.GetMultipleSetScript(),
                                                                                     keys: keys,
                                                                                     values: values));
        }
Пример #2
0
        /// <inheritdoc/>
        public async Task SetAsync(Dictionary<CacheItemDefinition, byte[]> objects)
        {
            RedisValue[] values;
            RedisKey[] keys;
            GetMultipleSetValues(objects, out keys, out values);

            foreach (var key in keys)
            {
                await GetRetryPolicyAsync().ExecuteAsync(() => GetDatabase().PublishAsync(_setKeyChannel, (string)key)).ConfigureAwait(false);
            }

            await GetRetryPolicyAsync().ExecuteAsync<RedisResult>(() => GetDatabase().ScriptEvaluateAsync(LuaScripts.GetMultipleSetScript(),
                                                                                                          keys: keys,
                                                                                                          values: values)).ConfigureAwait(false);
        }