webapi为什么发布到服务器后服务器的缓存cache就给清了?

zzyhost 2019-03-27 12:38:11
为什么一发布,cache就清没了,能不清吗?
...全文
222 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
就好像互联网时代的工程师的知识一定是网络通讯架构知识、而不是扯什么“增删改查”一样,设计大数据处理软件的人的知识一定是基于缓存系统的机制来设计而不是扯什么“把数据放到内存里”这种概念。这个概念的差别体现了是具体技术还是标题党的区别。 网络通讯技术、缓存技术,这是现在流行的技术出发点。而“增删改查”、“把数据一下子读到内存”则是标题党常用的说法。
  • 打赏
  • 举报
回复
例如 Orleans 本身默认是基于缓存的,对象从分布式系统上创建和消失的时候都会触发相关的用户自定义(例如叫做 OnActive、OnRemove 之类的)操作。 虽然 Orleans 系统的对象是确保在集群上分布自动负载均衡路由到某台服务器的,但是编程基本的概念就是基于缓存机制,对象随时可能被清理,这样来设计的。
  • 打赏
  • 举报
回复
首先缓存就是缓存,随时可能因为各种智能原因而清理。否则就是不是缓存而是数据库(例如内存数据库)了。有些15年前的小流派的开源系统为了忽悠 java 程序员而把自己的内存数据库说成是“缓存系统”。 asp.net 缓存是进程内的,本地的,可以说比通过网络查询的外部内存数据库地效率肯定是搞数百倍。而且缓存机制往往是用来对程序逻辑进行梳理的,例如一个复杂计算过程就可以用后续操作能公用到前阶段缓存的做法来大大简化(没有必要为了提高效率而重新设计流程)和优化程序。 但是前提的设计知识是,“缓存就是缓存”缓存是需要能随时清空的。
  • 打赏
  • 举报
回复
你用的MemoryCache吧?这是内存里的Cache,只要IIS回收了,这个缓存就会被释放,如果你要发布时不影响,那么可以考虑Redis
正怒月神 2019-03-27
  • 打赏
  • 举报
回复
只要你发布,或者修改了文件。这个网站就重启了。所以cache就被清空了。
  • 打赏
  • 举报
回复
最垃圾的事情就是维持很肮脏的缓存数据。例如数据库改变了但是缓存还是肮脏的,或者某个机器上的数据改为新的了但是别的机器上的缓存数据还是肮脏的。如果测试出来是这样使用缓存的,那么就是比较坑爹的,不会好好地设计缓存。
  • 打赏
  • 举报
回复
Cache 随时可能丢失。比如说随便删除一个(除了 app_data 标准范围以外的)子目录,随便更改 bin 等目录下的文件,随便修改一下 webconfig 文件,超过缓存单元自身用户设置的时间,依赖文件改变,缓存依赖的其它缓存单元的级联改变,iis 设置,遇到一个 bug 而自动恢复 asp.net 系统稳定性,等等......微软的人自己肯定也不知道什么缓存清空。 编程设计中,随时可能“缓存给清了”这是最基本的设计知识。
wanghui0380 2019-03-27
  • 打赏
  • 举报
回复
这个没办法。iis就是这样,他会重启应用程序池

所以有些人把dll放到bin以外,然后用插件技术加载(不更新bin了,自然也就不引发重启应用程序池了)

不过个人建议,还是前端在加一层Nginx,做一下服务集成和反向代理。这样新增的玩意可以不必放到同一个iis应用程序池下,随时可以扩展

  • 打赏
  • 举报
回复
引用 楼主 zzyhost 的回复:
能不清吗?
缓存就是缓存,难道你认为缓存有可能不丢?
  • 打赏
  • 举报
回复
发布任何新版本了之后,之前正在运行的进程自然就重启了。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧