Relaxlife.Net缓存的应用,调用速度要比每次都要从数据库中读要快N陪(原版)精典

原创 2005年05月07日 00:20:00
 Relaxlife.Net缓存的应用,调用速度要比每次都要从数据库中读要快N陪(原版)精典

缓存的应用,调用速度要比每次都要从数据库中读要快N陪(原版)

<%
Rem =================================================================
Rem = 类:CacheCls
Rem = 说明:缓存的应用
Rem = Revision:1.01 Beta
Rem = 作者:熊氏英雄(cexo255)
Rem = Date:2005/05/6 18:38:10
Rem = QQ:30133499
Rem = MySite:Http://www.Relaxlife.net
Rem = 下载:http://www.relaxlife.net/2005/relaxlife/blogview.asp?logID=178
Rem = QQ群:4341998
Rem = 适用:对一些常用到,而又不常改变的数据放入缓存中,调用速度要比每次都要从数据库中读要快N陪
Rem =================================================================

CacheName = "RL"
Class CacheCls
    Private LocalCacheName, Cache_Data
   
    Public Property Let Name(ByVal vNewValue)
        LocalCacheName = LCase(vNewValue)
        Cache_Data=Application(CacheName & "_" & LocalCacheName)
    End Property
   
    Public Property Let Value(ByVal vNewValue)
        Dim N,i,NewValueArr
        If LocalCacheName<>"" Then
            N = CountInStr(vNewValue,"|")
            NewValueArr = Split(vNewValue,"|",-1,1)
            ReDim Cache_Data(N)
            For i = 0 to N
                Cache_Data(i) = NewValueArr(i)
            Next
            Application.Lock
            Application(CacheName & "_" & LocalCacheName) = Cache_Data
            Application.unLock
        Else
            Response.Write "设置缓存出错,或缓存名不能为空,请重新更新缓存"
            Response.End()
        End If
    End Property
   
    Public Property Get Value()
        If LocalCacheName<>"" Then     
            If IsArray(Cache_Data) Then
                Value=Cache_Data
            End If
        Else
            Response.Write "设置缓存出错,或缓存名不能为空,请重新更新缓存"
            Response.End()
        End If
    End Property
   
    '取指定缓存中的值
    Public Function GetCacheValue(MyCaheName)
        GetCacheValue = Application(CacheName & "_" & MyCaheName)
    End Function
   
    '取所有缓存名
    Public Function GetallCacheName()
        Dim Cacheobj
        For Each Cacheobj in Application.Contents
            GetallCacheName = GetallCacheName & Cacheobj & ","
        Next
        GetallCacheName = Left(GetallCacheName,Len(GetallCacheName)-1)
        GetallCacheName = Replace(GetallCacheName,CacheName & "_","")
    End Function
   
    '释放缓存   
    Public Sub DelCahe(MyCaheName)
        Application.Lock
        Application.Contents.Remove(CacheName & "_" & MyCaheName)
        Application.unLock
    End Sub
   
    '释放所有缓存
    Public Sub RemoveAllCache()
        Dim Cachelist,i
        Cachelist=Split(GetallCacheName(),",")
        If UBound(Cachelist)>0 Then
            For i=0 to UBound(Cachelist)
                DelCahe Cachelist(i)
            Next
        End If
    End Sub
   
    '统计字符Char在Str中出现的次数
    Private Function CountInStr(Str,Char)
        CountInStr = 0
        Dim i, CharLen
        CharLen = Len(Char)
        For i = 1 to Len(Str)
            If Mid(Str, i, CharLen) = Char Then CountInStr = CountInStr + 1
        Next
    End Function

End Class

Dim CachePro
Set CachePro = New CacheCls
'设置缓存“cexo255”和它的值:"cexo2551|cexo2552|cexo2553|cexo2554|cexo2555"
CachePro.Name = "cexo255"
CachePro.Value = "cexo2551|cexo2552|cexo2553|cexo2554|cexo2555"
'取当前缓存中的值
'CacheArr = CachePro.Value

CachePro.Name = "wxf"
CachePro.Value = "wxf"
CachePro.Name = "dw"
CachePro.Value = "dw"

'释放缓存cexo255
'CachePro.DelCahe("cexo255")

'释放所有缓存
'CachePro.RemoveAllCache

'取cexo255缓存中的值
CacheArr = CachePro.GetCacheValue("cexo255")
If isArray(CacheArr) Then
    For i = 0 to UBound(CacheArr)
        Response.Write CacheArr(i) & "<br>"
    Next
Else
    Response.Write "缓存被释放!!!"
End if

Set CachePro = Nothing
%>

ASP.NET缓存Cache的应用-提高数据库读取速度

一、 Cache概述       既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改动不大或者对数据的实时性没有太多要求的数据。这样,我们只需要定期...

ASP.NET数据库使用精典-----读取数据库中数据

读取数据库中的数据 在ASP.NET中,读取数据库中的数据可以使用DataReader 和DataSet两种方法,两者差异如下:   使用DataSet对象读取数据大致需要以下五个步骤: ...

(hdu step 2.3.7)下沙的沙子有几粒?(简单DP:求有m个H,n和D,且任意索引上H的个数都要比D的个数多的方案数)

在写题解之前给自己打一下广告哈~。。抱歉了,希望大家多多支持我在CSDN的视频课程,地址如下:http://edu.csdn.net/course/detail/209题目:下沙的沙子有几粒?Time...

ASP.NET之Web Service入门精典

.NET Web Service 帮助你编写方法可以被任意.NET编程语言通过互联网调用的组件。创建Web Service的程序员可以在相互的基础上编写组件,利用了网络的核心使得——连通性。增加附加值...

ADO.NET访问数据-(2) DataSet本地缓存与数据库的交互过程,以及应用

大半夜的睡不着觉 ,被宿舍的一群狼给吵醒了,于是就继续写博客。。。。       在前面一个 ADO.NET  数据库文章中  我说过  ADO.NET  允许用户在断网的情况下 对数据库进行 "...

转.为什么栈的速度比堆要快.

在栈上分配的内存系统会自动地为其释放,例如在函数结束时,局部变量将不复存在,就是系统自动清除栈内存的结果。但堆中分配的内存则不然:一切由你负责,即使你退出了new表达式的所处的函数或者作用域,那块内存...

listview中数据如果要实时读写,需要每次操作后都要查询数据库吗

总结一下填充listview的步骤: 1:准备数据:先把要填充的数据从数据库中查询出来,放入一个list存放 2:设置listview中item的格式,新建一个xml文件,自定义布局 3:新建一...

.Net 下通过缓存提高TCP传输速度

.Net 提供了一个NetworkStream 用于TCP 的读写,实际使用时发现直接操作效率很低,哪怕把TCP 的发送缓存和接受缓存设置很大也没有太大提高。后来在对 NetworkStream 读写...
  • educast
  • educast
  • 2012年03月21日 11:46
  • 602

.NET分布式缓存之Memcached执行速度检测

• .NET分布式缓存之Memcached执行速度检测 • http://developer.51cto.com  2009-08-17 16:34  沙加  沙加的博客  我要评论() 为了...
  • zzy7075
  • zzy7075
  • 2014年11月17日 13:36
  • 444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: Relaxlife.Net缓存的应用,调用速度要比每次都要从数据库中读要快N陪(原版)精典
举报原因:
原因补充:

(最多只允许输入30个字)