logo cosasdedevs
Operaciones atómicas y hashes con Redis

Operaciones atómicas y hashes con Redis



My Profile
Nov 06, 2020

Bienvenido a este segundo tutorial sobre Redis, si no has visto el primero y te estás iniciando en esta base de datos, te recomiendo que eches un vistazo al primer tutorial en el que explico todos los aspectos básicos para empezar. Si no, quédate por aquí que vamos a ver como realizar operaciones atómicas y a utilizar los hashes con Redis 😉.

Operaciones atómicas

Una operación atómica en Redis es un proceso que siempre se realiza en su totalidad y que si no es así, tiene la capacidad de deshacerse.

Este tipo de operaciones las utilizamos en sistemas de contadores que pueden incrementarse o decrementarse como por ejemplo puede ser un contador de votos en una web.

Para utilizar este tipo de operaciones lo primero que debemos hacer es crear una clave con un valor numérico:

set votos 1

Si queremos incrementar su valor, utilizaremos el comando incr:

incr votos

Esto hará que el valor de votos se incremente en uno.

Si por el contrario queremos decrementar su valor en uno, utilizaremos el comando decr:

decr votos

En el caso de que queramos incrementar los valores en más de uno, tenemos el método incrby en el que le diremos el número en el que queremos incrementar un valor:

incrby votos 3

Este comando sumará tres votos al número actual guardado en votos.

También tenemos la opción de decrementar un valor con decrby:

decrby votos 2

Hash

Las operaciones hash las utilizamos para crear agrupaciones de claves valor agrupadas por una clave principal. Esto nos permite agrupar con una sola clave cosas similares y obtener esa información realizando una única lectura. El inconveniente de esto es que no podemos definir un tiempo de vida individual por cada clave del hash sino que tendrá que ser único para todo el grupo.

Crear un hash

Para crear un hash utilizaremos el comando hset seguido del nombre del hash y de las claves valor que quieras añadir. Ejemplo:

hset usuarios:1 nombre "Alber"

Aquí estamos creando un hash llamado usuarios:1 que contendrá una clave llamada nombre con el valor Alber.

Si queremos añadir varios conjuntos de clave valor, utilizaremos hmset

hmset post:1 titulo "Mi primer post" creador "Alber"

En este caso, creamos un hash llamado post:1 que contiene una clave llamada título con el valor Mi primer post y otra clave llamada creador con el valor Alber.

Recuperar los campos de un hash

Si queremos recuperar la información de un solo campo, utilizaremos hget:

hget post:1 titulo

En el caso de que queramos recuperar toda la información de un hash, utilizaremos el comando hgetall y la clave del hash:

hgetall post:1

También podemos obtener la longitud de un hash con hlen:

hlen post:1

Para obtener todas las claves de un hash utilizaremos hkeys para obtener todos los valores de un hash usaremos hvals:

hkeys post:1
hvals post:1

Si queremos verificar la existencia de una clave en un hash, utilizaremos el comando hexists:

hexists post:1 existo

Operaciones atómicas con hash

Para los elementos de un hash también podemos realizar operaciones atómicas con hincrby para incrementar los valores de la siguiente forma:

hincrby post:1 views 3

A parte de las ya mostradas, puedes ver más comandos de hash utilizando el comando de ayuda de Redis:

help @hash

Conclusiones

Gracias a las operaciones atómicas podremos tener contadores 100% confiables en nuestros proyectos y gracias a las agrupaciones por hash podremos organizar mejor la información de nuestros datos lo que nos facilitará el trabajo.

Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.

Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.

Nos leemos 👋.

2146 vistas

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para recopilar y analizar datos sobre la interacción de los usuarios con cosasdedevs.com. Ver política de cookies.