En aquest tema, explorarem les comandes avançades de Redis que et permetran aprofitar al màxim les capacitats d'aquest sistema de bases de dades en memòria. Aquestes comandes són útils per a operacions més complexes i per optimitzar el rendiment de les teves aplicacions.

Índex de Continguts

Comandes de Manipulació de Clau

EXPIRE i TTL

  • EXPIRE key seconds: Estableix un temps de caducitat per a una clau.
  • TTL key: Retorna el temps restant de vida d'una clau.
SET mykey "Hello"
EXPIRE mykey 10
TTL mykey

RENAME i RENAMENX

  • RENAME key newkey: Canvia el nom d'una clau.
  • RENAMENX key newkey: Canvia el nom d'una clau només si la nova clau no existeix.
SET mykey "Hello"
RENAME mykey mynewkey

TYPE

  • TYPE key: Retorna el tipus de valor emmagatzemat en una clau.
SET mykey "Hello"
TYPE mykey

Comandes de Manipulació de Dades

BITFIELD

  • BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment]: Manipula bits en una clau.
BITFIELD mykey SET u8 100 255
BITFIELD mykey GET u8 100

HSCAN, SSCAN, ZSCAN

  • HSCAN key cursor [MATCH pattern] [COUNT count]: Itera sobre els camps i valors d'un hash.
  • SSCAN key cursor [MATCH pattern] [COUNT count]: Itera sobre els elements d'un conjunt.
  • ZSCAN key cursor [MATCH pattern] [COUNT count]: Itera sobre els elements d'un conjunt ordenat.
HSET myhash field1 "Hello" field2 "World"
HSCAN myhash 0 MATCH field*

Comandes de Pub/Sub

PUBLISH i SUBSCRIBE

  • PUBLISH channel message: Publica un missatge en un canal.
  • SUBSCRIBE channel [channel ...]: Subscriu a un o més canals.
PUBLISH mychannel "Hello, World!"
SUBSCRIBE mychannel

PSUBSCRIBE i PUNSUBSCRIBE

  • PSUBSCRIBE pattern [pattern ...]: Subscriu a un o més canals que coincideixin amb un patró.
  • PUNSUBSCRIBE [pattern ...]: Cancel·la la subscripció a un o més patrons.
PSUBSCRIBE mychannel*
PUNSUBSCRIBE mychannel*

Comandes de Scripts Lua

EVAL i EVALSHA

  • EVAL script numkeys key [key ...] arg [arg ...]: Executa un script Lua.
  • EVALSHA sha1 numkeys key [key ...] arg [arg ...]: Executa un script Lua emmagatzemat.
EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 mykey "Hello"

SCRIPT LOAD i SCRIPT EXISTS

  • SCRIPT LOAD script: Carrega un script Lua en la memòria cau del servidor.
  • SCRIPT EXISTS sha1 [sha1 ...]: Comprova si un script existeix en la memòria cau del servidor.
SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
SCRIPT EXISTS <sha1>

Exercicis Pràctics

Exercici 1: Manipulació de Clau

  1. Crea una clau amb un valor qualsevol.
  2. Estableix un temps de caducitat de 20 segons.
  3. Canvia el nom de la clau.
  4. Comprova el tipus de la clau.

Solució

SET mykey "Hello"
EXPIRE mykey 20
RENAME mykey mynewkey
TYPE mynewkey

Exercici 2: Pub/Sub

  1. Publica un missatge en un canal.
  2. Subscriu-te al canal i comprova que reps el missatge.

Solució

PUBLISH mychannel "Hello, World!"
SUBSCRIBE mychannel

Exercici 3: Scripts Lua

  1. Carrega un script Lua que estableixi una clau amb un valor.
  2. Executa l'script utilitzant EVALSHA.

Solució

SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
EVALSHA <sha1> 1 mykey "Hello"

Conclusió

En aquesta secció, hem explorat diverses comandes avançades de Redis que et permetran realitzar operacions més complexes i optimitzar el rendiment de les teves aplicacions. Hem cobert comandes de manipulació de clau, manipulació de dades, Pub/Sub i scripts Lua. A més, hem proporcionat exercicis pràctics per reforçar els conceptes apresos. En el proper mòdul, ens endinsarem en les transaccions de Redis.

© Copyright 2024. Tots els drets reservats