社区
C#
帖子详情
看到很多人用Hashtable做缓存,Hashtable容器能保存数据到进程结束后?
demoooo
2010-05-02 11:41:39
如题
就是说当前请求结束后, Hashtabel容器add的key和value还能被保留? 能保留多久,进程结束? 还是直至Clear()或服务器重置?
谢谢
...全文
384
7
打赏
收藏
看到很多人用Hashtable做缓存,Hashtable容器能保存数据到进程结束后?
如题 就是说当前请求结束后, Hashtabel容器add的key和value还能被保留? 能保留多久,进程结束? 还是直至Clear()或服务器重置? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
despird
2010-05-03
打赏
举报
回复
如果你的Hashtable对象不是static的,a页面和b页面创建的是不同的对象。如果对象不是静态的,即使都是a页面创建的,每次请求访问a页面hashtable对象内容也不会保存的,除非你用session保存hashtable对象。还是那句话,hashtable只是类型,能否保存数据取决于你把对象保存在什么位置,和如何访问。
对于你这个问题,你如果想使用Hashtable缓存数据,一个途径是把hashtable创建的对象保存在Cache里面,hashtable本身不能代替Cache。
demoooo
2010-05-03
打赏
举报
回复
[Quote=引用 4 楼 despird 的回复:]
Cache是对象,由应用程序定义,生存期与应用程序相关;Hashtable仅仅是类型而已,生存期取决于对象定义的位置。
[/Quote]
Hashtable在B层创建, web层a.aspx 引用B层初始化类并创建了Hashtable, 那么此时的web层b.aspx访问B层的这个Hashtable是null吗.
despird
2010-05-03
打赏
举报
回复
Cache是对象,由应用程序定义,生存期与应用程序相关;Hashtable仅仅是类型而已,生存期取决于对象定义的位置。
wuyq11
2010-05-03
打赏
举报
回复
看看petshop
hashtable是变量,Cache是当前应用程序的缓存
HttpContext.Current.Cache.Insert( "MyCacheKey ", MyHashTable);
Hashtable MyHashTable =HttpContext.Current.Cache[ "MyCacheKey "] as Hashtable;
if(MyHashTable !=null){
}
缓存根据cache
wuyq11
2010-05-03
打赏
举报
回复
<%= Html.RenderTemplate(ViewData.Model, "~/a.ascx") %>
threenewbee
2010-05-03
打赏
举报
回复
这个牵涉到变量的生存周期。
首先,服务器重置之后肯定内存里面的一切都没了。
其次,要理解ASP.NET的session会话实现机制。放入session里面的变量在会话周期内有效。
很明显,http是无状态的,所以asp.net会定时清理超过时间没有连接的客户端session。
另外,所有的变量,在生命期结束以后,会被回收。比如对象不再被引用了,那么里面的成员自然也没用了。
asp.net是怎么管理session里面对象和application里面的对象的,仔细看看msdn。
demoooo
2010-05-03
打赏
举报
回复
[Quote=引用 6 楼 despird 的回复:]
如果你的Hashtable对象不是static的,a页面和b页面创建的是不同的对象。如果对象不是静态的,即使都是a页面创建的,每次请求访问a页面hashtable对象内容也不会保存的,除非你用session保存hashtable对象。还是那句话,hashtable只是类型,能否保存数据取决于你把对象保存在什么位置,和如何访问。
对于你这个问题,你如果想使用Hashtable缓存数据,一个途径是把……
[/Quote]
基本明白了,谢谢. 看来我看到用Hashtabel做缓存的只是临时"缓存",只在一个进程请求期间内保存重复调用的数据.
SpringBoot
缓存
实践
FIFO(First In First Out),先进先出,和OS里的FIFO思路相同,如果一个
数据
最先进入
缓存
中,当
缓存
满的时候,应当把最先进入
缓存
的
数据
给移除掉。 LFU(Least Frequently Used),最不经常使用,如.
从入门到真香!直击
HashTable
的源码,看完没有不懂的
很多
人说那只是你技术不过关,又或者没有管理能力,但实际上又有多少程序员在35岁能当上高管呢? 最近在职场论坛上看到这样一个帖子:37岁程序员被裁,120天没找到工作,面试华为阿里均被拒,无奈降薪去小公司后蒙了...
Spring Boot
缓存
应用实践
***
缓存
提供者接口**//*** 查询
缓存
* @param key
缓存
键 不可为空**//*** 查询
缓存
* @param key
缓存
键 不可为空* @param function 如没有
缓存
,调用该callable函数返回对象 可为空**//*** 查询
缓存
* @param key ...
2022届秋招Java岗高频面试题盘点,老司机也未必全会,真的太卷了
Java和C++的区别(我知道
很多
人没学过C++,但是面试官就是没事喜欢拿咱们Java和C++比呀!讲下Zookeeper中的watch机制Zookeeper和Eureka的区别。B树和B+树的区别,为什么Mysql使⽤B+树Mysql锁有哪些,如何理解。sleep...
普通 Java 面试 ,这是在评估者的知识结构。
普通 Java 面试 ,这是在评估者的知识结构。 JVM原理 多线程
数据
结构和算法 高并发 ...
很多
人全都是业务代码,你怎样才能
做
到更高层面的抽象? 微服务架构下,对于服务降级和边界条件,你是怎么看的,
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章