Maison  >  Article  >  développement back-end  >  Comment utiliser Redis dans le framework PHP CodeIgniter

Comment utiliser Redis dans le framework PHP CodeIgniter

不言
不言original
2018-04-14 11:13:231884parcourir

Cet article présente principalement la méthode d'utilisation de redis dans le framework PHP CodeIgniter. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

. Cet article décrit comment le framework PHP CodeIgniter utilise redis. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Installer redis

Tout d'abord, le service redis (base de données redis) doit être installé et exécuté sur l'ordinateur. Pour plus de détails, consultez un autre article : http://www.jb51.net/article/138173.htm

. 2. Installer phpredis

① Télécharger

Adresse du projet : https://github.com/phpredis/phpredis (vous pouvez l'ignorer). Il est mentionné ici que la version Windows de phpredis doit être compilée par vous-même. Bien sûr, nous ne pouvons pas être aussi imprudents.

Laissez-moi parler des détours que j'ai faits. Je l'ai téléchargé depuis http://windows.php.net/downloads/pecl/snaps/redis/20160319/ (vous pouvez l'ignorer), mais je n'ai jamais réussi à le réparer. . En fait, ce vc14 est Pour la version 7.0 de php, ce dont nous avons besoin c'est la version 7.1, donc c'est toujours faux et nous ne pouvons pas trouver le problème tant que nous n'avons pas trouvé ceci :

. http://pecl.php.net/package-stats.php

Cliquez sur la version correspondante :

http://pecl.php.net/package/redis/3.1.1/windows

Téléchargez la version correspondant à 7.1.

②Installation

Placez le php_redis.dll téléchargé et décompressé dans l'ext de l'interpréteur PHP. Vous constaterez que mysql et d'autres modules sont également placés ici. Ensuite, ouvrez le php.ini, recherchez ;extension=php_bz2.dll et ajoutez , extension=php_redis.dll

Autrement dit, ajoutez la configuration Redis en tête de la zone de configuration de l'extension. L'installation est terminée.

③ Afficher les informations de configuration

Redémarrez le serveur ou redémarrez l'ordinateur, ajoutez une page d'affichage : phpinfo.php sous le chemin d'index.php, et ajoutez-y :

<?php
 echo phpinfo();
?>

Ensuite, visitez

http://yourdomain.com/phpinfo.php Vous pouvez voir les informations de configuration et rechercher des informations indiquant si Redis a été configuré avec succès. Si tel est le cas, la configuration est terminée.

3. Utiliser Redis de manière native PHP

// 原生redis类库,不需要config/redis.php
$redis = new Redis();
$redis->connect(&#39;127.0.0.1&#39;,6379);
//$redis->set(&#39;key10&#39;,&#39;xx10&#39;,20);//第三个参数是存续时间,单位是秒,如果不填则为永久
echo $redis->get(&#39;key10&#39;);

4. Configurez redis.php

Créez le fichier redis.php sous myApplication/config :

<?php
defined(&#39;BASEPATH&#39;) OR exit(&#39;No direct script access allowed&#39;);
/**
 * Created by PhpStorm.
 * Date: 2017/2/9
 * Time: 13:32
 */
$config[&#39;socket_type&#39;] = &#39;tcp&#39;;
$config[&#39;host&#39;] = &#39;127.0.0.1&#39;;
$config[&#39;password&#39;] = NULL;
$config[&#39;port&#39;] = 6379;
$config[&#39;timeout&#39;] = 0;
?>

Ce fichier de configuration est requis que vous utilisiez la bibliothèque redis du framework ou la bibliothèque redis personnalisée ci-dessous.

En plus de configurer redis.php, vous devez également configurer

Le type de cache que nous utilisons est configuré dans application/config/config.php. La valeur par défaut est la suivante :

$config[&#39;sess_driver&#39;] = &#39;files&#39;;
$config[&#39;sess_cookie_name&#39;] = &#39;ci_session&#39;;
$config[&#39;sess_expiration&#39;] = 7200;
$config[&#39;sess_save_path&#39;] = NULL;
$config[&#39;sess_match_ip&#39;] = FALSE;
$config[&#39;sess_time_to_update&#39;] = 300;
$config[&#39;sess_regenerate_destroy&#39;] = FALSE;

. Si nous utilisons Redis, alors nous devons le configurer comme ceci :

$config[&#39;sess_driver&#39;] = &#39;redis&#39;;
$config[&#39;sess_cookie_name&#39;] = &#39;ci_session&#39;;
$config[&#39;sess_expiration&#39;] = 0;
$config[&#39;sess_save_path&#39;] = &#39;tcp://127.0.0.1:xxxx&#39;;
$config[&#39;sess_match_ip&#39;] = FALSE;
$config[&#39;sess_time_to_update&#39;] = 600;
$config[&#39;sess_regenerate_destroy&#39;] = TRUE;

5. Utilisation de la bibliothèque redis du framework CI

// 框架的redis库
$this->load->driver(&#39;cache&#39;);
$this->cache->redis->save(&#39;key11&#39;,&#39;xx11&#39;);//这里注意,第三个参数是时间,在自定义redis库会说明
echo $this->cache->redis->get(&#39;key11&#39;);

6. Utiliser la bibliothèque de classes Redis personnalisée

① Rediscli_default.php

La bibliothèque de classes Redis personnalisée peut être copiée depuis system/libraries/Cache/drivers/Cache_redis.php et renommée Rediscli_default.php. Le nom de la classe est également modifié en Rediscli_default. À part cela, aucune modification n'est nécessaire. . Placez-le sous myApplication/libraries/Rediscli/drivers/

② Rediscli.php

Créez un Rediscli.php sous myApplication/libraries/Rediscli/

<?php
defined ( &#39;BASEPATH&#39; ) or exit ( &#39;No direct script access allowed&#39; );
/**
 * Created by PhpStorm.
 * Date: 2017/2/9
 * Time: 20:00
 */
class Rediscli extends CI_Driver_Library {
 public $valid_drivers;
 public $CI;
 function __construct() {
  $this->CI = & get_instance ();
  $this->valid_drivers = array (
   &#39;default&#39;
  );
 }
}

③ Appeler

// 自定义类,需要配置
$this->load->driver(&#39;rediscli&#39;);
if ($this->rediscli->default->is_supported())
{
 echo $this->rediscli->default->get(&#39;key2&#39;);
}

④ Heure

Cette bibliothèque Redis personnalisée est la même que la bibliothèque framework, nous nous concentrerons donc sur elle ici.

$this->cache->redis->save(&#39;key11&#39;,&#39;xx11&#39;,1000);

Il s'agit de la valeur enregistrée. Le troisième paramètre est l'heure, qui ne peut être omise. En regardant la fonction, vous pouvez voir que la valeur par défaut de ce paramètre est de 60 secondes, non permanente, ce paramètre ne peut donc pas être omis.

7. Faites attention à cette situation

// 文本存储
$this->load->driver(&#39;cache&#39;,array(&#39;adapter&#39;=>&#39;redis&#39;,&#39;backup&#39;=>&#39;file&#39;));
$this->cache->save(&#39;key5&#39;,&#39;xx5&#39;,10000);
echo $this->cache->get(&#39;key5&#39;);//xx5

La signification de ce code est d'utiliser redis pour le stocker en premier, et s'il n'est pas trouvé, d'utiliser le stockage de texte. Vous constaterez que les fichiers texte sont stockés dans myApplication/cache et que chaque clé aura un texte.

Aucune erreur n'étant signalée, vous ne saurez peut-être pas où se trouvent ces données pendant un certain temps.

Il est préférable de l'utiliser moins souvent. Après tout, Redis est utilisé pour une vitesse plus rapide.

Recommandations associées :

Comment installer et utiliser le framework PHP slim

exemple de code de réécriture de routage Yaf du framework PHP


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn