Listas de Redis limitadas y comando LTRIM

En muchos casos de uso, solo queremos usar listas de Redis para almacenar los últimos artículos; sean lo que sean: actualizaciones de redes sociales, registros o cualquier otra cosa.

Redis nos permite usar listas de Redis como una colección limitada; solo recordando los últimos N elementos y descartando todos los elementos más antiguos usando el comando LTRIM…

El comando LTRIM es similar a LRANGE, pero en lugar de mostrar el rango de elementos especificado, establece este rango como el nuevo valor de la lista. Todos los elementos fuera del rango dado son eliminados.

> rpush mylist 1 2 3 4 5
(integer) 5
> ltrim mylist 0 2
OK
> lrange mylist 0 -1
1) "1"
2) "2"
3) "3"

El anterior le dice a Redis que solo tome elementos de la lista del índice 0 a 2, todo lo demás se descartará.

Con comandos como LPUSH y RPUSH, podemos agregar elementos al principio o al final de una lista. ¿Quieres insertarlo en otro lugar de la lista? No hay problema, solo use LINSERT con un valor ANTES o DESPUÉS y Redis lo tomará desde allí.

 

Esto permite un patrón muy simple pero útil: realizar una operación de inserción de lista + una operación de recorte de lista juntas para agregar un elemento nuevo y descartar elementos que excedan un límite:

LPUSH mylist <some element>
LTRIM mylist 0 999

La combinación anterior agrega un nuevo elemento y toma solo los 1000 elementos más nuevos en la lista. Con LRANGE puede acceder a los elementos principales sin necesidad de recordar datos muy antiguos.

Nota: aunque LRANGE es técnicamente un comando O (N), acceder a rangos pequeños hacia la cabecera o la cola de la lista es una operación de tiempo constante.

A continuación te acercamos un listado de diversos posts de Redis, para que puedas continuar leyendo sobre el tema:

Author: sitio big data

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *