Вход Регистрация
Файл: boot/cache/memcache.class.php
Строк: 74
<?php

/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2014 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
*/

class cache_lib
{
    var 
$identifier;
    var 
$link;
    
    
    function 
cache_lib( $identifier='' )
    {
        if( !
$identifier )
        {
            
$this->identifier = md5( uniqid( rand(), TRUE ) );
        }
        else
        {
            
$this->identifier = $identifier;
        }
        
        unset( 
$identifier );
    }
    
    
    function 
connect( $server_info=array() )
    {
        if( !
count($server_info) )
        {
            
$this->crashed = 1;
            return 
FALSE;
        }
        
        if( !isset(
$server_info['memcache_server_1']) OR !isset($server_info['memcache_port_1']) )
        {
            
$this->crashed = 1;
            return 
FALSE;
        }
        
        
$this->link = memcache_connect( $server_info['memcache_server_1'], $server_info['memcache_port_1'] );
        
        if( !
$this->link )
        {
            
$this->crashed = 1;
            return 
FALSE;
        }
        
        if( isset(
$server_info['memcache_server_2']) AND isset($server_info['memcache_port_2']) )
        {
            
memcache_add_server( $this->link, $server_info['memcache_server_2'], $server_info['memcache_port_2'] );
        }
        
        if( isset(
$server_info['memcache_server_3']) AND isset($server_info['memcache_port_3']) )
        {
            
memcache_add_server( $this->link, $server_info['memcache_server_3'], $server_info['memcache_port_3'] );
        }
        
        if( 
function_exists('memcache_set_compress_threshold') )
        {
            
memcache_set_compress_threshold( $this->link, 20000, 0.2 );
        }
        
        return 
TRUE;
    }
    
    
    function 
disconnect()
    {
        if( 
$this->link )
        {
            
memcache_close( $this->link );
        }
        
        return 
TRUE;
    }
    
    
    function 
do_put( $key, $value, $ttl=0 )
    {
        
memcache_set( $this->link,$this->identifier . md5( $key ),
                            
$value,
                            
MEMCACHE_COMPRESSED,
                            
intval($ttl) );
    }
    
    function 
do_get( $key )
    {
        
$return_val = memcache_get( $this->link, $this->identifier . md5( $key ) );

        return 
$return_val;
    }
    
    function 
do_remove( $key )
    {
        
memcache_delete( $this->link,$this->identifier . md5( $key ) );
    }
}
?>
Онлайн: 2
Реклама