Redis lset

Redis lset
Une liste Redis est une structure de données qui contient une séquence d'éléments de chaîne dans l'ordre d'insertion. Il est basé sur la liste liée. Ainsi, l'insertion d'un élément à la tête et à la queue est effectuée en temps constant. Le seul inconvénient des listes Redis est que l'interrogation des éléments par un index est un peu coûteuse, ce qui prend du temps directement proportionnel à l'indice de l'élément d'accès. La raison de la mise en œuvre basée sur la liste liée est de rendre l'insertion des données plus rapidement pour une très longue liste d'éléments.

Les listes Redis ont une indexation basée sur 0. Le premier élément est désigné comme le 0e indice; Le second est au 1St index, et ainsi de suite. L'accès aux éléments de queue avec les index est possible avec des indices négatifs comme le dernier élément est indexé comme -1, l'élément avant-dernier est -2, et ainsi de suite.

Les éléments de liste peuvent être définis à un index donné avec la commande LSET, qui est décrite dans la section suivante.

La commande lset

La commande LSET définit un élément à l'index donné d'une liste Redis stockée à la touche spécifiée. Il a la syntaxe simple suivante:

Élément index LSET List_Key

list_key: La clé de la liste redis.

indice: L'index où vous devez définir un élément.

élément: L'élément de chaîne à définir à l'index spécifié.

Cette commande renvoie une chaîne simple «ok» si l'élément a été correctement défini. Chaque fois qu'il rencontre un index qui est hors de la plage, la commande lset renvoie une erreur.

L'un des cas d'utilisation les plus courants des listes Redis est de stocker les publications sur les réseaux sociaux et leurs mises à jour pour les utilisateurs individuels. La commande LSET y joue un rôle important, comme discuté dans la section suivante.

Cas d'utilisation - Mettre à jour les publications sur les réseaux sociaux

Supposons un événement dans lequel une entreprise maintient son propre site Web de médias sociaux avec des milliers d'utilisateurs publiant activement des publications et des statuts. Ils ont identifié que les listes Redis sont le candidat approprié pour tenir ces messages et statuts où une insertion fréquente se produit, et les listes Redis effectuent une insertion en temps constant.

Créons une liste Redis pour un ID utilisateur donné 100 qui sera utilisé pour stocker les publications et les messages d'état de cet utilisateur particulier. Nous utiliserons la commande lpush pour mettre des messages factice et des messages d'état pour l'ID utilisateur 100.

LPUSH Social-Media: Utilisateur: 100 "2022-08-01: Belle journée pour commencer."
LPUSH Social-Media: Utilisateur: 100 "2022-08-05: a commencé un nouvel emploi chez Linuxhint"
LPUSH Social-Media: Utilisateur: 100 "2022-08-06: Grande fête aujourd'hui"
LPUSH Social-Media: Utilisateur: 100 "2022-08-07: Bad Day!!!"

Sortir

Supposons que l'utilisateur avec l'utilisateur ID 100 mettra à jour l'un de ses anciens messages. Supposons que le troisième post qu'il ait publié a besoin d'une correction. La commande LSET peut facilement y parvenir, comme indiqué dans ce qui suit.

Puisque le troisième élément est à l'index 2 de la tête. Nous le mettrons à jour comme suit:

LSET Social-Media: Utilisateur: 100 2 "a commencé un nouveau rôle en tant qu'écrivain chez Linuxhint"

Sortir

Comme prévu, la commande a été exécutée avec succès et l'élément du deuxième index a été mis à jour. Reocret la liste comme suit:

Nous pouvons faire de même en spécifiant l'index de la queue comme suit:

LSET Social-Media: User: 100 -2 "a commencé un nouveau rôle en tant qu'écrivain chez Linuxhint"

Comme prévu, le troisième élément a été défini sur la nouvelle chaîne «Job lancé chez Linuxhint».

Si vous spécifiez un index hors de portée, il augmentera une erreur, comme indiqué dans les éléments suivants:

LSET Social-Media: Utilisateur: 100 "travail démarré chez Linuxhint"

Sortir

Conclusion

La commande LSET définit un élément de liste à un index spécifié à un élément donné de la liste Redis stockée à une clé donnée. Étant donné que les index de la liste Redis commencent à partir de 0, c'est le premier élément. L'index 1 est le deuxième élément de la liste, etc. Comme discuté, les index des éléments à partir de la queue peuvent être spécifiés à l'aide de nombres négatifs comme -1 est le dernier élément, -2 est l'élément avant le dernier, et ainsi de suite. Chaque fois qu'un index inexistant est passé, la commande LSET renvoie une erreur. De plus, cette commande renvoie une sortie de chaîne simple sur l'exécution réussie.