Maison > Article > base de données > Analyse approfondie de la structure des données dans Redis et discussion de scénarios d'application
Cet article vous donnera une compréhension approfondie des structures de données dans Redis et verra les scénarios d'application de ces structures de données. J'espère qu'il vous sera utile !
Redis est un système de stockage clé-valeur écrit en langage ANSI C. Le type de clé est une chaîne. [Recommandations associées : Tutoriel vidéo Redis]
8 types de données de types de données de valeur :
Types de données courants
string string type
list list type
set collection type
sortedset(zset) type d'ensemble ordonné
type de hachage
type de données inhabituel
type de bitmap bitmap
type de localisation géographique
type de flux
Remarque
Les commandes dans Redis ignorent la casse, (set SET), les touches n'ignorent pas la casse (NOM nom)
La fonction String de Redis Exprime trois types de valeurs : chaîne, entier, flottant Le numéro de point 100.01 est une chaîne à six chiffres
Nom de la commande | Format de la commande | Description de la commande | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
set | définir la valeur de la clé. | attribuer une valeur | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get | get key | get a value | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getset | getset key value | get a value et attribuer une valeur | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mset | MSET key1 value1 key2 value2 .. keyN valueN | Définissez plusieurs valeurs key sur leurs valeurs correspondantes. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mget | MGET KEY1 KEY2 .. KEYN | Renvoyer les valeursde toutes (une ou plusieurs) clés données | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EXPIRE | EXPIRE les secondes clés | Définir le délai d'expiration (secondes) d'une clé | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
append | ajouter la valeur de la clé | ajouter la valeur à la queue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
strlen | strlen key | obtenir la longueur de la chaîne | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setnx | setnx la valeur de la clé | quand valeur Utiliser l'affectation s'il n'existe pas définir la valeur de la clé N P | decr||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
décrémenter le nombre | decrby | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
diminuer l'entier spécifié |
lpush | ||
---|---|---|
lpop | touche lpop | |
rpush | rpush key v1 v2 v3... | |
rpop | clé rpop | |
lpushx | valeur de la clé lpushx | |
blpop | blpop délai d'expiration de la clé | |
llen | llen key | |
lrange | lrange key start end | |
lset | lset key index value | |
rpoplpush | rpoplpush key1 key2 | |
rpushx | rpushx key | |
brpop | blpop key | |
. | lindex | valeur de clé lindex |
ltrim | ltrim key start end | |
brpoplpush | brpoplpush | |
linsert | insert key AVANT/APRÈS valeur pivot | |
Scénarios d'application |
sadd | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
srem | srem key value1 value2 .... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smembers | smembers key | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spop | spop key count | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
srandmember | srandmember key count | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
scard | scard key | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sismember | sismember key member | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sinter | sinter key 1 key2 key3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sdiff | sdiff key1 key2 key3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sunion | sunion key1 key2 key3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
zadd | zadd key score1 member1 score2 member2 ... | Ajouter des éléments avec des scores à la clé d'ensemble ordonnée |
---|---|---|
zrem key mem1 mem2 .... | Supprimer des éléments de la clé d'ensemble ordonnée | |
zcard key | Obtenir le nombre d'éléments dans l'ensemble ordonné | |
zcount key min max | Renvoyer le nombre d'éléments dans l'ensemble dont la valeur de score est dans le [min,max] interval | |
zincrby key incrément member | est le score du membre de l'élément dans la clé de l'ensemble ordonné plus incrément | |
zscore key member | renvoie le score du membre de l'élément dans l'ordre set key | |
zrank key member | Obtenez le classement du membre dans l'ensemble (du petit au grand par score) | |
zrange key start end | Obtenez les éléments de la commande définir la clé de l'indice de début à l'indice d'arrêt dans l'ordre positif | |
zrevrank key member | Obtenir le classement des membres de l'ensemble (du plus grand au plus petit par score) | |
zrevrange clé début fin | Obtenez la clé définie ordonnée dans l'ordre inverse de l'indice de début à l'indice d'arrêt Éléments | |
Scénarios d'application | Classements de clics, classements de ventes, classements d'attention |
Inconvénients
1 La fonction d'expiration ne peut pas être utilisée sur les champs, mais ne peut être utilisée que sur les clés
hset | hset valeur du champ clé | Stockage la valeur clé de une clé de table de hachage |
---|---|---|
champ de clé hmset1 valeur1 champ2 valeur2 | Stocker plusieurs paires clé-valeur dans une clé de table de hachage | |
champ de clé hget | Vérifiez si un champ existe | |
hmget key field1 field2... | Obtenir une valeur de champ | |
hsetnx key field value | Stocker la valeur clé d'une table de hachage inexistante | |
hex est clé déposée | Juge si le fichier existe | |
hgetall key | Obtenir plusieurs valeurs de champ | |
hdel key field1 field2... | Supprimer le champ spécifié | |
champ clé hincrby dans crement | incrémentation automatique du champ spécifié | |
hlen key | Obtenir le nombre de champs | |
Scénario d'application | Cache d'objet |
Bitmap effectue des opérations sur les bits pour représenter la valeur ou l'état correspondant à un élément via un bit, et la clé est l'élément correspondant lui-même. Bitmap lui-même permettra d'économiser considérablement de l'espace de stockage. "Commandes communes" être seulement 0 ou 1). "getbit key offset" clé bitpos value
Effectuer des opérations logiques sur plusieurs clés et les enregistrer. Entrez destkey
la géo est utilisée par Redis pour traiter la localisation. information. Officiellement utilisé dans Redis3.2. Utilisant principalement la courbe d'ordre Z, l'encodage Base32 et l'algorithme de géohash
geoadd key longitude latitude nom du membre 1 longitude 1 latitude 1 nom du membre 2 longitude 2 latitude 2... | Ajouter des coordonnées géographiques | |
---|---|---|
Retour latitude et longitude du membre |
géodiste clé membre 1 membre 2 unité |
|
georadiusbymember | georadiusbymember clé valeur du membre nombre d'unités numéro asc[desc] | |
geohash | nom du membre clé geohash 1 nom du membre 2... | |
Scénario d'application | ||
2. | 3. Rechercher des "personnes à proximité" | type de flux de données stream |
Répond presque à toutes les exigences de la file d'attente des messages, notamment : | Génération sérialisée des identifiants de message | Traversée des messages |
Surveillance de la file d'attente des messages
Chaque flux a un nom unique, qui est la clé de Redis. Il est automatiquement créé lorsque la commande xadd est utilisée pour la première fois pour ajouter un messageCe 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!