0

我有 3 个应用程序指向单个 redis 端点。我想为每个应用程序使用单独的 redis 数据库。但是当我尝试在 ConfigurationOption 中将 defaultDatabase 设置为 1 或 2 时,它仍在使用数据库 0。我正在使用 stackexchange redis。代码如下:

  var configurationOptions = new ConfigurationOptions
        {
            EndPoints = { "myredis.redis.cache.windows.net" },
            Password = "xxxxxxxxxxxxxxxxxxx",
            Ssl = true,
            ConfigurationChannel = "MyRedis",
            ChannelPrefix = "MR",
            DefaultDatabase = 1,
        };

        var connectionMultiplexer = ConnectionMultiplexer.Connect(configurationOptions);

        var cacheClient = new StackExchangeRedisCacheClient(connectionMultiplexer, new JilSerializer(), database: 1);

现在使用 ICacheClient 添加新的缓存键

 var user = new User()
 {
     Id = 100,
     Name = "John Doe"
 };

var response = cacheClient.Add("mykey", user);

然后从缓存中检索添加的密钥

var addedUser= cacheClient.Get<string>("mykey");

有什么我做错了吗?理想情况下,按照配置选项中的说明,它应该将密钥存储到 db1,但它存储到 db0。

4

1 回答 1

0

当您检索数据库对象时,您应该指定数据库编号。https://stackexchange.github.io/StackExchange.Redis/Basics.html#using-a-redis-database

于 2020-03-11T20:55:14.887 回答