zoukankan      html  css  js  c++  java
  • memcache 操作类

    <?php
    
    /**
     * memcache 操作实现
     * @author timeless
     */
    class Memcache_manage {
    
        //CI原始的信息
        private $_ci;
        private $_memcache_prefix;
        private $host;
        private $port;
        private $expire;
        private $weight;
    
        /**
         * 读取配置文件信息然后更新
         * @access public
         */
        public function memcache($flag = 'default') {
            //要你自定义的类库中访问CodeIgniter的原始资源,你必须使用 get_instance() 函数.这个函数返回一个CodeIgniter super object.
            $this->_ci = &get_instance();
            //记载memcache 缓存配置     //memcached 中的数据     

    /* memcahed.php 文件中的配置信息 CI框架中
    $config = array( //现在是单独的memcache 服务器 以后可以添加多个 只需要 mem 对象添加 addserver 'default' => array( 'hostname' => '127.0.0.1', 'port' => '11211', 'weight' => '1', //100分钟 'expire' => '6000', 'memcache_prefix'=>'', ), );      */ $this->_ci->config->load('memcached', FALSE, TRUE); //获取配置文件 $default_conf = $this->_ci->config->item('default'); $this->host = $default_conf['hostname']; $this->port = $default_conf['port']; $this->expire = $default_conf['expire']; $this->weight = $default_conf['weight']; $this->_memcache_prefix = $default_conf['memcache_prefix']; $this->connected_server = array(); $this->_connect(); } /** * 连接memcache 数据库 * @access private */ private function _connect() { if (function_exists('memcache_connect')) { $this->cache = new Memcache; $this->_connect_memcached(); } } /** * 添加memcache 服务器 * @access private */ private function _connect_memcached() { $error_display = ini_get('display_errors'); $error_reporting = ini_get('error_reporting'); if ($this->cache->addServer($this->host, $this->port, TRUE, $this->weight)) { $this->connected_server[] = $this->host; } ini_set('error_reporting', $error_reporting); } public function get($key) { if (empty($this->connected_server)) { return false; } return $this->cache->get($this->key_name($key)); } public function set($key, $data) { if (empty($this->connected_server)) { return false; } return $this->cache->set($this->key_name($key), $data, 0, $this->expire); } public function set_expire($key, $data, $expire) { if (empty($this->connected_server)) { return false; } return $this->cache->set($this->key_name($key), $data, 0, $expire); } public function replace($key, $data) { if (empty($this->connected_server)) { return false; } return $this->cache->replace($this->key_name($key), $data, 0, $this->expire); } public function delete($key, $when = 0) { if (empty($this->connected_server)) { return false; } return $this->cache->delete($this->key_name($key), $when); } public function flush() { return $this->cache->flush(); } /** * @Name: 生成md5加密后的唯一键值 * @param:$key key * @return : md5 string * */ private function key_name($key) { return md5(strtolower($this->_memcache_prefix . $key)); } }
  • 相关阅读:
    RavenScheme简介
    我终于理解了LISP『代码即数据|数据即代码』的含义
    汉编随想(一)
    SICP的一些练习题
    linux下Script小计
    vscode小计
    软硬连接区别
    find过滤大小执行操作
    pyqt5和qt designer安装
    pyenv和virtualenv结合使用管理多python环境
  • 原文地址:https://www.cnblogs.com/timelesszhuang/p/4741757.html
Copyright © 2011-2022 走看看