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á.
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:
- Redis Strings: Se presenta un breve pero claro ejemplo sobre cadenas: Redis Strings y ¿Qué significa que INCR es atómico?
- Alterar y consultar key space: Información complementaria al tema y algunos ejemplos: Alterar y consultar key space
- Redis expiración: Claves con tiempo limitado
:Presentamos una breve información sobre la expiración y ejemplos: Expiración de claves con tiempo limitado - Listas: Para conocer los primeros pasos en Listas de Redis y casos de uso comunes te recomendamos leer: Listas y casos de uso comunes
- Creación automática y eliminación de keys: Para conocer mas sobre las claves y ver algunos ejemplos: Creación automática y eliminación de keys
- Redis Hashes: Para reconocer los principales comandos puedes leer el post: Introducción a Hashes
- Redis Sets: En el post que dejo a continuación se presenta un ejemplo claro y conciso en: Redis Sets y algunos ejemplos
- Conjuntos ordenados de Redis: Para saber mas sobre conjunto sordenados leer: Conjuntos ordenados de Redis
- Puntajes lexicográficos: Con las versiones recientes de Redis 2.8, se introdujo una nueva característica que permite obtener rangos lexicográficamente, para saber mas lea el siguiente post: Puntajes lexicográficos
- Bitmaps: Para conocer los principales comandos y casos de uso comunes los invitamos a leer: Bitmaps
- HyperLogLogs: Es una estructura de datos probabilísticos utilizada para contar cosas únicas, si deseas conocer mas puede leer: HyperLogLogs