您的位置:首页 > Web前端

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

2005-05-07 00:20 417 查看
 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

%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐