新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:Relaxlife.Net缓存的应用,调用速度要比每次都要从数据库中读要快N陪(原版)精典

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

新客网 XKER.COM 2005-05-19 来源: 收藏本文
 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
%>
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐