想知道net core中的memorycache这个缓存 ,一旦创建了,他会存在哪里?要是把项目部署到多个服务器的话,创建一个公共的缓存,是不是所有的用户访问都能得到?即使是不一样的电脑更新完缓存之后还能获取到吗?
services.addmemorycache()使用的是本地内存缓存,
如果要使用类似redis之类的缓存可以
注册
services.AddDistributedRedisCache
services.AddDistributedSqlServerCache
使用:
IDistributedCache
参考:https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1
memorycache这个缓存是不支持多个服务器缓存共享用的吗?只能在一台服务器上创建才能使用是嘛?
@实力快递员: 是的,memorycache不支持多台服务器共享
@czd890: 那就是使用redis或者别的分布式缓存是这样吗
@实力快递员: 是的,如果你需要多台机器共享缓存就需要分布式缓存, 例如redis, memcache之类的,
可以单独他们的库进行操作, 也可以使用IDistributedCache来操作, IDistributedCache的api和ImemeoryCache的api基本是一样的. 使用上没差别.
@czd890: 好的谢谢你
@czd890: 对了大佬再问一下问题memorycache这个缓存要是把项目部署到iis上他的内存大小会受到iis分配的大小吗?
@实力快递员: iis的内存限制是你的程序如果达到这个内存限制后,它会回收并启动一个新的. 如果你的memorycache用量过多,导致你的程序总内存超过了iis的限制,那自然会被回收
@czd890: 那要用redis别的话 会有这种限制吗?
@实力快递员: 那限制就在你的redis实列上面了呀, 如果你要缓存的数据超大,那就上redis集群咯. 几百GB还是小意思的.