欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CacheCls缓存的应用

程序员文章站 2022-04-14 18:49:47
复制代码 代码如下:<% rem =============================================================...
复制代码 代码如下:

<%
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
%>