CI框架中redis缓存相关操作文件示例代码_php实例
本文实例讲述了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 = !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 */
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《php缓存技术总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Avec le développement de la technologie réseau, PHP est devenu l’un des outils importants pour le développement Web. L'un des frameworks PHP les plus populaires - CodeIgniter (ci-après dénommé CI) a également reçu de plus en plus d'attention et d'utilisation. Aujourd'hui, nous allons voir comment utiliser le framework CI. 1. Installez le framework CI Tout d'abord, nous devons télécharger le framework CI et l'installer. Téléchargez la dernière version du package compressé du framework CI sur le site officiel de CI (https://codeigniter.com/). Une fois le téléchargement terminé, décompressez

Conseils de développement PHP : Comment utiliser Redis pour mettre en cache les résultats des requêtes MySQL Introduction : Dans le processus de développement Web, la requête de base de données est l'une des opérations courantes. Cependant, des requêtes fréquentes dans la base de données peuvent entraîner des problèmes de performances et affecter la vitesse de chargement des pages Web. Afin d'améliorer l'efficacité des requêtes, nous pouvons utiliser Redis comme cache et placer les données fréquemment interrogées dans Redis, réduisant ainsi le nombre de requêtes vers MySQL et améliorant la vitesse de réponse des pages Web. Cet article présentera le développement de l'utilisation de Redis pour mettre en cache les résultats des requêtes MySQL.

PHP est un langage de programmation populaire largement utilisé dans le développement Web. Le framework CI (CodeIgniter) est l'un des frameworks les plus populaires de PHP. Il fournit un ensemble complet d'outils et de bibliothèques de fonctions prêts à l'emploi, ainsi que certains modèles de conception populaires, permettant aux développeurs de développer des applications Web plus efficacement. Cet article présentera les étapes et méthodes de base du développement d'applications PHP à l'aide du framework CI. Comprendre les concepts et les structures de base du cadre CI. Avant d'utiliser le cadre CI, nous devons comprendre certains concepts et structures de base. Vers le bas

Exploration de l'application de Redis dans l'Internet des objets À l'ère actuelle de développement rapide de l'Internet des objets (IoT), un grand nombre d'appareils sont connectés entre eux, nous fournissant de riches ressources de données. À mesure que l’application de l’Internet des objets se généralise, le traitement et le stockage de données à grande échelle sont devenus des problèmes urgents qui doivent être résolus. En tant que système de stockage de données en mémoire hautes performances, Redis possède d'excellentes capacités de traitement des données et une faible latence, apportant de nombreux avantages aux applications IoT. Redis est un open

PHP est un langage de script côté serveur largement utilisé, et CodeIgniter4 (CI4) est un framework PHP populaire qui offre un moyen rapide et excellent de créer des applications Web. Dans cet article, nous vous apprendrons à utiliser le framework CI4 pour développer des applications Web exceptionnelles en vous expliquant comment l'utiliser. 1. Téléchargez et installez CI4. Vous devez d'abord le télécharger depuis le site officiel (https://codeigniter.com/downloa

Avec le développement d'Internet et son intégration continue dans la vie des gens, le développement d'applications réseau est devenu de plus en plus important. En tant que langage de programmation bien connu, PHP est devenu l’un des langages privilégiés pour développer des applications Internet. Les développeurs peuvent utiliser de nombreux frameworks PHP pour simplifier le processus de développement, l'un des plus populaires étant le framework CodeIgniter (CI). CI est un puissant framework d'application Web PHP. Il présente les caractéristiques de légèreté, de facilité d'utilisation, de performances optimisées, etc., permettant aux développeurs de créer rapidement.

À mesure que la taille des applications continue de croître, le besoin en données augmente également. La mise en cache, en tant que moyen optimisé de lire et d’écrire des données, est devenue partie intégrante des applications modernes. En termes de sélection de cache, le cache mémoire intégré de Golang et le cache Redis sont des choix relativement courants. Cet article comparera et analysera les deux pour aider les lecteurs à faire un choix plus approprié. 1. La différence entre le cache mémoire et le cache Redis. La plus grande différence entre le cache mémoire et le cache Redis est la persistance des données.

Les étapes pour introduire les styles CSS dans le framework CI sont les suivantes : 1. Préparez les fichiers CSS ; 2. Stockez les fichiers CSS à l'emplacement approprié du projet de framework CI 3. Dans les pages qui doivent utiliser les styles CSS, introduisez CSS ; via le fichier de balise HTML <link> ; 4. Utilisez la classe CSS ou le nom de l'ID dans l'élément HTML pour appliquer le style correspondant.
