Redis es un almacén de estructura de datos en memoria, ampliamente utilizado para el almacenamiento en caché, el análisis en tiempo real y la intermediación de mensajes. Es una opción popular para los desarrolladores debido a su velocidad ultrarrápida y su rico conjunto de funciones.
Redis admite muchas estructuras de datos, incluidas cadenas, hashes, listas, colecciones y conjuntos ordenados. También ofrece soporte integrado de mensajería de publicación/suscripción, soporte de transacciones y secuencias de comandos Lua.
Hay varios clientes populares de Redis para desarrolladores de Go, cada uno con características y funcionalidades únicas. Los siguientes tres clientes de Redis son los más populares entre los desarrolladores de Go.
1. El paquete go-redis
El ir-redis El paquete es una biblioteca de cliente Go popular para la base de datos de Redis. Proporciona una API simple y fácil de usar para interactuar con Redis, y el paquete es compatible con todos los comandos de Redis.
El paquete go-redis es popular entre los desarrolladores de Go debido a su rendimiento, confiabilidad e interfaz fácil de usar. Encontrará el paquete útil para la funcionalidad de gestión de sesiones al almacenamiento en caché, la cola de mensajes y más.
Ejecute este comando en la terminal del directorio de su proyecto para instalar el paquete go-redis.
ir obtener github.com/ir-redis/redis
Así es como puede importar el paquete go-redis en su proyecto.
importar (
"fmt"
"github.com/go-redis/redis"
)
Crear instancias de una nueva conexión a una base de datos de Redis con el paquete go-redis es fácil. Usarás el Cliente nuevo metodo de la redis paquete, que acepta el Opciones estructura que contiene los detalles de configuración.
funciónprincipal() {
cliente := redis. NuevoCliente(&redis. Opciones{
Dirección: "host local: 6379",
Contraseña: " ", // sin contraseña establecida
})
}
En el principal función, la cliente variable es la instancia de conexión del cliente de Redis. Puede inicializar el Opciones estructura con Dirección y Contraseña campos que contienen la dirección de la base de datos y la contraseña, respectivamente.
Al crear una instancia de cliente de Redis, puede hacer ping a la base de datos para verificar su conexión con el Silbido método. Puedes usar el Resultado en el método Ping, que devuelve el estado y un error.
pong, err := cliente. Ping().Resultado()si error! = nulo {
fmt. Imprimir (err)
devolver
}
fmt. Imprimir (pong, err)
Puede agregar un par clave-valor a su base de datos con el Colocar método de su instancia de cliente. Utilizando el Errar El método en una operación devuelve un error que puede manejar.
// Establecer una clave
error = cliente. Colocar("llave", "valor", 0).Errar()
si error! = nulo {
fmt. Imprimir (err)
devolver
}
Puede recuperar un valor de la base de datos con la clave usando el Conseguir método de su instancia de cliente. Utilizando el Resultado método en una operación devuelve el resultado de la operación y un error.
// Obtener una clave
val, err := cliente. Conseguir("llave").Resultado()si error! = nulo {
fmt. Imprimir (err)
devolver
}
fmt. imprimir("llave", valor)
2. El paquete Radix
El Base El paquete es una biblioteca que proporciona un cliente para el almacén de estructura de datos en memoria de Redis. El paquete Radix abstrae el paquete Redigo para proporcionar una API fácil de usar para interactuar con Redis.
El paquete Radix brinda soporte para todos los comandos de Redis, incluidos secuencias de comandos lua y Pub/Sub, agrupación de conexiones y reconexiones automáticas que permiten operaciones eficientes y resistentes con Redis, soporte para Clústeres de Redis que incluyen fragmentación transparente y conmutación por error, y un diseño liviano y eficiente que permite baja latencia y alta rendimiento
Encontrará el paquete Radix muy útil si está buscando agregar soporte rápido de Redis a sus proyectos Go desde el El paquete abstrae las complejidades subyacentes del protocolo Redis, haciendo que el almacenamiento en caché, la gestión de sesiones y la cola de mensajes más fácil.
Ejecute este comando para instalar la versión tres del paquete Radix en el directorio de trabajo de su proyecto.
ir obtener github.com/mediocregopher/radix/v3
Así es como puede importar el Base paquete en su programa.
importar (
"fmt"
"github.com/mediocregopher/radix/v3"
)
Puedes usar el Marcar metodo de la base paquete para conectarse a un servidor Redis. El Marcar El método acepta el tipo de conexión y la dirección del servidor Redis y devuelve una instancia de conexión y un error.
funciónprincipal() {
//conectar al servidor redis
conexión, err := radix. Marcar("tcp", "host local: 6379")si error! = nulo {
fmt. Imprimir (err)
devolver
}
aplazar con. Cerca()
}
En la función principal, creó una instancia de conexión de Redis con el Marcar método y cerró la conexión con el Cerca método y un aplazar declaración.
Puede ejecutar comandos de Redis con el Comando metodo de la base paquete. El Comando El método acepta una interfaz, un comando y los valores del comando.
err = conexión Hacer (raíz. cmd(nulo, "COLOCAR", "mi llave", "mivalor"))
si error! = nulo {
fmt. imprimir("Clave de configuración de error:", errar)
} demás {
fmt. imprimir("Clave configurada con éxito")
}
El Hacer El método encierra la operación y devuelve un error.
Del mismo modo, puede recuperar valores de su base de datos con el FlatCmd método. El FlatCmd El método toma la referencia a una variable, el comando y la clave.
variable valor cadena
err = conexión Hacer (raíz. FlatCmd(&val, "CONSEGUIR", "mi llave"))si error! = nulo {
fmt. imprimir("Error al obtener la clave:", errar)
} demás {
fmt. imprimir("El valor de mykey es", valor)
}
Cuando ejecute ese código, debería ver un resultado similar a este:
3. El paquete Redigo
El rojo El paquete es otra biblioteca de cliente Go popular para Redis. A diferencia de Base y ir-redis, el rojo El paquete es un cliente liviano que proporciona una interfaz simple y eficiente para interactuar con Redis.
Uno de los puntos de venta de Redigo es su rendimiento, a pesar de su peso ligero. Redigo proporciona una API similar a la de impresión con soporte para todos los comandos de Redis, y el paquete se usa popularmente para canalización, pub-sub, agrupación de conexiones y otras operaciones.
Ejecute este comando de terminal para instalar el rojo paquete y empezar.
ir obtener github.com/gomodule/redigo/redis
Así es como puede importar el paquete redigo en sus archivos de proyecto.
importar (
"fmt"
"github.com/gomodule/redigo/redis"
)
Puedes usar el Marcar metodo de la redis paquete para conectarse a una instancia de base de datos de Redis. El método Dial toma un tipo de conexión y una dirección y devuelve la instancia de conexión y un error.
funciónprincipal() {
// Conéctese a la instancia de Redis
conexión, error := redis. Marcar("tcp", "host local: 6379")si error! = nulo {
fmt. Imprimir (err)
devolver
}
aplazar con. Cerca()
}
En el principal función, se conectó a una instancia de base de datos de Redis que se ejecuta en el puerto 6379 y cerró la conexión con el Cerca método de la instancia de conexión y un aplazar declaración.
Puede ejecutar operaciones de Redis usando el Hacer método de su instancia de conexión. El método Do devuelve una interfaz de salida y un error.
// Establecer el valor "hola" en la clave "mensaje"
_, err = conexión. Hacer("COLOCAR", "mensaje", "Hola")
si error! = nulo {
fmt. Imprimir (err)
devolver
}
Puede recuperar una salida de cadena de una operación de Redis con el Cadena metodo de la redis paquete. El método String toma la instancia de la operación y devuelve el valor y un error.
// Obtener el valor de la clave "mensaje"
valor, error: = redis. Cadena (con. Hacer("CONSEGUIR", "mensaje"))si error! = nulo {
fmt. Imprimir (err)
devolver
}
fmt. Imprimir (valor) // Salida: "hola"
Puede usar bases de datos SQL con Go
Hay soporte para bases de datos populares y almacenes de datos en el ecosistema Go. Go proporciona el paquete base de datos/sql como parte de la biblioteca estándar para trabajar con bases de datos SQL.