Operaciones de Cadenas con RedisTemplate en Spring Data Redis

Operaciones de Cadenas con RedisTemplate

En Redis, los valores de tipo cadena se almacenan internamente en formato binario. El codificador interno seleccionado depende del tipo y longitud del valor:

  • int: para enteros de hasta 8 bytes.
  • embstr: para cadenas de hasta 39 bytes.
  • raw: para cadenas mayores de 39 bytes.

La API de RedisTemplate proporciona métodos para gestionar estos valores. A continuación, se describen las operaciones principales.

Métodos Esenciales

Algunas funciones clave incluyen:

  • asignar(K clave, V valor): Almacena un valor sin tiempo de expiración.
  • asignarSiNoExiste(K clave, V valor): Similar al comando SETNX, establece el valor solo si la clave no existe.
  • asignarSiExiste(K clave, V valor): Equivalente a SETEX, actualiza el valor si la clave ya está presente.
  • obtener(K clave): Recupera el valor asociado a una clave.
  • incrementar(K clave): Incrmeenta el valor entero en 1, creando la clave con valor 0 si no existe.
  • incrementar(K clave, long delta): Aumenta el valor entero por un delta específico.
  • anexar(K clave, String valor): Concatena texto al final del valor existente.

Operaciones a Nivel de Bits

Dado que las cadenas se tratan como arreglos de bits, se pueden manipular posiciones individuales.

  • asignarBit(K clave, long desplazamiento, boolean valor): Establece o limpia el bit en la posición indicada.
  • obtenerBit(K clave, long desplazamiento): Consulta el valor del bit en una posición específica.

Para operaciones avanzadas, se utiliza el comando campoDeBits, que permite tratar la cadena como un arreglo de bits con campos de anchura variable.

Ejemplo Práctico de BITFIELD

El siguiente código demuestra el uso de campoDeBits para manipular campos de bits. Se incrementa un entero sin signo de 5 bits en la posición 150 y se recupera un entero sin signo de 4 bits desde el inicio.

> campoDeBits clave_demo INCRBY u5 150 1 GET u4 0
1) (integer) 1
2) (integer) 0

Los subcomandos disponibles incluyen:

  • GET: Devuelve el valor de un campo de bits.
  • SET: Establece un campo y retorna su valor anterior.
  • INCRBY: Incrementa o decrementa un campo.

Se puede controlar el comportamiento de desbordamiento mediante OVERFLOW con opciones WRAP, SAT o FAIL.

> campoDeBits clave_demo incrby u3 200 1 OVERFLOW SAT incrby u3 210 1
1) (integer) 1
2) (integer) 1
> campoDeBits clave_demo incrby u3 200 1 OVERFLOW SAT incrby u3 210 1
1) (integer) 2
2) (integer) 2
> campoDeBits clave_demo incrby u3 200 1 OVERFLOW SAT incrby u3 210 1
1) (integer) 3
2) (integer) 3
> campoDeBits clave_demo incrby u3 200 1 OVERFLOW SAT incrby u3 210 1
1) (integer) 0
2) (integer) 3

En este ejemplo, el entero de 3 bits se reinicia a 0 tras alcanzar el valor máximo 7, dado el modo SAT de saturación.

Etiquetas: Redis spring-data-redis redistemplate string-operations bitfield

Publicado el 6-4 05:15