asp.net 缓存问题

xiaohui_1 2009-03-16 09:06:32
我现在 用 asp.net Ajax 的AutoCompleteExtender 控件时发现一个问题。比方说在 AutoCompleteExtender 指定的文本框内输入一个字符后 就会激发事件 并去数据库 查找。 那么每个用户输入一个字符后 服务器都会连接一次数据库 并查询一次,如果并发用户过多的话服务器肯定受不了。 我在 是不是可以预先把数据 缓存在莫个地方。 查询时就不查数据库 只查缓存。 应该怎么做? 还有应该缓存到哪里?
...全文
183 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengzijun_g 2009-03-17
  • 打赏
  • 举报
回复
DataTable dt=(DataTable)Cache.Get(key); 这里要这么写
nnoovvee 2009-03-16
  • 打赏
  • 举报
回复
学习
wanghongliang2009 2009-03-16
  • 打赏
  • 举报
回复
关注中
xiaohui_1 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 fly_to_the_winds 的回复:]
引用 25 楼 sunzhong2003 的回复:
引用 24 楼 xiaohui_1 的回复:
引用 22 楼 jinjazz 的回复:
cache相当于一个hashtable..


我现在的数据有1万多条。 怎样放入cache 怎样读取?


请原谅我的无知。。回答我就结贴。

DataTable dt=(DataTable)Cache.Get(key);
if(dt!=null) {
...取数据
dt=...;
Cache.Add(dt,...);
}
DataRow[] drs=dt.select("");
当然也可以使用其他对象,今天心情好,写一点…
[/Quote]


Cache.Get(key)
为什么我没找到 Get这个方法?



xiaohui_1 2009-03-16
  • 打赏
  • 举报
回复
感谢各位的回答 。 结贴。
浮生若梦丶 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 sunzhong2003 的回复:]
引用 24 楼 xiaohui_1 的回复:
引用 22 楼 jinjazz 的回复:
cache相当于一个hashtable..


我现在的数据有1万多条。 怎样放入cache 怎样读取?


请原谅我的无知。。回答我就结贴。

DataTable dt=(DataTable)Cache.Get(key);
if(dt!=null) {
...取数据
dt=...;
Cache.Add(dt,...);
}
DataRow[] drs=dt.select("");
当然也可以使用其他对象,今天心情好,写一点,呵呵
[/Quote]
sunzhong2003 2009-03-16
  • 打赏
  • 举报
回复
DataTable dt=(DataTable)Cache.Get(key); 这里要这么写
sunzhong2003 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 xiaohui_1 的回复:]
引用 22 楼 jinjazz 的回复:
cache相当于一个hashtable..


我现在的数据有1万多条。 怎样放入cache 怎样读取?


请原谅我的无知。。回答我就结贴。
[/Quote]
DataTable dt=Cache.Get(key);
if(dt==null)
{
...取数据
dt=...;
Cache.Add(dt,...);
}
DataRow[] drs=dt.select("");
当然也可以使用其他对象,今天心情好,写一点,呵呵
xiaohui_1 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 jinjazz 的回复:]
cache相当于一个hashtable..
[/Quote]

我现在的数据有1万多条。 怎样放入cache 怎样读取?


请原谅我的无知。。回答我就结贴。
sunzhong2003 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 xiaohui_1 的回复:]
引用 16 楼 jinjazz 的回复:
>>那么 把缓存存在 cache中 那么是不是每个用户 都用有一个cache缓存 。每次再从cache中读取数据。 这样的效率可能也不高吧。 能不能缓存到客户端去?


EnableCaching="true"就是把数据放到客户端,服务器的cache是所有人公用,有一个存入了,别人就可以直接取了,lz还是看看什么是缓存,如何实现,再来考虑实际应用的细节问题



谢谢 这位高手。 我明白了。 但是我还想无耻的问最后…
[/Quote]
回使用DataTable等对象的检索功能吗?会的话,你就不用无耻拉
jinjazz 2009-03-16
  • 打赏
  • 举报
回复
cache相当于一个hashtable..
xiaohui_1 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jinjazz 的回复:]
>>那么 把缓存存在 cache中 那么是不是每个用户 都用有一个cache缓存 。每次再从cache中读取数据。 这样的效率可能也不高吧。 能不能缓存到客户端去?


EnableCaching="true"就是把数据放到客户端,服务器的cache是所有人公用,有一个存入了,别人就可以直接取了,lz还是看看什么是缓存,如何实现,再来考虑实际应用的细节问题
[/Quote]


谢谢 这位高手。 我明白了。 但是我还想无耻的问最后一个问题 怎样从 chache中读取数据。难道用 循环读取? 有没有更方便的?
feifeiyiwen 2009-03-16
  • 打赏
  • 举报
回复
EnableCaching="true"就是把数据放到客户端,服务器的cache是所有人公用,有一个存入了,别人就可以直接取了,lz还是看看什么是缓存
jinjazz 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 linaren 的回复:]
其实我建议你最好不用cache,因为它在一段时间里没有活动就会自动晴空的,那样的话,你还得维护这个缓冲区。
可以在系统启动时,把信息写到临时文件里去,写个专门解析这个文件的类来读取,
[/Quote]

对于这个回复,及其无语
linaren 2009-03-16
  • 打赏
  • 举报
回复
其实我建议你最好不用cache,因为它在一段时间里没有活动就会自动晴空的,那样的话,你还得维护这个缓冲区。
可以在系统启动时,把信息写到临时文件里去,写个专门解析这个文件的类来读取,
jinjazz 2009-03-16
  • 打赏
  • 举报
回复
>>那么 把缓存存在 cache中 那么是不是每个用户 都用有一个cache缓存 。每次再从cache中读取数据。 这样的效率可能也不高吧。 能不能缓存到客户端去?


EnableCaching="true"就是把数据放到客户端,服务器的cache是所有人公用,有一个存入了,别人就可以直接取了,lz还是看看什么是缓存,如何实现,再来考虑实际应用的细节问题
jlj84237485 2009-03-16
  • 打赏
  • 举报
回复
帮顶一下
xiaohui_1 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jinjazz 的回复:]
这是个客户端局部缓存,如果要在服务器缓存,只要把访问数据库的结果放到cache对象里面就可以了
[/Quote]


那么 把缓存存在 cache中 那么是不是每个用户 都用有一个cache缓存 。每次再从cache中读取数据。 这样的效率可能也不高吧。 能不能缓存到客户端去?
嘴哥臭鼬 2009-03-16
  • 打赏
  • 举报
回复
明白楼主的一次,第一次是从数据库中读取数据后来就可以用缓存了,楼上的已经解决了,那个空间有这个属性,我记得默认就是用缓存的啊,第二次不会再从数据库中读取了
iuhxq 2009-03-16
  • 打赏
  • 举报
回复
我建议你直接查询数据库。

我的网站:svn服务器
加载更多回复(12)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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