• phpcms 添加memcache支持


    1,修改caches/configs/cache.php

    <?php
    
    return array (
    ‘file1‘ => array (
    ‘type‘ => ‘file‘,
    ‘debug‘ => true,
    ‘pconnect‘ => 0,
    ‘autoconnect‘ => 0
    ),
    ‘memcache1‘ => array (
    ‘hostname‘ => ‘127.0.0.1‘,
    ‘port‘ => 11211,
    ‘timeout‘ => 0,
    ‘type‘ => ‘memcache‘,
    ‘debug‘ => true,
    ‘pconnect‘ => 0,
    ‘autoconnect‘ => 0
    )
    );
    
    ?>

    2,修改phpcms/libs/functions/globl.func.php  文件的四个函数

    function setcache($name, $data, $filepath=‘‘, $type=‘memcache‘, $config=‘memcache1‘, $timeout=0) {
    pc_base::load_sys_class(‘cache_factory‘,‘‘,0);
    if($config) {
    $cacheconfig = pc_base::load_config(‘cache‘);
    $cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
    } else {
    $cache = cache_factory::get_instance()->get_cache($type);
    }
    
    return $cache->set($name, $data, $timeout, ‘‘, $filepath);
    }
    
    
    function getcache($name, $filepath=‘‘, $type=‘memcache‘, $config=‘memcache1‘) {
    pc_base::load_sys_class(‘cache_factory‘,‘‘,0);
    if($config) {
    $cacheconfig = pc_base::load_config(‘cache‘);
    $cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
    } else {
    $cache = cache_factory::get_instance()->get_cache($type);
    }
    return $cache->get($name, ‘‘, ‘‘, $filepath);
    }
    
    
    function delcache($name, $filepath=‘‘, $type=‘memcache‘, $config=‘memcache1‘) {
    pc_base::load_sys_class(‘cache_factory‘,‘‘,0);
    if($config) {
    $cacheconfig = pc_base::load_config(‘cache‘);
    $cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
    } else {
    $cache = cache_factory::get_instance()->get_cache($type);
    }
    return $cache->delete($name, ‘‘, ‘‘, $filepath);
    }
    
    
    function getcacheinfo($name, $filepath=‘‘, $type=‘memcache‘, $config=‘memcache1‘) {
    pc_base::load_sys_class(‘cache_factory‘);
    if($config) {
    $cacheconfig = pc_base::load_config(‘cache‘);
    $cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
    } else {
    $cache = cache_factory::get_instance()->get_cache($type);
    }
    return $cache->cacheinfo($name, ‘‘, ‘‘, $filepath);
    }

    3,修改phpcms/libs/classes/cache_memcache.class.php

    <?php 
    class cache_memcache {
    
    private $memcache = null;
    
    public function __construct() {
    $this->memcache = new Memcache;
    $this->memcache->connect(MEMCACHE_HOST, MEMCACHE_PORT)or die ("Could not connect");
    }
    
    public function memcache() {
    $this->__construct();
    }
    
    public function get($name, $empty=‘‘, $empty=‘‘,$filepath) {
    $value = $this->memcache->get($name.$filepath);
    return $value;
    }
    
    public function cacheinfo($name, $empty=‘‘, $empty=‘‘, $filepath){
    $value = $this->memcache->get($name.$filepath);
    return $value;
    }
    
    public function set($name, $value, $ttl = 3600, $ext1=‘‘, $ext2=‘‘) {
    return $this->memcache->set($name.$ext2, $value, false, $ttl);
    }
    
    public function delete($name, $empty=‘‘, $empty=‘‘, $filepath) {
    return $this->memcache->delete($name.$filepath);
    }
    
    public function flush() {
    return $this->memcache->flush();
    }
    }
    ?>

    4,测试调用文件(保持到网站根目录查看)

    <?php
    header(‘Content-type: text/html; charset=utf8‘);
    echo "<pre>";
    $host=‘127.0.0.1‘;
    $port=11211;
    $mem=new Memcache();
    $mem->connect($host,$port);
    
     
    
    $mem->set(‘var_key‘, ‘some variable‘, 0, 30);//设置
    
    $var = $mem->get(‘var_key‘);//获取
    
    echo $var;
    
    $mem->add(‘xxx‘,‘fffffffff‘,0,80);//添加
    $mem->delete(‘xxx‘, 10);//删除
    $var = $mem->get(‘xxx‘);
    echo $var;
    
     
    
    
    $items=$mem->getExtendedStats (‘items‘);
    $items=$items["$host:$port"][‘items‘];
    foreach($items as $key=>$values){
    $number=$key;;
    $str=$mem->getExtendedStats ("cachedump",$number,0);
    $line=$str["$host:$port"];
    if( is_array($line) && count($line)>0){
    foreach($line as $key=>$value){
    echo $key.‘=>‘;
    print_r($mem->get($key));
    echo "
    "."<br>";
    }
    }
    }
    ?>

    ok!

  • 相关阅读:
    php 中ASCII编码的使用
    BASE64
    微信公众平台--6.JS-SDK 微信内网页开发工具包
    python3中zipfile模块的常用方法
    python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
    python3开发进阶-Django框架的起飞加速一(ORM)
    python3开发进阶-Django框架起飞前的准备
    python3开发进阶-Web框架的前奏
    前端基础-jQuery的最常用的的方法each、data、
    前端基础-jQuery的动画效果
  • 原文地址:https://www.cnblogs.com/feng18/p/6238643.html
Copyright © 2020-2023  润新知