Cet article vous donnera une compréhension détaillée des 5 types de données de base dans Redis (String, List, Set, Hash, Zset ordonné ensemble). J'espère qu'il vous sera utile !
Pour Redis, toutes les clés sont des chaînes. Lorsque nous parlons de structures de données de base, nous discutons des types de données pour stocker les valeurs, qui comprennent principalement 5 types de données courants : String, List, Set, Zset et Hash. [Recommandations associées : Tutoriel vidéo Redis]
Type de structure | La valeur stockée dans la structure | Les capacités de lecture et d'écriture de la structure |
---|---|---|
Chaîne de chaîne | peut être une chaîne, un nombre entier ou un nombre à virgule flottante | opérer sur la chaîne entière ou une partie de la chaîne ; effectuer une opération d'incrémentation ou de décrémentation sur un nombre entier ou à virgule flottante |
Liste liste | une liste chaînée ; chaque Chaque nœud contient une chaîne | Effectuez des opérations push et pop aux deux extrémités de la liste chaînée, lisez un ou plusieurs éléments ; recherchez ou supprimez des éléments en fonction de la valeur ; |
Set collection | contient une chaîne non ordonnée.Une collection de chaînes, comprenant des méthodes de base pour voir s'il y a ajout, acquisition et suppression ; elle comprend également le calcul de l'intersection, de l'union, de la différence, etc. | |
Hash hash | Ne contient aucune valeur-clé paires Une table de hachage ordonnéecontient des méthodes pour ajouter, obtenir et supprimer un seul élément | |
Ensemble ordonné Zset | Tout comme un hachage, elle est utilisée pour stocker des paires clé-valeurentre les membres d'une chaîne et fractions à virgule flottante Cartographie ordonnée ; l'ordre des éléments est déterminé par la taille du score ; les méthodes d'inclusion incluent l'ajout, l'obtention, la suppression d'un seul élément et l'obtention d'éléments en fonction de la plage de scores ou du membre |
La chaîne est le type de données le plus basique dans Redis, une clé correspond à une valeur.Le type String est binaire sûr, ce qui signifie que la chaîne redis peut contenir n'importe quelle donnée. Tels que des nombres, des chaînes, des images jpg ou des objets sérialisés.
Brève description | Utilisation de | |
---|---|---|
Obtenir la valeur stockée dans la clé donnée | GET nom | |
Ensemble la valeur stockée dans la clé donnée | SET nom valeur | |
Supprimer la valeur stockée dans la clé donnée | DEL nom | |
Augmente la valeur stockée par la clé de 1 | INCR key | |
Diminuer la valeur stockée par la clé de 1 | DECR key | |
Augmenter la valeur stockée par la clé d'un entier | INCRBY montant de la clé | |
stockage des clés La valeur moins le nombre entier | Montant de la clé DECRBY |
RPOP | Insérez une valeur à l'extrémité droite de la liste et renvoyez la valeur affichée | |
---|---|---|
LPOP | de la liste Pop une valeur à l'extrémité gauche et renvoie la valeur sautée | Touche LPOP |
LRANGE | Obtenez toutes les valeurs de la liste dans la plage donnée | Touche LRANGE 0 -1 |
LINDEX | Obtenez la liste par éléments d'index dans . Vous pouvez également utiliser des indices négatifs, -1 représentant le dernier élément de la liste, -2 représentant l'avant-dernier élément de la liste, et ainsi de suite. | Index des clés LINEX |
Conseils d'utilisation des listes | lpush+lpop=Stack(stack) | |
lpush+ltrim=Capped Collection (collection limitée) | lpush +brpop=Message Queue (Message Queue) | |
127.0.0.1:6379> lpush mylist 1 2 ll ls mem (integer) 5 127.0.0.1:6379> lrange mylist 0 -1 1) "mem" 2) "ls" 3) "ll" 4) "2" 5) "1" 127.0.0.1:6379> lindex mylist -1 "1" 127.0.0.1:6379> lindex mylist 10 # index不在 mylist 的区间范围内 (nil) Copier après la connexion | Scénario pratique |
Ajouter un ou plusieurs membres à la collectionSADD valeur cléSADD
SMEMBER | Renvoyer tous les membres de l'ensemble | |
---|---|---|
SISMEMBER | Déterminer si l'élément membre est membre de la clé d'ensemble | Membre clé SISMEMBER |
Pour d'autres opérations d'ensemble, veuillez vous référer ici | https://www.runoob.com/redis/redis-sets.html | |
Exécution de la commande | 127.0.0.1:6379> sadd myset ycf ycf1 xiao ycf (integer) 3 127.0.0.1:6379> smember myset 1) "xiao" 2) "ycf1" 3) "ycf" 127.0.0.1:6379> sismember myset ycf (integer) 1 Copier après la connexion | |
Tags | (tag), ajoutez un tag à l'utilisateur, ou l'utilisateur ajoute un tag au message, afin que ceux qui ont le même tag ou des tags similaires puissent recommander des choses ou des personnes à suivre. | J'aime, ou clics, favoris, etc. |
Hash hash
si donnée la clé existe dans le hachage, puis supprimez cette cléHDEL hash-key sub-key1
127.0.0.1:6379> hset user name1 ycf (integer) 1 127.0.0.1:6379> hset user email1 ycf@163.com (integer) 1 127.0.0.1:6379> hgetall user 1) "name1" 2) "ycf" 3) "email1" 4) "ycf@163.com" 127.0.0.1:6379> hget user user (nil) 127.0.0.1:6379> hget user name1 "ycf" 127.0.0.1:6379> hset user name2 xiaoycf (integer) 1 127.0.0.1:6379> hset user email2 xiaoycf@163.com (integer) 1 127.0.0.1:6379> hgetall user 1) "name1" 2) "ycf" 3) "email1" 4) "ycf@163.com" 5) "name2" 6) "xiaoycf" 7) "email2" 8) "xiaoycf@163.com"
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
命令 | 简述 | 使用 |
---|---|---|
ZADD | 将一个带有给定分值的成员添加到哦有序集合里面 | ZADD zset-key 178 member1 |
ZRANGE | 根据元素在有序集合中所处的位置,从有序集合中获取多个元素 | ZRANGE zset-key 0-1 withccores |
ZREM | 如果给定元素成员存在于有序集合中,那么就移除这个元素 | ZREM zset-key member1 |
更多命令请参考这里
https://www.runoob.com/redis/redis-sorted-sets.html
127.0.0.1:6379> zadd myscoreset 100 ycf 90 xiaoycf (integer) 2 127.0.0.1:6379> ZRANGE myscoreset 0 -1 1) "xiaoycf" 2) "ycf" 127.0.0.1:6379> ZSCORE myscoreset ycf "100"
更多编程相关知识,请访问:编程视频!!
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!