PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了CI框架中redis缓存相关操作文件示例代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了CI框架中redis缓存相关操作文件分享给大家供大家参,具体如下:

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,请注明来意。