Table des matières
1. Obtenir les clés qui correspondent au modèle spécifié
2. 获取指定键对应的值
3. 设置键值
4. 匹配指定模式的全部键名
5. 正则表达式替换字符串值
Maison développement back-end tutoriel php Opération d'expression régulière Redis dans les applications PHP

Opération d'expression régulière Redis dans les applications PHP

May 16, 2023 pm 05:31 PM
redis php应用 正则表达式操作

Redis est un système de stockage clé-valeur hautes performances qui prend en charge une variété de structures de données, notamment des chaînes, des tables de hachage, des listes, des ensembles, des ensembles ordonnés, etc. Dans le même temps, Redis prend également en charge les opérations de correspondance et de remplacement d'expressions régulières sur les données de chaîne, ce qui le rend très flexible et pratique pour le développement d'applications PHP.

Pour utiliser Redis pour les opérations d'expression régulière dans les applications PHP, vous devez d'abord installer l'extension phpredis, qui fournit une API pour communiquer avec le serveur Redis. La méthode d'installation peut être réalisée en exécutant la commande suivante dans le terminal :

pecl install redis
Copier après la connexion

Une fois la configuration terminée, après avoir démarré le serveur Redis et l'application PHP, vous pouvez utiliser des expressions régulières pour faire fonctionner la base de données Redis. Voici cinq opérations d'expression régulière pour Redis.

1. Obtenir les clés qui correspondent au modèle spécifié

Commande Redis : KEYS patternKEYS pattern

该命令可以返回与指定模式匹配的所有键名。其中pattern模式可以包含以下特殊字符:

  • *: 匹配任意数量的字符
  • ?: 匹配任意单个字符
  • []: 匹配指定字符集中的任意一个字符

例如,以下命令可以用于获取所有以“user”开头的key:

$redis->keys('user*');
Copier après la connexion

2. 获取指定键对应的值

Redis命令:GET key

该命令返回指定键所对应的字符串值。如果键不存在,则返回nil。例如,以下命令可以用于获取名为“username”的键的值:

$value = $redis->get('username');
Copier après la connexion

3. 设置键值

Redis命令:SET key value [EX seconds] [PX milliseconds] [NX|XX]

该命令可以用于设置指定键的值。如果键已经存在,则会覆盖原来的值。其中,可选参数seconds和milliseconds表示键值的过期时间,单位分别为秒和毫秒。NX和XX是互斥的选项,在设置键值时指定NX选项表示只在键不存在时才进行设置,而指定XX选项则表示只在键已存在的情况下进行设置。

例如,以下命令可以用于设置名为“username”的键的值为“redis”,过期时间设置为600秒:

$redis->set('username', 'redis', 600);
Copier après la connexion

4. 匹配指定模式的全部键名

Redis命令:SCAN cursor [MATCH pattern] [COUNT count]

该命令用于迭代数据库中的所有键名,可选参数pattern和count与KEYS命令相同,可以用于匹配指定模式的键名和设置返回的键名数量。为了避免在一次操作中返回太多键名,该命令将迭代操作拆分成多次,在每次操作中返回一部分键名。每个键名返回时都会携带一个游标(cursor),此游标可用于在下一个迭代操作中作为参数传递给SCAN命令。

例如,以下命令可以用于获取所有以“user”开头的键名:

$cursor = 0;
$pattern = 'user*';
$keys = [];
do {
    $result = $redis->SCAN($cursor, 'MATCH '.$pattern);
    $cursor = $result[0];
    $keys = array_merge($keys, $result[1]);
} while ($cursor != 0);
Copier après la connexion

5. 正则表达式替换字符串值

Redis命令:EVAL script numkeys key [key ...] arg [arg ...]

Cette commande peut renvoyer tous les noms de clés qui correspondent au modèle spécifié. Le modèle de modèle peut inclure les caractères spéciaux suivants :

  • * : correspond à n'importe quel nombre de caractères
  • ? : correspond à n'importe quel caractère unique
  • [] : correspond au spécifié jeu de caractères N'importe quel caractère de

Par exemple, la commande suivante peut être utilisée pour obtenir toutes les clés commençant par "user":

local key = KEYS[1]
local pattern = ARGV[1]
local replacement = ARGV[2]
redis.call('SET', key, string.gsub(redis.call('GET', key), pattern, replacement))
Copier après la connexion

2. la clé spécifiée

Commande Redis : GET key

Cette commande renvoie la valeur de chaîne correspondant à la clé spécifiée. Si la clé n'existe pas, renvoie zéro. Par exemple, la commande suivante peut être utilisée pour obtenir la valeur d'une clé nommée « nom d'utilisateur » : 🎜
$redis->eval($script, ['username'], ["/%d+/", '']);
Copier après la connexion
🎜3. Définir la valeur de la clé 🎜🎜Commande Redis : SET key value [EX seconds] [PX milliseconds] [NX |XX] 🎜🎜Cette commande peut être utilisée pour définir la valeur de la clé spécifiée. Si la clé existe déjà, la valeur d'origine sera écrasée. Parmi eux, les paramètres facultatifs secondes et millisecondes représentent le délai d'expiration de la valeur clé, et les unités sont respectivement les secondes et les millisecondes. NX et XX sont des options mutuellement exclusives. Spécifier l'option NX lors de la définition d'une valeur de clé signifie qu'elle ne sera définie que si la clé n'existe pas, tandis que spécifier l'option XX signifie qu'elle ne sera définie que si la clé existe déjà. 🎜🎜Par exemple, la commande suivante peut être utilisée pour définir la valeur d'une clé nommée "username" sur "redis" et le délai d'expiration sur 600 secondes : 🎜rrreee🎜4. Tous les noms de clés correspondant au modèle spécifié 🎜🎜Commande Redis. : SCAN Cursor [MATCH pattern] [COUNT count]🎜🎜Cette commande est utilisée pour parcourir tous les noms de clés dans la base de données. Le modèle et le nombre de paramètres facultatifs sont les mêmes que la commande KEYS et peuvent être utilisés. pour correspondre aux noms de clé et aux paramètres du modèle spécifié. Le nombre de noms de clé renvoyés. Afin d'éviter de renvoyer trop de noms de clés en une seule opération, cette commande divise l'opération d'itération en plusieurs fois et renvoie une partie des noms de clés dans chaque opération. Chaque nom de clé est renvoyé avec un curseur, qui peut être transmis en tant que paramètre à la commande SCAN lors de l'opération d'itération suivante. 🎜🎜Par exemple, la commande suivante peut être utilisée pour obtenir tous les noms de clés commençant par "user": 🎜rrreee🎜5. Remplacement par expression régulière des valeurs de chaîne 🎜🎜Commande Redis : EVAL script numkeys key [key . ..] arg [arg ...]🎜🎜Cette commande peut exécuter un script Lua personnalisé et réaliser le remplacement par expression régulière des valeurs de chaîne via le script Lua. Parmi eux, le paramètre script est le code du script Lua, et la clé peut être un ou plusieurs noms de clé. Ces noms de clé peuvent être utilisés dans le script Lua pour obtenir et modifier les valeurs correspondantes. arg est un paramètre facultatif qui peut être utilisé pour transmettre d'autres paramètres au script Lua. 🎜🎜Ce qui suit est un exemple d'utilisation d'un script Lua pour implémenter le processus de remplacement : 🎜rrreee🎜Ce script peut être utilisé pour remplacer un contenu spécifique dans la valeur de chaîne par le nom de la clé. Les paramètres de modèle et de remplacement dans le script représentent respectivement les expressions régulières et les chaînes de remplacement. Utilisez la fonction string.gsub() pour effectuer des opérations de remplacement de chaîne. 🎜🎜Par exemple, la commande suivante peut être utilisée pour exécuter le script Lua ci-dessus et remplacer tous les chiffres de la valeur clé nommée "nom d'utilisateur" par "": 🎜rrreee

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Solution à l'erreur 0x80242008 lors de l'installation de Windows 11 10.0.22000.100 Solution à l'erreur 0x80242008 lors de l'installation de Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

1. Démarrez le menu [Démarrer], entrez [cmd], cliquez avec le bouton droit sur [Invite de commandes] et sélectionnez Exécuter en tant qu'[Administrateur]. 2. Entrez les commandes suivantes dans l'ordre (copiez et collez soigneusement) : SCconfigwuauservstart=auto, appuyez sur Entrée SCconfigbitsstart=auto, appuyez sur Entrée SCconfigcryptsvcstart=auto, appuyez sur Entrée SCconfigtrustedinstallerstart=auto, appuyez sur Entrée SCconfigwuauservtype=share, appuyez sur Entrée netstopwuauserv , appuyez sur Entrée netstopcryptS.

Analyser les goulots d'étranglement des fonctions PHP et améliorer l'efficacité de l'exécution Analyser les goulots d'étranglement des fonctions PHP et améliorer l'efficacité de l'exécution Apr 23, 2024 pm 03:42 PM

Les goulots d'étranglement des fonctions PHP entraînent de faibles performances, qui peuvent être résolues en suivant les étapes suivantes : localisez la fonction de goulot d'étranglement et utilisez des outils d'analyse des performances. Mise en cache des résultats pour réduire les recalculs. Traitez les tâches en parallèle pour améliorer l’efficacité de l’exécution. Optimisez la concaténation des chaînes, utilisez plutôt les fonctions intégrées. Utilisez des fonctions intégrées au lieu de fonctions personnalisées.

Stratégie de mise en cache et optimisation de l'API Golang Stratégie de mise en cache et optimisation de l'API Golang May 07, 2024 pm 02:12 PM

La stratégie de mise en cache dans GolangAPI peut améliorer les performances et réduire la charge du serveur. Les stratégies couramment utilisées sont : LRU, LFU, FIFO et TTL. Les techniques d'optimisation incluent la sélection du stockage de cache approprié, la mise en cache hiérarchique, la gestion des invalidations, ainsi que la surveillance et le réglage. Dans le cas pratique, le cache LRU est utilisé pour optimiser l'API pour obtenir des informations utilisateur à partir de la base de données. Les données peuvent être rapidement récupérées du cache. Sinon, le cache peut être mis à jour après l'avoir obtenu à partir de la base de données.

Lequel a les meilleures performances, erlang ou golang ? Lequel a les meilleures performances, erlang ou golang ? Apr 21, 2024 am 03:24 AM

Il existe des différences de performances entre Erlang et Go. Erlang excelle en termes de concurrence, tandis que Go offre un débit plus élevé et des performances réseau plus rapides. Erlang convient aux systèmes nécessitant une simultanéité élevée, tandis que Go convient aux systèmes nécessitant un débit élevé et une faible latence.

Mécanisme de mise en cache et pratique d'application dans le développement PHP Mécanisme de mise en cache et pratique d'application dans le développement PHP May 09, 2024 pm 01:30 PM

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

Comment utiliser le cache Redis dans la pagination des tableaux PHP ? Comment utiliser le cache Redis dans la pagination des tableaux PHP ? May 01, 2024 am 10:48 AM

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000_Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000 Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000_Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000 May 08, 2024 pm 05:10 PM

Vous devez d’abord définir la langue du système sur l’affichage chinois simplifié et redémarrer. Bien sûr, si vous avez déjà modifié la langue d'affichage en chinois simplifié, vous pouvez simplement ignorer cette étape. Ensuite, commencez à utiliser le registre, regedit.exe, accédez directement à HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dans la barre de navigation de gauche ou dans la barre d'adresse supérieure, puis modifiez la valeur de la clé InstallLanguage et la valeur de la clé par défaut sur 0804 (si vous souhaitez la changer en anglais en- nous, vous devez d'abord définir la langue d'affichage du système sur en-us, redémarrer le système, puis tout changer en 0409). Vous devez redémarrer le système à ce stade.

Navicat peut-il se connecter à Redis ? Navicat peut-il se connecter à Redis ? Apr 23, 2024 pm 05:12 PM

Oui, Navicat peut se connecter à Redis, ce qui permet aux utilisateurs de gérer les clés, d'afficher les valeurs, d'exécuter des commandes, de surveiller l'activité et de diagnostiquer les problèmes. Pour vous connecter à Redis, sélectionnez le type de connexion « Redis » dans Navicat et saisissez les détails du serveur.

See all articles