微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果 Redis 缓存失败,则执行函数

如何解决如果 Redis 缓存失败,则执行函数

我正在开发 .NET Core 3.1 应用程序。使用“StackExchange.Redis”库来处理 Redis 上的缓存操作。

在 Startup.cs 中配置连接字符串

services.AddStackExchangeRedisCache(options => {
    options.Configuration = Configuration.GetValue<string>("localhost:6379");
    options.InstanceName = "laserlamb:"; 
});

这个静态类向 IdistributedCache 添加了“SetRecord”函数

    public static class distributedCache
    {
        public static bool isCacheAvailable = true;
        static distributedCache()
        {

        }
        
        public static async Task SetRecord(this IdistributedCache cache,string recordId,string value)
        {
            try
            {
                if (this.isCacheAvailable)
                {
                    await cache.SetStringAsync(recordId,value);
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
            }
        }
    }

使用依赖注入对象在缓存中设置记录。

public class SomeRandomClass
{
    private IdistributedCache cache;
    public SomeRandomClass(IdistributedCache cache) { this.cache = cache; }
    
    public async Task SavetoCache()
    {
        await cache.SetRecord("Key","Value");
    }
}

如果我的 Redis 实例没有运行,就会报错。

当缓存不可用时,我如何更新 isCacheAvailable

解决方法

我认为您想检查 Polly Project。它有 Circuit BreakersDistributedCache,可以很方便。

您有 Plugin Microsoft android { // defaultConfig { ... } buildTypes { release { signingConfig signingConfigs.debug minifyEnabled false shrinkResources false } } } Provider。

检查一下。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。