首页 新闻 会员 周边 捐助

net core中的memorycache问题

0
悬赏园豆:30 [已解决问题] 解决于 2020-05-21 12:30

想知道net core中的memorycache这个缓存 ,一旦创建了,他会存在哪里?要是把项目部署到多个服务器的话,创建一个公共的缓存,是不是所有的用户访问都能得到?即使是不一样的电脑更新完缓存之后还能获取到吗?

实力快递员的主页 实力快递员 | 初学一级 | 园豆:72
提问于:2020-05-21 11:23
< >
分享
最佳答案
0

services.addmemorycache()使用的是本地内存缓存,

如果要使用类似redis之类的缓存可以
注册
services.AddDistributedRedisCache
services.AddDistributedSqlServerCache
使用:
IDistributedCache

参考:https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1

收获园豆:30
czd890 | 专家六级 |园豆:14488 | 2020-05-21 11:31

memorycache这个缓存是不支持多个服务器缓存共享用的吗?只能在一台服务器上创建才能使用是嘛?

实力快递员 | 园豆:72 (初学一级) | 2020-05-21 11:41

@实力快递员: 是的,memorycache不支持多台服务器共享

czd890 | 园豆:14488 (专家六级) | 2020-05-21 11:58

@czd890: 那就是使用redis或者别的分布式缓存是这样吗

实力快递员 | 园豆:72 (初学一级) | 2020-05-21 12:08

@实力快递员: 是的,如果你需要多台机器共享缓存就需要分布式缓存, 例如redis, memcache之类的,

可以单独他们的库进行操作, 也可以使用IDistributedCache来操作, IDistributedCache的api和ImemeoryCache的api基本是一样的. 使用上没差别.

czd890 | 园豆:14488 (专家六级) | 2020-05-21 12:12

@czd890: 好的谢谢你

实力快递员 | 园豆:72 (初学一级) | 2020-05-21 12:30

@czd890: 对了大佬再问一下问题memorycache这个缓存要是把项目部署到iis上他的内存大小会受到iis分配的大小吗?

实力快递员 | 园豆:72 (初学一级) | 2020-05-21 12:32

@实力快递员: iis的内存限制是你的程序如果达到这个内存限制后,它会回收并启动一个新的. 如果你的memorycache用量过多,导致你的程序总内存超过了iis的限制,那自然会被回收

czd890 | 园豆:14488 (专家六级) | 2020-05-21 13:49

@czd890: 那要用redis别的话 会有这种限制吗?

实力快递员 | 园豆:72 (初学一级) | 2020-05-21 14:19

@实力快递员: 那限制就在你的redis实列上面了呀, 如果你要缓存的数据超大,那就上redis集群咯. 几百GB还是小意思的.

czd890 | 园豆:14488 (专家六级) | 2020-05-22 15:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册