Almacenamiento y manipulación de tipos de datos comunes en Redis con Java

Conexión de Java a Redis

1.1 Configuración de dependencias

Para interactuar con Redis, se requiere incluir la biblioteca Jedis en el proyecto. Agregar la siguiente dependencia en el archivo pom.xml dentro de la sección de depenedncias:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.7.0</version>
</dependency>

1.2 Establecimiento de conexión

Crear una clase para inicializar la conexión y verificar la comunicación con el servidor Redis:

package com.ejemplo.redis;

import redis.clients.jedis.Jedis;

public class ConexionRedis {
    public static void main(String[] args) {
        // Inicializar cliente con dirección y puerto
        Jedis clienteRedis = new Jedis("localhost", 6379);
        // Autenticar si es necesario
        clienteRedis.auth("contraseña_segura");
        // Probar conexión
        System.out.println(clienteRedis.ping());
    }
}

La salida "PONG" indica una conexión exitosa.

Operaciones con tipos de datos en Redis

2.1 Cadenas de texto (String)

Las cadenas son el tipo fundamental en Redis, ideales para almacenar pares clave-valor simples, con soporte para datos binarios y hasta 512 MB por valor.

package com.ejemplo.redis;

import redis.clients.jedis.Jedis;

public class EjemploString {
    public static void main(String[] args) {
        Jedis cliente = new Jedis("localhost", 6379);
        cliente.auth("contraseña_segura");
        cliente.select(0); // Seleccionar base de datos

        // Almacenar valor
        cliente.set("clave_usuario", "valor_inicial");
        // Recuperar valor
        System.out.println(cliente.get("clave_usuario"));
        // Establecer con expiración (30 segundos)
        cliente.setex("clave_temporal", 30, "datos_temporales");
        System.out.println(cliente.ttl("clave_temporal"));
        // Actualizar valor
        cliente.set("clave_usuario", "valor_actualizado");
        System.out.println(cliente.get("clave_usuario"));
        // Eliminar clave
        System.out.println(cliente.del("clave_usuario"));
    }
}

2.2 Hash (Hash)

El tipo Hash es un conjunto de pares campo-valor bajo una clave, adceuado para modelar objetos complejos.

package com.ejemplo.redis;

import redis.clients.jedis.Jedis;
import java.util.Map;

public class EjemploHash {
    public static void main(String[] args) {
        Jedis cliente = new Jedis("localhost", 6379);
        cliente.auth("contraseña_segura");
        cliente.select(1);

        // Definir campos
        cliente.hset("info_persona", "nombre", "Ana");
        cliente.hset("info_persona", "edad", "25");
        cliente.hset("info_persona", "ocupacion", "Ingeniera");
        // Obtener campo específico
        System.out.println(cliente.hget("info_persona", "nombre"));
        // Eliminar campo
        cliente.hdel("info_persona", "edad");
        // Obtener todos los campos
        Map<String, String> todosCampos = cliente.hgetAll("info_persona");
        System.out.println(todosCampos);
        // Verificar existencia de campo
        System.out.println(cliente.hexists("info_persona", "nombre"));
        // Longitud del hash
        System.out.println(cliente.hlen("info_persona"));
    }
}

2.3 Listas (List)

Las listas en Redis son colecciones ordenadas que permiten inserción por cabeza o cola, implementadas como listas enlazadas.

package com.ejemplo.redis;

import redis.clients.jedis.Jedis;
import java.util.List;

public class EjemploList {
    public static void main(String[] args) {
        Jedis cliente = new Jedis("localhost", 6379);
        cliente.auth("contraseña_segura");
        cliente.select(2);

        // Insertar elementos al inicio
        cliente.lpush("lista_tareas", "estudiar", "ejercicio", "programar");
        // Obtener longitud
        System.out.println(cliente.llen("lista_tareas"));
        // Acceder por índice
        System.out.println(cliente.lindex("lista_tareas", 0));
        // Recuperar rango
        List<String> sublist = cliente.lrange("lista_tareas", 0, 1);
        System.out.println(sublist);
    }
}

2.4 Conjuntos (Set)

Los conjuntos son colecciones deosrdenadas de cadenas únicas, basadas en tablas hash internas.

package com.ejemplo.redis;

import redis.clients.jedis.Jedis;
import java.util.Set;

public class EjemploSet {
    public static void main(String[] args) {
        Jedis cliente = new Jedis("localhost", 6379);
        cliente.auth("contraseña_segura");
        cliente.select(3);

        // Agregar elementos al conjunto
        cliente.sadd("conjunto_miembros", "miembro1", "miembro2", "miembro3");
        // Tamaño del conjunto
        System.out.println(cliente.scard("conjunto_miembros"));
        // Verificar existencia
        System.out.println(cliente.exists("conjunto_miembros"));
        // Obtener todos los miembros
        Set<String> miembros = cliente.smembers("conjunto_miembros");
        System.out.println(miembros);
    }
}

Etiquetas: Redis java Jedis String Hash

Publicado el 6-4 23:58