CI框架中redis缓存相关操作文件示例代码
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-06 10:47:04 浏览: 评论:0
这篇文章主要介绍了CI框架中redis缓存相关操作文件,结合完整示例演示了CI框架redis缓存相关操作技巧,需要的朋友可以参考下。
本文实例讲述了CI框架中redis缓存相关操作文件,分享给大家供大家参考,具体如下:
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.
- *
- * @package CodeIgniter
- * @author EllisLab Dev Team
- * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (http://ellislab.com/)
- * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
- * @link http://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 <anton@qvister.se>
- * @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, $field, $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, $field, $value = 1)
- {
- return $this->_redis->hIncrByFloat($key, $field, $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,$key, $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 = !emptyempty($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 */
Tags: CI框架 redis
相关文章
- ·CI(CodeIgniter)框架中的增删改查操作(2021-02-11)
- ·CI框架中libraries,helpers,hooks文件夹详细说明(2021-02-11)
- ·CI框架中zip类应用示例(2021-02-21)
- ·CI框架自动加载session出现报错的解决办法(2021-02-21)
- ·CI框架在CLI下执行占用内存过大问题的解决方法(2021-02-21)
- ·如何让CI框架支持service层(2021-04-19)
- ·CI框架安全类Security.php源码分析(2021-04-23)
- ·CI框架装载器Loader.php源码分析(2021-04-23)
- ·CI框架验证码CAPTCHA辅助函数用法实例(2021-04-24)
- ·CI框架入门示例之数据库取数据完整实现方法(2021-04-24)
- ·CI框架中cookie的操作方法分析(2021-05-03)
- ·CI框架中通过hook的方式实现简单的权限控制(2021-05-08)
- ·CI框架中数据库操作函数$this->db->where()相关用法总结(2021-08-06)
- ·CI框架集成Smarty的方法分析(2021-08-06)
- ·CI框架(CodeIgniter)操作redis的方法详解(2021-08-31)
- ·CI框架安全过滤函数示例(2021-10-05)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)