在它说的文件上
/// The cache manager must have at least one cache handle configured with <see cref="CacheHandleConfiguration.IsBackplaneSource"/> set to <c>true</c>.
/// Usually this is the redis cache handle, if configured. It should be the distributed and bottom most cache handle.
我知道如何使用 RedisCacheHandle,因为它在 Cachemanager 的网站上作为示例给出
var cache = CacheFactory.Build<int>("myCache", settings =>
{
settings
.WithSystemRuntimeCacheHandle("inProcessCache")
.And
.WithRedisConfiguration("redis", config =>
{
config.WithAllowAdmin()
.WithDatabase(0)
.WithEndpoint("localhost", 6379);
})
.WithMaxRetries(1000)
.WithRetryTimeout(100)
.WithRedisBackplane("redis")
.WithRedisCacheHandle("redis", true);
});
问题是我不想使用 Redis 作为缓存资源;我只是想通过 Redis Pub/Sub 机制的力量来做一个分布式缓存。根据我通过代码进行的调试,通过使用 Redis 背板功能,我确实能够向 Redis 发送消息并从 Redis 接收消息。那么为什么不使用 RedisCacheHandle 而使用 SystemRuntimeCacheHandle 呢?
所以,我的期望是使用以下缓存配置成功执行
var cache = CacheFactory.Build<int>("myCache", settings =>
{
settings
.WithSystemRuntimeCacheHandle("inProcessCache")
.And
.WithRedisConfiguration("redis", config =>
{
config.WithAllowAdmin()
.WithDatabase(0)
.WithEndpoint("localhost", 6379);
})
.WithMaxRetries(1000)
.WithRetryTimeout(100)
.WithRedisBackplane("redis")
.WithSystemRuntimeCacheHandle("inProcessCache", true);
});
但它不起作用。你能告诉我一个解决方案吗?我究竟做错了什么?或者,即使它在文档中写为
...通常这是redis缓存句柄...
有没有办法在没有 RedisCacheHandle 的情况下使用缓存同步功能?