src/Library/NetPro.StackExchange.Redis/StackExchange.Redis.Extensions.Core/Implementations/RedisDatabase.cs

(开头部分) 42KB

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

using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using RedLockNet.SERedis;
using RedLockNet.SERedis.Configuration;
using StackExchange.Redis;
using StackExchange.Redis.Extensions.Core.Abstractions;
using StackExchange.Redis.Extensions.Core.Configuration;
using StackExchange.Redis.Extensions.Core.Extensions;
using StackExchange.Redis.Extensions.Core.Models;
using StackExchange.Redis.Extensions.Core.ServerIteration;
using StackExchange.Redis.KeyspaceIsolation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

namespace StackExchange.Redis.Extensions.Core.Implementations
{
    public partial class RedisDatabase : IRedisDatabase
    {
        private readonly ILogger _logger;
        private readonly IRedisCacheConnectionPoolManager connectionPoolManager;
        private readonly ServerEnumerationStrategy serverEnumerationStrategy = new ServerEnumerationStrategy();
        private readonly string keyPrefix;
        private readonly uint maxValueLength;
        private readonly int dbNumber;
        private IMemoryCache _memorycache;

        /// <summary>
        /// 对象的新实例初始化 <see cref="RedisDatabase"/> class.
        /// </summary>
        /// <param name="connectionPoolManager">连接池管理器。</param>
        /// <param name="serializer">序列化</param>
        /// <param name="serverEnumerationStrategy">服务器枚举策略</param>
        /// <param name="dbNumber">要使用的数据库序号.</param>
        /// <param name="maxvalueLength">缓存对象的最大长度</param>
        /// <param name="keyPrefix">key前缀</param>
        public RedisDatabase(
                IRedisCacheConnectionPoolManager connectionPoolManager,
                ISerializer serializer,
                ServerEnumerationStrategy serverEnumerationStrategy,
                int dbNumber,
                uint maxvalueLength,
                string keyPrefix = null,
                ILogger logger = null,
                IMemoryCache memorycache = null)
        {
            _logger = logger ?? NullLogger<RedisDatabase>.Instance;
            Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
            this.serverEnumerationStrategy = serverEnumerationStrategy ?? new ServerEnumerationStrategy();
            this.connectionPoolManager = connectionPoolManager ?? throw new ArgumentNullException(nameof(connectionPoolManager));
            this.dbNumber = dbNumber;
            this.keyPrefix = keyPrefix;
            maxValueLength = maxvalueLength;
            _memorycache = memorycache;
        }

        public IDatabase Database
后面还有 1033 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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