【ci框架】ci框架中中有关redis文件缓存相关的文件
来源:互联网 发布:c语言编程实例 编辑:程序博客网 时间:2024/05/19 21:40
一、redis缓存类文件:'ci\system\libraries\Cache\drivers\Cache_redis.php'
<?php/** * CodeIgniter * * An open source application development framework for PHP 5.2.4 or newer * * NOTICE OF LICENSE * * Licensed under the Open Software License version 3.0 * * This source file is subject to the Open Software License (OSL 3.0) that is * bundled with this package in the files license.txt / license.rst. It is * also available through the world wide web at this URL: * http://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to obtain it * through the world wide web, please send an email to * licensing@ellislab.com so we can send you a copy immediately. * * @packageCodeIgniter * @authorEllisLab Dev Team * @copyrightCopyright (c) 2008 - 2014, EllisLab, Inc. (http://ellislab.com/) * @licensehttp://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * @linkhttp://codeigniter.com * @sinceVersion 3.0 * @filesource */defined('BASEPATH') OR exit('No direct script access allowed');/** * CodeIgniter Redis Caching Class * * @package CodeIgniter * @subpackage Libraries * @category Core * @author Anton Lindqvist <anton@qvister.se> * @link */class CI_Cache_redis extends CI_Driver{/** * Default config * * @static * @vararray */protected static $_default_config = array( /*'socket_type' => 'tcp','host' => '127.0.0.1','password' => NULL,'port' => 6379,'timeout' => 0 */);/** * Redis connection * * @varRedis */protected $_redis; // ------------------------------------------------------------------------/** * Get cache * * @paramstringlike *$key* * @returnarray(hash) */public function keys($key){return $this->_redis->keys($key);}// ------------------------------------------------------------------------/** * Get cache * * @paramstringCache ID * @returnmixed */public function get($key){return $this->_redis->get($key);} // ------------------------------------------------------------------------ /** * mGet cache * * @paramarrayCache ID Array * @returnmixed */ public function mget($keys) { return $this->_redis->mget($keys); } // ------------------------------------------------------------------------/** * Save cache * * @paramstring$idCache ID * @parammixed$dataData to save * @paramint$ttlTime to live in seconds * @parambool$rawWhether to store the raw value (unused) * @returnboolTRUE on success, FALSE on failure */public function save($id, $data, $ttl = 60, $raw = FALSE){return ($ttl)? $this->_redis->setex($id, $ttl, $data): $this->_redis->set($id, $data);}// ------------------------------------------------------------------------/** * Delete from cache * * @paramstringCache key * @returnbool */public function delete($key){return ($this->_redis->delete($key) === 1);} /** * hIncrBy a raw value * * @paramstring$idCache ID * @paramstring$fieldCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */ public function hincrby($key, $field, $value = 1) { return $this->_redis->hIncrBy($key, $field, $value); } /** * hIncrByFloat a raw value * * @paramstring$idCache ID * @paramstring$fieldCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */ public function hincrbyfloat($key, $field, $value = 1) { return $this->_redis->hIncrByFloat($key, $field, $value); } /** * lpush a raw value * * @paramstring$keyCache ID * @paramstring$valuevalue * @returnmixedNew value on success or FALSE on failure */ public function lpush($key, $value) { return $this->_redis->lPush($key, $value); } /** * rpush a raw value * * @paramstring$keyCache ID * @paramstring$valuevalue * @returnmixedNew value on success or FALSE on failure */ public function rpush($key, $value) { return $this->_redis->rPush($key, $value); } /** * rpop a raw value * * @paramstring$keyCache ID * @paramstring$valuevalue * @returnmixedNew value on success or FALSE on failure */ public function rpop($key) { return $this->_redis->rPop($key); } /** * brpop a raw value * * @paramstring$keyCache ID * @paramstring$ontime阻塞等待时间 * @returnmixedNew value on success or FALSE on failure */ public function brpop($key,$ontime=0) { return $this->_redis->brPop($key,$ontime); } /** * lLen a raw value * * @paramstring$keyCache ID * @returnmixedValue on success or FALSE on failure */ public function llen($key) { return $this->_redis->lLen($key); }// ------------------------------------------------------------------------/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function increment($id, $offset = 1){return $this->_redis->exists($id)? $this->_redis->incr($id, $offset): FALSE;}// ------------------------------------------------------------------------ /** * incrby a raw value * * @paramstring$key Cache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */ public function incrby($key, $value = 1) { return$this->_redis->incrby($key, $value); } /** * set a value expire time * * @paramstring$key Cache ID * @paramint$seconds expire seconds * @returnmixedNew value on success or FALSE on failure */ public function expire($key, $seconds) { return $this->_redis->expire($key, $seconds); } // ------------------------------------------------------------------------/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function hset($alias,$key, $value){return$this->_redis->hset($alias,$key, $value);}// ------------------------------------------------------------------------/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function hget($alias,$key){return$this->_redis->hget($alias,$key);}// ------------------------------------------------------------------------ /** * Increment a raw value * * @paramstring$idCache ID * @returnmixedNew value on success or FALSE on failure */ public function hkeys($alias) { return$this->_redis->hkeys($alias); } // ------------------------------------------------------------------------/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function hgetall($alias){return$this->_redis->hgetall($alias);}/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function hmget($alias,$key){return$this->_redis->hmget($alias,$key);} /** * del a key value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */ public function hdel($alias,$key) { return$this->_redis->hdel($alias,$key); } /** * del a key value * * @paramstring$idCache ID * @returnmixedNew value on success or FALSE on failure */ public function hvals($alias) { return$this->_redis->hvals($alias); }/** * Increment a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to add * @returnmixedNew value on success or FALSE on failure */public function hmset($alias,$array){return$this->_redis->hmset($alias,$array);}// ------------------------------------------------------------------------/** * Decrement a raw value * * @paramstring$idCache ID * @paramint$offsetStep/value to reduce by * @returnmixedNew value on success or FALSE on failure */public function decrement($id, $offset = 1){return $this->_redis->exists($id)? $this->_redis->decr($id, $offset): FALSE;}// ------------------------------------------------------------------------/** * Clean cache * * @returnbool * @seeRedis::flushDB() */public function clean(){return $this->_redis->flushDB();}// ------------------------------------------------------------------------/** * Get cache driver info * * @paramstringNot supported in Redis. *Only included in order to offer a *consistent cache API. * @returnarray * @seeRedis::info() */public function cache_info($type = NULL){return $this->_redis->info();}// ------------------------------------------------------------------------/** * Get cache metadata * * @paramstringCache key * @returnarray */public function get_metadata($key){$value = $this->get($key);if ($value){return array('expire' => time() + $this->_redis->ttl($key),'data' => $value);}return FALSE;}// ------------------------------------------------------------------------/** * Check if Redis driver is supported * * @returnbool */public function is_supported(){if (extension_loaded('redis')){return $this->_setup_redis();}else{log_message('debug', 'The Redis extension must be loaded to use Redis cache.');return FALSE;}}// ------------------------------------------------------------------------/** * Setup Redis config and connection * * Loads Redis config file if present. Will halt execution * if a Redis connection can't be established. * * @returnbool * @seeRedis::connect() */protected function _setup_redis(){$config = array();$CI =& get_instance();if ($CI->config->load('redis', TRUE, TRUE)){$config += $CI->config->item('redis');}$config = array_merge(self::$_default_config, $config);$config = !empty($config['redis'])?$config['redis']:$config;$this->_redis = new Redis();try{if ($config['socket_type'] === 'unix'){$success = $this->_redis->connect($config['socket']);}else // tcp socket{$success = $this->_redis->connect($config['host'], $config['port'], $config['timeout']);}if ( ! $success){log_message('debug', 'Cache: Redis connection refused. Check the config.');return FALSE;}}catch (RedisException $e){log_message('debug', 'Cache: Redis connection refused ('.$e->getMessage().')');return FALSE;}if (isset($config['password'])){$this->_redis->auth($config['password']);}return TRUE;}// ------------------------------------------------------------------------/** * Class destructor * * Closes the connection to Redis if present. * * @returnvoid */public function __destruct(){if ($this->_redis){$this->_redis->close();}}}/* End of file Cache_redis.php *//* Location: ./system/libraries/Cache/drivers/Cache_redis.php */
0 0
- 【ci框架】ci框架中中有关redis文件缓存相关的文件
- 【ci框架】ci框架中中有关file文件缓存相关的文件
- 【ci框架】ci框架中中有关memcache文件缓存相关的文件
- ci框架下载文件
- CI框架文件上传
- CI框架文件结构
- 【ci框架】对CI框架中几个文件libraries,helpers,hooks夹说明
- CI框架(八)对CI框架中几个文件libraries,helpers,hooks夹说明
- 【ci框架】ci框架查询中join的使用
- php ci框架中加载css和js文件失败
- CI框架中使用PHPExcel导出Excel文件
- CI框架中使用PHPExcel导出Excel文件
- CI中添加redis缓存
- 【ci框架】CI中site_url()和base_url()的区别
- CI框架(九)CI中site_url()和base_url()的区别
- CI框架-导出csv文件
- CI框架文件上传类
- CI框架PHPExcel上传文件
- synchronized锁分析
- 深入Android【七】 —— 资源文件
- 惟我思存--学习笔记7.19
- Android 四大组件学习之Activity五
- CPPSockets开源发布!!
- 【ci框架】ci框架中中有关redis文件缓存相关的文件
- 12天学好C语言——记录我的C语言学习之路(Day 3)
- 黑马程序员_笔记总结(给自己看的向)
- 如何知道一个python对象的类型?
- 算法导论——分治法——最大子数组问题
- android APP性能数据收集
- Android序列化
- 循环06~~~10
- 深入Android【八】 —— Activity间数据传输