コード例 #1
0
 public Task RemoveAsync(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     _cache.Remove(entry.Key);
     return(Task.CompletedTask);
 }
コード例 #2
0
 public Task <T> GetAsync <T>(CacheOptionEntry entry, Func <Task <T> > func)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     Check.NotNull(func, nameof(func));
     return(_cache.GetOrCreateAsync <T>(entry, func));
 }
コード例 #3
0
 public Task SetAsync <T>(CacheOptionEntry entry, T data)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     _cache.Set(entry.Key, data, entry.ConvertToMemoryCacheEntryOptions());
     return(Task.CompletedTask);
 }
コード例 #4
0
        public async Task <bool> ExistsAsync(CacheScheme scheme, CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
            var store = AssignStore(scheme);

            return(store == null ? false : await store.ExistsAsync(entry));
        }
コード例 #5
0
        public bool Exists(CacheScheme scheme, CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
            var store = AssignStore(scheme);

            return(store == null ? false : store.Exists(entry));
        }
コード例 #6
0
        public async Task SetAsync <T>(CacheScheme scheme, CacheOptionEntry entry, T data)
        {
            var store = AssignStore(scheme);

            if (store != null)
            {
                await store.SetAsync <T>(entry, data);
            }
        }
コード例 #7
0
ファイル: MutilCacheStore.cs プロジェクト: JolyneStone/Rye
        public async Task <bool> ExistsAsync(CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));

            var exist = _memoryStore.Exists(entry.Key);

            return(exist ? exist : await _redisStore.ExistsAsync(entry.Key));
        }
コード例 #8
0
ファイル: MutilCacheStore.cs プロジェクト: JolyneStone/Rye
        public bool Exists(CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));

            var exist = _memoryStore.Exists(entry.Key);

            return(exist ? exist : _redisStore.Exists(entry.Key));
        }
コード例 #9
0
        public void Set <T>(CacheScheme scheme, CacheOptionEntry entry, T data)
        {
            var store = AssignStore(scheme);

            if (store != null)
            {
                store.Set <T>(entry, data);
            }
        }
コード例 #10
0
        public async Task RemoveAsync(CacheScheme scheme, CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
            var store = AssignStore(scheme);

            if (store != null)
            {
                await store.RemoveAsync(entry);
            }
        }
コード例 #11
0
        public void Remove(CacheScheme scheme, CacheOptionEntry entry)
        {
            Check.NotNull(entry, nameof(entry));
            Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
            var store = AssignStore(scheme);

            if (store != null)
            {
                store.Remove(entry);
            }
        }
コード例 #12
0
ファイル: MutilCacheStore.cs プロジェクト: JolyneStone/Rye
        /// <summary>
        /// 更新一级缓存,并通知其他客户端清理过期缓存
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entry"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        protected async Task UpdateAndPublishAsync <T>(CacheOptionEntry entry, T data)
        {
            if (entry == null && Equals(data, default(T)))
            {
                return;
            }

            _memoryStore.Set(entry, data);
            await _redisStore.Client.PublishAsync(TOPIC_NAME, new CacheMessage
            {
                ServiceId = SERVICE_ID,
                Keys      = new string[] { entry.Key }
            }.ToJsonString());
        }
コード例 #13
0
ファイル: MutilCacheStore.cs プロジェクト: JolyneStone/Rye
        /// <summary>
        /// 删除一级缓存,并通知其他客户端清理过期缓存
        /// </summary>
        /// <param name="entry"></param>
        /// <returns></returns>
        protected async Task RemoveAndPublishAsync(CacheOptionEntry entry)
        {
            if (entry == null)
            {
                return;
            }

            _memoryStore.Remove(entry);
            await _redisStore.Client.PublishAsync(TOPIC_NAME, new CacheMessage
            {
                ServiceId = SERVICE_ID,
                Keys      = new string[] { entry.Key }
            }.ToJsonString());
        }
コード例 #14
0
 public T Get <T>(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     return(_cache.Get <T>(entry.Key));
 }
コード例 #15
0
 public void Set <T>(CacheOptionEntry entry, T data)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     _cache.Set(entry.Key, data, entry.ConvertToMemoryCacheEntryOptions());
 }
コード例 #16
0
        public T Get <T>(CacheScheme scheme, CacheOptionEntry entry)
        {
            var store = AssignStore(scheme);

            return(store == null ? default : store.Get <T>(entry));
        }
コード例 #17
0
 public bool Exists(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     return(_cache.TryGetValue(entry.Key, out object _));
 }
コード例 #18
0
 public Task <bool> ExistsAsync(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     return(Task.FromResult(_cache.TryGetValue(entry.Key, out object _)));
 }
コード例 #19
0
        public T Get <T>(CacheScheme scheme, CacheOptionEntry entry, Func <T> func)
        {
            var store = AssignStore(scheme);

            return(store == null?func(): store.Get <T>(entry, func));
        }
コード例 #20
0
 public void Remove(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     _cache.Remove(entry.Key);
 }
コード例 #21
0
        public async Task <T> GetAsync <T>(CacheScheme scheme, CacheOptionEntry entry)
        {
            var store = AssignStore(scheme);

            return(store == null ? default : await store.GetAsync <T>(entry));
        }
コード例 #22
0
 public Task <T> GetAsync <T>(CacheOptionEntry entry)
 {
     Check.NotNull(entry, nameof(entry));
     Check.NotNullOrEmpty(entry.Key, nameof(entry.Key));
     return(Task.FromResult(_cache.Get <T>(entry.Key)));
 }
コード例 #23
0
        public async Task <T> GetAsync <T>(CacheScheme scheme, CacheOptionEntry entry, Func <T> func)
        {
            var store = AssignStore(scheme);

            return(store == null?func(): await store.GetAsync <T>(entry, func));
        }