src/Library/NetPro.RedisManager/CsRedisManager.cs

(开头部分) 20KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using CSRedis;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using StackExchange.Redis;
using StackExchange.Redis.KeyspaceIsolation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace NetPro.RedisManager
{
    /// <summary>
    /// 
    /// </summary>
    internal class CsRedisManager : IRedisManager
    {
        private readonly RedisCacheOption _option;
        private readonly ConnectionMultiplexer _connection;
        private readonly IMemoryCache _memorycache;
        private readonly ILogger _logger;
        private readonly CSRedisClient _cSRedisClient;
        public CsRedisManager(RedisCacheOption option
            , ConnectionMultiplexer connection
            , CSRedisClient cSRedisClient
            , IMemoryCache memorycache
            , ILogger<CsRedisManager> logger)
        {
            _connection = connection;
            _cSRedisClient = cSRedisClient;
            _option = option;
            _memorycache = memorycache;
            _logger = logger;
        }
        public T Get<T>(string key)
        {
            var result = _cSRedisClient.Get<T>(key);
            return result;
        }

        public async Task<T> GetAsync<T>(string key)
        {
            var result = await _cSRedisClient.GetAsync<T>(key);
            return result;
        }

        /// <summary>
        ///获取或者创建缓存 
        /// localExpiredTime参数大于0并且小于expiredTime数据将缓存到本地内存
        /// 设置了本地缓存过期时间大于0并委托也为空,本地将保持5秒空值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="func"></param>
        /// <param name="expiredTime"></param>
        /// <param name="localExpiredTime">本地过期时间</param>
        /// <returns></returns>
        public T GetOrSet<T>(string key, Func<T> func = null, TimeSpan? expiredTime = null, int localExpiredTime = 0)
后面还有 549 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。