Maison  >  Article  >  cadre php  >  Utiliser Redis dans ThinkPHP6

Utiliser Redis dans ThinkPHP6

王林
王林original
2023-06-20 12:31:405271parcourir

Avec le développement de la technologie Internet, de plus en plus de sites Web et d'applications doivent gérer un grand nombre de requêtes simultanées et de stockage de données. Il devient donc de plus en plus important d'utiliser des solutions efficaces de mise en cache et de stockage des données. Redis est une base de données en mémoire hautes performances largement utilisée dans la mise en cache des données, la gestion de sessions et d'autres scénarios dans le domaine Internet. Cet article présente principalement comment utiliser Redis dans ThinkPHP6.

1. Installation et configuration de Redis

Tout d'abord, il existe deux façons d'installer Redis sur un système Windows L'une consiste à télécharger le package compressé Redis et à le décompresser, puis à démarrer le fichier exe, et l'autre consiste à l'utiliser. le gestionnaire de paquets Chocolatey pour l'installer.

Si vous avez déjà installé Chocolatey, vous pouvez utiliser la commande suivante pour installer Redis :

choco install redis-64

Une fois l'installation terminée, vous devez le configurer. Recherchez le fichier redis.windows.conf dans le répertoire d'installation de Redis et modifiez le bind et le mode protégé par la configuration suivante :

bind 0.0.0.0
protected-mode no

Cela permettra à Redis d'écouter toutes les adresses IP et de désactiver le mode protégé, ce qui facilite notre développement. et les tests.

2. Extension Redis dans ThinkPHP6

L'extension Redis de ThinkPHP6 est développée sur la base du package d'extension PHP predis. Vous devez ajouter les dépendances suivantes dans le fichier composer.json avant utilisation :

"predis/predis": "^1.1"

Ensuite, utilisez composer pour installer :

composer update

Installation Une fois terminé, créez le fichier de configuration redis.php dans le répertoire de configuration et ajoutez le contenu suivant :

return [
    'default' => [
        'host'     => '127.0.0.1',
        'port'     => 6379,
        'password' => '',
        'database' => 0,
        'prefix'   => '',
        'timeout'  => 5,
    ],
];

Les informations de connexion par défaut de Redis sont configurées ici, y compris l'adresse IP, le numéro de port, le mot de passe d'authentification, le numéro de base de données. , etc. du serveur Redis.

3. Utilisation de base de Redis

Dans ThinkPHP6, vous pouvez obtenir une instance Redis via le code suivant :

use thinkacadeCache;

$redis = Cache::store('redis')->handler();

Parmi eux, le pilote de cache est spécifié comme Redis via Cache::store, puis l'instance Redis est obtenue via la méthode du gestionnaire.

Ensuite, nous pouvons effectuer les opérations suivantes sur Redis.

3.1. Configuration et obtention du cache

// 设置缓存
$redis->set('name', 'Tom', 60);

// 获取缓存
$name = $redis->get('name');

Un cache nommé name est défini ici, la valeur est Tom et la période de validité est de 60 secondes. Ensuite, récupérez la valeur mise en cache via la méthode get.

3.2. Supprimer le cache

// 删除缓存
$redis->del('name');

Ici, le cache de noms est supprimé via la méthode del.

3.3. Déterminer si le cache existe

// 判断缓存是否存在
if ($redis->exists('name')) {
    echo '缓存存在';
} else {
    echo '缓存不存在';
}

Ici, nous utilisons la méthode exist pour déterminer si le cache de noms existe.

4. Applications avancées de Redis

En plus des opérations de mise en cache de base, Redis prend également en charge les opérations sur les types de données tels que les hachages, les listes, les ensembles et les ensembles ordonnés. Voici quelques applications avancées couramment utilisées.

4.1. Opération de table de hachage

// 设置哈希表
$redis->hset('user', 'name', 'Tom');
$redis->hset('user', 'age', 18);

// 获取哈希表
$user = $redis->hgetall('user');
$name = $redis->hget('user', 'name');
$age = $redis->hget('user', 'age');

Ici, une table de hachage nommée user est configurée via la méthode hset, qui contient deux champs : nom et âge. Obtenez ensuite les données de l'intégralité de la table de hachage via la méthode hgetall, et obtenez respectivement les valeurs des champs nom et âge via la méthode hget.

4.2. Opération de liste

// 添加列表元素
$redis->rpush('list', 'a');
$redis->rpush('list', 'b');
$redis->rpush('list', 'c');

// 获取列表元素
$list = $redis->lrange('list', 0, -1);

// 弹出列表元素
$value = $redis->lpop('list');

Ici, trois éléments a, b et c sont ajoutés à la liste nommée list via la méthode rpush, puis tous les éléments de la liste sont obtenus via la méthode lrange et le premier élément du La liste apparaît via la méthode lpop d'un élément.

4.3. Opération d'ensemble

// 添加集合元素
$redis->sadd('set', 'a');
$redis->sadd('set', 'b');
$redis->sadd('set', 'c');

// 获取集合元素
$set = $redis->smembers('set');

// 删除集合元素
$redis->srem('set', 'a');

Ici, trois éléments a, b et c sont ajoutés à l'ensemble nommé set via la méthode sadd, puis tous les éléments de l'ensemble sont obtenus via la méthode smembers, et un certain élément dans le set est supprimé via la méthode srem.

4.4.Opération d'ensemble ordonné

// 添加有序集合元素
$redis->zadd('zset', 60, 'a');
$redis->zadd('zset', 70, 'b');
$redis->zadd('zset', 80, 'c');

// 获取有序集合元素
$zset = $redis->zrange('zset', 0, -1);

// 修改有序集合分数
$redis->zincrby('zset', 10, 'a');

Ici, trois éléments a, b et c sont ajoutés à l'ensemble ordonné nommé zset via la méthode zadd. Les scores de chaque élément sont respectivement de 60, 70 et 80. Utilisez ensuite la méthode zrange pour obtenir tous les éléments de l'ensemble ordonné, en les triant en fonction de leurs scores de petit à grand. Enfin, le score d'un élément peut être augmenté ou diminué grâce à la méthode zincrby.

5. Résumé

Cet article explique comment utiliser Redis dans ThinkPHP6 et présente quelques applications de base et avancées de Redis. Grâce à ces opérations, vous pouvez améliorer les capacités de traitement simultané et les performances de stockage des données des sites Web et des applications, ainsi que l'expérience et la satisfaction des utilisateurs.

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