大佬教程收集整理的这篇文章主要介绍了CI框架中redis缓存相关操作文件示例代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了CI框架中redis缓存相关操作文件。分享给大家供大家参考,具体如下:
'ci\system\libraries\Cache\drivers\Cache_redis.PHP'
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: * @R_618_10107@://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. * * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (C) 2008 - 2014,EllisLab,Inc. (@R_618_10107@://ellislab.com/) * @license @R_618_10107@://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * @link @R_618_10107@://codeigniter.com * @since Version 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* @link */ class CI_Cache_redis extends CI_Driver { /** * Default config * * @static * @var array */ protected static $_default_config = array( /* 'socket_type' => 'tcp','host' => '127.0.0.1','password' => NULL,'port' => 6379,'timeout' => 0 */ ); /** * redis connection * * @var redis */ protected $_redis; /** * Get cache * * @param String like *$key* * @return array(hash) */ public function keys($key) { return $this->_redis->keys($key); } /** * Get cache * * @param String Cache ID * @return mixed */ public function get($key) { return $this->_redis->get($key); } /** * mGet cache * * @param array Cache ID Array * @return mixed */ public function mget($keys) { return $this->_redis->mget($keys); } /** * Save cache * * @param String $id Cache ID * @param mixed $data Data to save * @param int $ttl Time to live in seconds * @param bool $raw Whether to store the raw value (unused) * @return bool TRUE 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 * * @param String Cache key * @return bool */ public function delete($key) { return ($this->_redis->delete($key) === 1); } /** * hIncrBy a raw value * * @param String $id Cache ID * @param String $field Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hincrby($key,$field,$value = 1) { return $this->_redis->hIncrBy($key,$value); } /** * hIncrByFloat a raw value * * @param String $id Cache ID * @param String $field Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hincrbyfloat($key,$value = 1) { return $this->_redis->hIncrByFloat($key,$value); } /** * lpush a raw value * * @param String $key Cache ID * @param String $value value * @return mixed New value on success or falSE on failure */ public function lpush($key,$value) { return $this->_redis->lPush($key,$value); } /** * rpush a raw value * * @param String $key Cache ID * @param String $value value * @return mixed New value on success or falSE on failure */ public function rpush($key,$value) { return $this->_redis->rPush($key,$value); } /** * rpop a raw value * * @param String $key Cache ID * @param String $value value * @return mixed New value on success or falSE on failure */ public function rpop($key) { return $this->_redis->rPop($key); } /** * brpop a raw value * * @param String $key Cache ID * @param String $ontime 阻塞等待时间 * @return mixed New value on success or falSE on failure */ public function brpop($key,$ontime=0) { return $this->_redis->brPop($key,$ontimE); } /** * lLen a raw value * * @param String $key Cache ID * @return mixed Value on success or falSE on failure */ public function llen($key) { return $this->_redis->lLen($key); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New 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 * * @param String $key Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function incrby($key,$value = 1) { return $this->_redis->incrby($key,$value); } /** * set a value expire time * * @param String $key Cache ID * @param int $seconds expire seconds * @return mixed New value on success or falSE on failure */ public function expire($key,$seconds) { return $this->_redis->expire($key,$seconds); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hset($alias,$key,$value) { return $this->_redis->hset($alias,$value); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hget($alias,$key) { return $this->_redis->hget($alias,$key); } /** * Increment a raw value * * @param String $id Cache ID * @return mixed New value on success or falSE on failure */ public function hkeys($alias) { return $this->_redis->hkeys($alias); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hgetall($alias) { return $this->_redis->hgetall($alias); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hmget($alias,$key) { return $this->_redis->hmget($alias,$key); } /** * del a key value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hdel($alias,$key) { return $this->_redis->hdel($alias,$key); } /** * del a key value * * @param String $id Cache ID * @return mixed New value on success or falSE on failure */ public function hvals($alias) { return $this->_redis->hvals($alias); } /** * Increment a raw value * * @param String $id Cache ID * @param int $offset Step/value to add * @return mixed New value on success or falSE on failure */ public function hmset($alias,$array) { return $this->_redis->hmset($alias,$array); } /** * Decrement a raw value * * @param String $id Cache ID * @param int $offset Step/value to reduce by * @return mixed New 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 * * @return bool * @see redis::flushDB() */ public function clean() { return $this->_redis->flushDB(); } /** * Get cache driver info * * @param String Not supported in redis. * Only included in order to offer a * consistent cache API. * @return array * @see redis::info() */ public function cache_info($type = NULL) { return $this->_redis->info(); } /** * Get cache metadata * * @param String Cache key * @return array */ 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 * * @return bool */ 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. * * @return bool * @see redis::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. * * @return void */ public function __destruct() { if ($this->_redis) { $this->_redis->close(); } } } /* End of file Cache_redis.php */ /* LOCATIOn: ./system/libraries/Cache/drivers/Cache_redis.php */
以上是大佬教程为你收集整理的CI框架中redis缓存相关操作文件示例代码全部内容,希望文章能够帮你解决CI框架中redis缓存相关操作文件示例代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。