src/Library/NetPro.RedisManager/StackExchangeRedisManager.cs
(开头部分) 20KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using RedLockNet.SERedis;
using RedLockNet.SERedis.Configuration;
using StackExchange.Redis;
using StackExchange.Redis.KeyspaceIsolation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
namespace NetPro.RedisManager
{
//[Obsolete]
internal partial class StackExchangeRedisManager : IRedisManager
{
private readonly ConnectionMultiplexer _connection;
private readonly RedisCacheOption _option;
private readonly IDatabase _database;
private IMemoryCache _memorycache;
private ILogger _logger;
/// <summary>
/// 自定义Key的前缀
/// </summary>
private string CustomPrefixKey { get; set; }
public StackExchangeRedisManager(ConnectionMultiplexer connection,
ISerializer serializer,
RedisCacheOption option,
IMemoryCache memorycache,
ILogger<StackExchangeRedisManager> logger)
{
Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
_connection = connection;
_option = option;
CustomPrefixKey = option.DefaultCustomKey;
if (!string.IsNullOrWhiteSpace(CustomPrefixKey))
_database = _connection.GetDatabase(_option.Database).WithKeyPrefix(CustomPrefixKey);
else
_database = _connection.GetDatabase(_option.Database);
_memorycache = memorycache;
_logger = logger;
}
public ISerializer Serializer { get; }
public IDatabase Database
{
get
{
var db = _connection.GetDatabase(_option.Database);
if (!string.IsNullOrWhiteSpace(CustomPrefixKey))
return db.WithKeyPrefix(CustomPrefixKey);
return db;
}
}
public T GetDistributedLock<T>(string resource, int timeoutSeconds, Func<T> func, bool isAwait)
后面还有 522 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。