src/05_Cache/Cache.Redis/RedisHelper.cs

(开头部分) 14KB

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using StackExchange.Redis;

namespace Mkh.Cache.Redis;

public class RedisHelper : IDisposable
{
    internal ConnectionMultiplexer _redis;
    internal string _prefix;
    internal readonly IOptionsMonitor<RedisOptions> _options;
    internal readonly IRedisSerializer _redisSerializer;
    public IDatabase Db { get;private set; }

    public RedisDatabase Database { get;private set; }

    public RedisHelper(IRedisSerializer redisSerializer, IOptionsMonitor<RedisOptions> options)
    {
        _redisSerializer = redisSerializer;
        _options = options;
        CreateConnection();
    }

    /// <summary>
    /// 获取Redis原生的IDatabase
    /// </summary>
    /// <param name="db"></param>
    /// <returns></returns>
    public IDatabase GetDb(int db = -1)
    {
        if (db == -1)
            db = _options.CurrentValue.DefaultDb;

        return _redis.GetDatabase(db);
    }

    /// <summary>
    /// 获取自定义的RedisDatabase
    /// </summary>
    /// <param name="db"></param>
    /// <returns></returns>
    public RedisDatabase GetDatabase(int db = -1)
    {
        if (db == -1)
            db = _options.CurrentValue.DefaultDb;

        return new RedisDatabase(db, this);
    }

    /// <summary>
    /// 获取键(附加前缀)
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public string GetKey(string key)
    {
        return $"{_prefix}{key}";
后面还有 477 行代码,解锁后查看完整代码

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

AI 解读

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

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