memorycache有一个set方法,允许我指定在通过 CacheItemPolicy
参数。
这可以用于定期自动刷新缓存,而无需使用hangfire或其他任务运行程序。
如何使用stackexchange.redis在.net中实现这一点?
我在redis命令参考中找不到任何适合我的目的和所有实现的方法 ObjectCache
我在网上找到的 NotSupportedException
在它们的实现中:
https://github.com/justinfinch/redis-object-cache/blob/master/src/redisobjectcache/rediscache.cshttps://www.leadtools.com/help/sdk/v20/dh/to/azure-redis-cache-example.htmlhttpshttp://github.com/azure/aspnet-redis-providers/pull/72/commits/2930ede272fe09abf930208dfe935c602c1bb510
2条答案
按热度按时间new9mtju1#
缓存中的典型模式是调用缓存的数据,当找不到时,加载它。
***我不会把太多的重点放在锁上!!多个!!服务器。是的,在第一次加载时,您可能会加载两次或更多数据,但是您的redis
SET
可以使用When.NotExists
. 这样,当多个线程尝试这样做时,实际缓存将不会被替换。所以,这就是按需缓存和常量缓存。例如,在大型应用程序中,有些部件没有使用。为什么要填充缓存?然后,用户开始点击部件,瞧!ogq8wdun2#
redis中没有这样的东西。
但是,redis确实支持keyspace通知,它提供了一种注册
Expired
事件。您可以注册一个客户端,该客户端将对此类事件作出React并刷新缓存。另一种选择是使用redisgears并在上注册
expired
-->register(eventTypes=['exired'])
事件,以便每次触发过期事件时,嵌入在redis中运行的函数都将刷新数据。