WEB开发网
开发学院WEB开发ASP 缓存的应用,调用速度要比每次都要从数据库中读要快... 阅读

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

 2009-06-30 04:01:00 来源:WEB开发网   
核心提示:<%Rem =Rem = 类:CacheClsRem = 说明:缓存的应用Rem = Revision:1.01 BetaRem = 作者:熊氏英雄(cexo255)Rem = Date:2005/05/6 18:38:10Rem = QQ:30133499Rem = MySite:Http://www.Rela

<%
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  /cexo/Cache_PRo.rar
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
%>

Tags:缓存 应用 调用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接