Maison >développement back-end >tutoriel php >Index de base de données Redis dans l'application PHP

Index de base de données Redis dans l'application PHP

王林
王林original
2023-05-17 15:21:061027parcourir

Redis est une base de données en mémoire couramment utilisée dans divers langages et applications, y compris PHP. PHP est un langage de programmation Web largement utilisé. Lorsque les développeurs utilisent PHP pour écrire des applications Web, ils doivent souvent utiliser un stockage de données externe et accéder rapidement à ces données. Les capacités rapides de lecture et d'écriture de Redis en font un très bon choix. Cet article présentera l'utilisation de Redis dans les applications PHP et comment l'utiliser pour l'indexation de bases de données.

1. L'utilisation de Redis en PHP

L'utilisation de Redis en PHP peut être connectée via l'extension PECL redis ou des bibliothèques tierces telles que Predis. L'extension PECL redis peut être installée à l'aide de la commande "sudo pecl install redis" en PHP. Si vous ne pouvez pas utiliser l'extension PECL, vous pouvez utiliser des bibliothèques telles que Predis pour vous connecter à Redis.

L'utilisation de Redis permet de stocker et de lire des données rapidement. L'une des raisons en est que Redis stocke toutes les données en mémoire et que la vitesse d'accès à la mémoire est beaucoup plus rapide que la vitesse d'accès au disque. Redis prend également en charge le stockage de paires clé/valeur, afin que vous puissiez interroger rapidement les données requises via des mots-clés.

2. Index de données Redis en PHP

Dans les applications PHP, une base de données doit être utilisée pour stocker et gérer les données. La raison pour laquelle une base de données est appelée « entrepôt de données » est qu’elle fournit une structure adaptée au stockage et à la gestion des données. Lorsque nous avons besoin d’accéder rapidement à certaines données, le meilleur moyen est d’utiliser des index. Dans les bases de données relationnelles, les structures de données telles que les arbres B+ peuvent généralement être utilisées pour implémenter des index, tandis que pour les bases de données non relationnelles, Redis peut être utilisé pour implémenter des index.

Redis peut stocker d'énormes tables de hachage en mémoire, elle peut donc être utilisée pour stocker et indexer des données. Deux méthodes couramment utilisées sont présentées ci-dessous.

  1. Utilisation de la structure de données Hash de Redis

La structure de données Hash dans Redis est une collection de paires clé/valeur, qui est très similaire à un tableau en PHP. L'indexation peut être implémentée dans les applications PHP en utilisant la structure de données Hash dans Redis. Stockez simplement les données qui doivent être interrogées rapidement dans une table de hachage, puis utilisez des mots-clés pour les interroger. Par exemple, le code PHP suivant stockera une table de hachage :

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$user = [
    'name' => 'Zhang San',
    'age' => 23,
    'sex' => 'Male'
];

$redis->hMSet('user:1', $user);

Le code ci-dessus téléchargera une table de hachage de "user:1". Parmi eux, le nom, l’âge et le sexe sont des attributs correspondant chacun à une valeur. Dans l'exemple ci-dessus, nous stockons un utilisateur nommé "Zhang San" et définissons son âge sur 23 ans et son sexe sur masculin. Toutes les propriétés et valeurs sont stockées dans $redis->hMSet(). Ensuite, si vous avez besoin de trouver un utilisateur spécifique, utilisez simplement le code suivant :

$result = $redis->hGetAll('user:1');

Le code PHP ci-dessus obtiendra tous les éléments de la table de hachage nommée "user:1". Nous pouvons également obtenir une valeur unique basée sur un attribut, par exemple :

$name = $redis->hGet('user:1', 'name');

Le code PHP ci-dessus obtiendra la valeur de l'attribut nommé 'name' dans la table de hachage nommée "user:1".

  1. Utilisation de la structure de données d'ensemble trié de Redis

La structure de données d'ensemble trié de Redis est différente d'une table de hachage dans la mesure où elle stocke les données sous la forme d'un ensemble de paires valeur/score. Les données peuvent être triées en fonction du score et, comme la collection est triable, elle peut être utilisée pour implémenter des index.

Par exemple, supposons que nous ayons un ensemble de fichiers image, chaque image a un nom et un horodatage, nous pouvons utiliser une collection ordonnée pour stocker ces fichiers image. Voici un exemple de code PHP :

$file1 = [
    'name' => 'image1.jpg',
    'date' => '2022-01-01'
];

$file2 = [
    'name' => 'image2.jpg',
    'date' => '2022-01-02'
];

$redis->zAdd('files', 1, json_encode($file1));
$redis->zAdd('files', 2, json_encode($file2));

Le code ci-dessus téléchargera une collection ordonnée appelée "files" et ajoutera "image1.jpg" et "image2.jpg" à la collection. Chaque fichier est représenté sous la forme d'une chaîne JSON avec un score attaché, le fichier « fichier2 » a un score plus élevé que « fichier1 ».

Nous pouvons obtenir rapidement des fichiers image basés sur des horodatages ou des scores, par exemple :

$results = $redis->zRevRangeByScore('files', '+inf', '-inf', array('withscores' => TRUE, 'limit' => array(0, 100)));

Le code PHP ci-dessus obtiendra une liste de tous les fichiers dans "fichiers". Utilisez zRevRangeByScore pour obtenir une liste de fichiers basée sur le score.

3. Résumé

Redis a les caractéristiques d'une lecture et d'une écriture rapides, d'un stockage efficace et d'une prise en charge des paires clé/valeur. Si vous avez besoin de stocker et d'accéder rapidement à des données dans votre application PHP, Redis est sans aucun doute un bon choix. De plus, Redis prend en charge les structures de données telles que les tables de hachage et les ensembles ordonnés, qui peuvent être utilisées pour implémenter des index dans les applications PHP. Lors du développement d'applications PHP, si vous avez besoin d'accéder rapidement aux données, il est recommandé d'utiliser Redis pour implémenter l'indexation.

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