Rumah hujung hadapan web tutorial js CI框架中redis缓存相关操作文件示例代码_php实例

CI框架中redis缓存相关操作文件示例代码_php实例

Jun 07, 2016 pm 05:07 PM
rangka kerja ci cache redis

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

redis缓存类文件位置:

'ci\system\libraries\Cache\drivers\Cache_redis.php'

<&#63;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)
      &#63; $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)
      &#63; $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)
      &#63; $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'])&#63;$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 */

Salin selepas log masuk

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《php缓存技术总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan rangka kerja CI dalam php? Bagaimana untuk menggunakan rangka kerja CI dalam php? Jun 01, 2023 am 08:48 AM

Dengan perkembangan teknologi rangkaian, PHP telah menjadi salah satu alat penting untuk pembangunan web. Salah satu rangka kerja PHP yang popular - CodeIgniter (selepas ini dirujuk sebagai CI) juga telah menerima lebih banyak perhatian dan penggunaan. Hari ini, kita akan melihat cara menggunakan rangka kerja CI. 1. Pasang rangka kerja CI Mula-mula, kita perlu memuat turun rangka kerja CI dan memasangnya. Muat turun versi terkini pakej termampat rangka kerja CI dari tapak web rasmi CI (https://codeigniter.com/). Selepas muat turun selesai, nyahzip

Petua pembangunan PHP: Cara menggunakan Redis untuk cache hasil pertanyaan MySQL Petua pembangunan PHP: Cara menggunakan Redis untuk cache hasil pertanyaan MySQL Jul 02, 2023 pm 03:30 PM

Petua pembangunan PHP: Cara menggunakan Redis untuk cache hasil pertanyaan MySQL Pengenalan: Dalam proses pembangunan web, pertanyaan pangkalan data adalah salah satu operasi biasa. Walau bagaimanapun, pertanyaan pangkalan data yang kerap boleh menyebabkan masalah prestasi dan menjejaskan kelajuan pemuatan halaman web. Untuk meningkatkan kecekapan pertanyaan, kami boleh menggunakan Redis sebagai cache dan meletakkan data yang sering ditanya ke dalam Redis, dengan itu mengurangkan bilangan pertanyaan kepada MySQL dan meningkatkan kelajuan tindak balas halaman web. Artikel ini akan memperkenalkan pembangunan cara menggunakan Redis untuk cache hasil pertanyaan MySQL.

Cara menggunakan rangka kerja CI dalam PHP Cara menggunakan rangka kerja CI dalam PHP Jun 27, 2023 pm 04:51 PM

PHP adalah bahasa pengaturcaraan popular yang digunakan secara meluas dalam pembangunan web. Rangka kerja CI (CodeIgniter) ialah salah satu rangka kerja yang paling popular dalam PHP Ia menyediakan satu set lengkap alatan dan perpustakaan fungsi sedia, serta beberapa corak reka bentuk yang popular, membolehkan pembangun membangunkan aplikasi Web dengan lebih cekap. Artikel ini akan memperkenalkan langkah dan kaedah asas untuk membangunkan aplikasi PHP menggunakan rangka kerja CI. Fahami konsep asas dan struktur rangka kerja CI Sebelum menggunakan rangka kerja CI, kita perlu memahami beberapa konsep dan struktur asas. Bawah

Penerokaan aplikasi Redis dalam Internet Perkara Penerokaan aplikasi Redis dalam Internet Perkara Nov 07, 2023 am 11:36 AM

Penerokaan aplikasi Redis dalam Internet Perkara Dalam era perkembangan pesat Internet Perkara (IoT) hari ini, sejumlah besar peranti disambungkan bersama, memberikan kami sumber data yang kaya. Apabila aplikasi Internet Perkara menjadi semakin meluas, pemprosesan dan penyimpanan data berskala besar telah menjadi masalah mendesak yang perlu diselesaikan. Sebagai sistem penyimpanan data memori berprestasi tinggi, Redis mempunyai keupayaan pemprosesan data yang sangat baik dan kependaman rendah, membawa banyak kelebihan kepada aplikasi IoT. Redis adalah terbuka

Bagaimana untuk menggunakan rangka kerja CI4 dalam php? Bagaimana untuk menggunakan rangka kerja CI4 dalam php? Jun 01, 2023 pm 02:40 PM

PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas, dan CodeIgniter4 (CI4) ialah rangka kerja PHP popular yang menyediakan cara yang pantas dan terbaik untuk membina aplikasi web. Dalam artikel ini, kami akan membantu anda mula menggunakan rangka kerja CI4 untuk membangunkan aplikasi web yang cemerlang dengan membimbing anda melalui cara menggunakannya. 1. Muat turun dan pasang CI4 Mula-mula, anda perlu memuat turunnya dari tapak web rasmi (https://codeigniter.com/downloa

Analisis perbezaan dan kelebihan dan kekurangan cache memori dan cache Redis di Golang. Analisis perbezaan dan kelebihan dan kekurangan cache memori dan cache Redis di Golang. Jun 19, 2023 pm 09:28 PM

Apabila aplikasi terus berkembang dalam saiz, begitu juga keperluan untuk data. Caching, sebagai cara yang dioptimumkan untuk membaca dan menulis data, telah menjadi bahagian penting dalam aplikasi moden. Dari segi pemilihan cache, cache memori terbina dalam Golang dan cache Redis adalah pilihan yang agak biasa. Artikel ini akan membandingkan dan menganalisis kedua-duanya untuk membantu pembaca membuat pilihan yang lebih sesuai. 1. Perbezaan antara cache memori dan cache Redis Perbezaan terbesar antara cache memori dan cache Redis ialah kegigihan data.

Panduan kepada rangka kerja CI dalam PHP Panduan kepada rangka kerja CI dalam PHP May 22, 2023 pm 07:10 PM

Dengan perkembangan Internet dan penyepaduan berterusannya ke dalam kehidupan orang ramai, pembangunan aplikasi rangkaian menjadi semakin penting. Sebagai bahasa pengaturcaraan yang terkenal, PHP telah menjadi salah satu bahasa pilihan untuk membangunkan aplikasi Internet. Pembangun boleh menggunakan pelbagai rangka kerja PHP untuk memudahkan proses pembangunan, salah satu yang paling popular ialah rangka kerja CodeIgniter (CI). CI ialah rangka kerja aplikasi web PHP yang berkuasa Ia mempunyai ciri-ciri ringan, mudah digunakan, prestasi dioptimumkan, dsb., membolehkan pembangun membina dengan cepat

Bagaimana untuk memperkenalkan css ke dalam rangka kerja ci Bagaimana untuk memperkenalkan css ke dalam rangka kerja ci Dec 26, 2023 pm 05:20 PM

Langkah-langkah untuk memperkenalkan gaya CSS ke dalam rangka kerja CI adalah seperti berikut: 1. Sediakan fail CSS 2. Simpan fail CSS di lokasi projek rangka kerja CI yang sesuai 3. Dalam halaman yang perlu menggunakan gaya CSS, perkenalkan CSS; melalui teg HTML <link> Fail 4. Gunakan kelas CSS atau nama ID dalam elemen HTML untuk menggunakan gaya yang sepadan.

See all articles