Maison développement back-end Tutoriel C#.Net Tutoriel Redis (7) : Explication détaillée des commandes de fonctionnement des touches

Tutoriel Redis (7) : Explication détaillée des commandes de fonctionnement des touches

Dec 28, 2016 pm 02:55 PM
key redis

1. Présentation :

Dans les premiers blogs de cette série, nous avons principalement parlé des commandes liées aux types de données Redis, telles que String, List, Set, Hashes et Sorted-Set. Ces commandes ont toutes un point commun : toutes les opérations sont effectuées sur la Valeur associée à la Clé. Ce blog se concentrera sur les commandes Redis liées aux clés. L'apprentissage de ces commandes est une base très importante pour apprendre Redis, et c'est également un outil puissant pour exploiter pleinement le potentiel de Redis.
Dans ce blog, nous donnerons, comme toujours, une liste détaillée et des exemples typiques de toutes les commandes associées pour faciliter notre apprentissage actuel et notre référence future.

2. Liste des commandes associées :


Prototype de commande Complexité temporelle Description de la commande Valeur de retour
Modèle KEYS O(N) Le N dans la complexité temporelle représente le nombre de clés dans la base de données. Obtenez toutes les clés correspondant au paramètre de motif. Il convient de noter que nous devrions essayer d'éviter d'appeler cette commande dans nos opérations normales, car pour les bases de données volumineuses, cette commande prend beaucoup de temps et a un impact relativement important sur les performances du serveur Redis. Le modèle prend en charge le format générique de style global, tel que * représentant un ou plusieurs caractères, ? représentant n'importe quel caractère, [abc] représentant n'importe quelle lettre entre crochets liste de touches correspondant au modèle.
DEL key [key ...] O(N) Le N dans la complexité temporelle représente le nombre de clés supprimées. Supprimez les clés spécifiées dans les paramètres de la base de données. Si la clé spécifiée n'existe pas, elle sera ignorée. Il convient également de souligner que si le type de données associé à la clé spécifiée n'est pas un type String, mais un type de conteneur tel que List, Set, Hashes et Sorted Set, la complexité temporelle de cette commande pour supprimer chaque clé est O (M), où M représente le nombre d'éléments dans le conteneur. Pour Key de type String, sa complexité temporelle est O(1). Le nombre réel de clés supprimées.
Clé EXISTE O(1) Détermine si la clé spécifiée existe. 1 signifie existence, 0 signifie ne pas exister.
MOVE key db O(1) Déplacez la clé Key spécifiée dans la base de données actuelle vers la base de données spécifiée dans le paramètre. Si la clé existe déjà dans la base de données cible ou n'existe pas dans la base de données actuelle, cette commande ne fera rien et renverra 0. Renvoie 1 si le déplacement est réussi, sinon 0.
RENAME key newkey O(1) Renommer la clé spécifiée si les commandes des deux clés dans les paramètres sont les mêmes, Ou la clé source n'existe pas, cette commande renverra des informations d'erreur pertinentes. Si newKey existe déjà, elle sera directement écrasée.
RENAMENX key newkey O(1) Si la nouvelle valeur n'existe pas, modifiez la valeur d'origine dans le paramètre par la nouvelle valeur . D'autres conditions sont compatibles avec RENAME. 1 signifie que la modification est réussie, sinon 0.
Clé PERSIST O(1) Si la clé a un délai d'expiration, cette commande éliminera son délai d'expiration afin que la clé il n'y a plus de délais d'attente, mais un stockage persistant est possible. 1 signifie que le délai d'expiration de la clé a été supprimé, 0 signifie que la clé n'existe pas ou n'a pas de délai d'expiration
EXPIRE les secondes de la clé O(1) Cette commande définit le délai d'expiration en secondes pour la clé spécifiée dans le paramètre. Une fois ce délai dépassé, la clé est automatiquement supprimée. Si la clé est modifiée avant l'expiration du délai d'attente, le délai d'attente associé à la clé sera supprimé. 1 signifie que le délai d'attente est défini, 0 signifie que la clé n'existe pas ou ne peut pas être définie.
Horodatage de la touche EXPIREAT O(1) La fonction logique de cette commande est exactement la même que EXPIRE, la seule différence est le délai d'attente spécifié par cette commande Le temps est le temps absolu et non le temps relatif. Le paramètre time est au format d'horodatage Unix, qui correspond au nombre de secondes écoulées depuis le 1er janvier 1970. 1 signifie que le délai d'attente est défini, 0 signifie que la clé n'existe pas ou ne peut pas être définie.
Touche TTL O(1) Obtenir la description du délai d'attente restant de la clé. Renvoie la description restante, ou -1 si la clé n'existe pas ou n'a pas de délai d'attente défini.
RANDOMKEY O(1) Renvoie une clé aléatoire de la base de données actuellement ouverte. La clé aléatoire renvoyée, ou nulle si la base de données est vide.
TYPE key O(1) Obtenir le type de valeur associé à la clé spécifiée dans le paramètre La commande le renverra dans. format de chaîne. Les chaînes renvoyées sont string, list, set, hash et zset Si la clé n'existe pas, renvoyez aucune
SORT key [BY pattern] [LIMIT offset. count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] O(N M*log(M)) Cette commande est relativement C'est relativement compliqué, nous ne donnons donc ici que l'utilisation la plus élémentaire. Les internautes intéressés peuvent se référer à la documentation officielle de redis. Renvoie la liste triée d'origine.

3. Exemples de commandes :

1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX :

    #在Shell命令行下启动Redis客户端工具。
    /> redis-cli
    #清空当前选择的数据库,以便于对后面示例的理解。
    redis 127.0.0.1:6379> flushdb
    OK
    #添加String类型的模拟数据。
    redis 127.0.0.1:6379> set mykey 2
    OK
    redis 127.0.0.1:6379> set mykey2 "hello"
    OK
    #添加Set类型的模拟数据。
    redis 127.0.0.1:6379> sadd mysetkey 1 2 3
    (integer) 3
    #添加Hash类型的模拟数据。
    redis 127.0.0.1:6379> hset mmtest username "stephen"
    (integer) 1
    #根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。
    redis 127.0.0.1:6379> keys my*
    1) "mysetkey"
    2) "mykey"
    3) "mykey2"
    #删除了两个Keys。
    redis 127.0.0.1:6379> del mykey mykey2
    (integer) 2
    #查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。
    redis 127.0.0.1:6379> exists mykey
    (integer) 0
    #查看一下没有删除的Key,以和上面的命令结果进行比较。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 1
    #将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。
    redis 127.0.0.1:6379> move mysetkey 1
    (integer) 1
    #打开ID为1的数据库。
    redis 127.0.0.1:6379> select 1
    OK
    #查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。
    redis 127.0.0.1:6379[1]> exists mysetkey
    (integer) 1
    #在重新打开ID为0的缺省数据库。
    redis 127.0.0.1:6379[1]> select 0
    OK
    #查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 0
    #准备新的测试数据。    
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将mykey改名为mykey1
    redis 127.0.0.1:6379> rename mykey mykey1
    OK
    #由于mykey已经被重新命名,再次获取将返回nil。
    redis 127.0.0.1:6379> get mykey
    (nil)
    #通过新的键名获取。
    redis 127.0.0.1:6379> get mykey1
    "hello"
    #由于mykey已经不存在了,所以返回错误信息。
    redis 127.0.0.1:6379> rename mykey mykey1
    (error) ERR no such key
    #为renamenx准备测试key
    redis 127.0.0.1:6379> set oldkey "hello"
    OK
    redis 127.0.0.1:6379> set newkey "world"
    OK
    #由于newkey已经存在,因此该命令未能成功执行。
    redis 127.0.0.1:6379> renamenx oldkey newkey
    (integer) 0
    #查看newkey的值,发现它也没有被renamenx覆盖。
    redis 127.0.0.1:6379> get newkey
    "world"
Copier après la connexion

2. . PERSIST/EXPIRE/EXPIREAT/TTL :

#为后面的示例准备的测试数据。
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将该键的超时设置为100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #通过ttl命令查看一下还剩下多少秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 97
    #立刻执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。
    redis 127.0.0.1:6379> persist mykey
    (integer) 1
    #ttl的返回值告诉我们,该键已经没有超时了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1
    #为后面的expire命令准备数据。
    redis 127.0.0.1:6379> del mykey
    (integer) 1
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #设置该键的超时被100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 96
    #重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。
    redis 127.0.0.1:6379> expire mykey 20
    (integer) 1
    #再用ttl确认一下,从结果中可以看出果然被更新了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 17
    #立刻更新该键的值,以使其超时无效。
    redis 127.0.0.1:6379> set mykey "world"
    OK
    #从ttl的结果可以看出,在上一条修改该键的命令执行后,该键的超时也无效了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1
Copier après la connexion

3. TYPE/RANDOMKEY/SORT :

#由于mm键在数据库中不存在,因此该命令返回none。
    redis 127.0.0.1:6379> type mm
    none
    #mykey的值是字符串类型,因此返回string。
    redis 127.0.0.1:6379> type mykey
    string
    #准备一个值是set类型的键。
    redis 127.0.0.1:6379> sadd mysetkey 1 2
    (integer) 2
    #mysetkey的键是set,因此返回字符串set。
    redis 127.0.0.1:6379> type mysetkey
    set
    #返回数据库中的任意键。
    redis 127.0.0.1:6379> randomkey
    "oldkey"
    #清空当前打开的数据库。
    redis 127.0.0.1:6379> flushdb
    OK
    #由于没有数据了,因此返回nil。
    redis 127.0.0.1:6379> randomkey
    (nil)
Copier après la connexion

Ce qui précède est le tutoriel Redis (7) : Explication détaillée. des commandes d'utilisation des touches Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Comment construire le mode Cluster Redis Comment construire le mode Cluster Redis Apr 10, 2025 pm 10:15 PM

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Comment utiliser la commande redis Comment utiliser la commande redis Apr 10, 2025 pm 08:45 PM

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Comment effacer les données redis Comment effacer les données redis Apr 10, 2025 pm 10:06 PM

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

Comment lire le code source de Redis Comment lire le code source de Redis Apr 10, 2025 pm 08:27 PM

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Comment afficher toutes les clés dans Redis Comment afficher toutes les clés dans Redis Apr 10, 2025 pm 07:15 PM

Pour afficher toutes les touches dans Redis, il existe trois façons: utilisez la commande Keys pour retourner toutes les clés qui correspondent au modèle spécifié; Utilisez la commande SCAN pour itérer les touches et renvoyez un ensemble de clés; Utilisez la commande info pour obtenir le nombre total de clés.

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment implémenter le redis sous-jacent Comment implémenter le redis sous-jacent Apr 10, 2025 pm 07:21 PM

Redis utilise des tables de hachage pour stocker les données et prend en charge les structures de données telles que les chaînes, les listes, les tables de hachage, les collections et les collections ordonnées. Redis persiste les données via des instantanés (RDB) et ajoutez les mécanismes d'écriture uniquement (AOF). Redis utilise la réplication maître-esclave pour améliorer la disponibilité des données. Redis utilise une boucle d'événement unique pour gérer les connexions et les commandes pour assurer l'atomicité et la cohérence des données. Redis définit le temps d'expiration de la clé et utilise le mécanisme de suppression paresseux pour supprimer la clé d'expiration.

See all articles