2. ¿QUÉ VAMOS A VER HOY?
¿Qué es Redis?
Operaciones y tipos de datos
Retwis in C#
3. ALGUNOS DATOS
Redis = REmote DIctionary Server
La primera release en 2009
Open Source, Licencia BSD
La versión más reciente: 3.0
Escrito en C
Tiene librerías para +30 lenguajes
Buena documentación
5. Una clave puede contener
strings, hashes, lists,
sets, sorted sets,
bitmaps y hyperloglogs
6. REDIS
Redis trabaja in-memory pero persiste en disco
1 millón de pequeñas “Key - String” usan ~ 100 MB de memoria
Un solo hilo de ejecución (la CPU no será el cuello de botella)
Un sistema normal Linux puede enviar 500k requests/segundo
El límite de almacenamiento es la memoria disponible
máx. 232 keys
7. DIFERENCIAS CON MEMCACHED
Memcached es un “Sistema de cache en memoria distribuido”
Redis persiste los datos en el disco de forma eventual
Memcached es un sistema caché LRU (Least Recently Used)
Redis tiene diferentes tipos de datos y features
Memcached es multihilo
Velocidad similar (en local)
17. SORTED SETS
ZADD key score member [score member …]
ZSCORE key member
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset
count]
ZREM key member [member ...]
ZREMRANGEBYLEX key min max
ZINCRBY key increment member
18. HYPERLOGLOG
“Hyperloglog es una técnica aproximada para
calcular el número de entradas distintas en un
conjunto (cardinalidad).”
Para conseguir el 99% de precision,
se necesitan solo 16 Kb.
19. HyperLogLog
PFADD key element [element …]
PFCOUNT key [key …]
PFMERGE destkey sourcekey [sourcekey ...]
Caso de uso: Track Unique Visitors
24. CASOS DE USO
Listados de últimos xxx: LPUSH y LTRIM
Tablas de top o de rankings: ZADD, ZREVRANGE y ZREVRANGEBYSCORE
Cálculos de tipo “karma”: ZADD, ZRANK, ZINCRBY
Contadores usuarios activos: INCR y EXPIRE
Publicación y suscripción: mediator
Colas: BLPOP y LPUSH
Textos auto-completables: ZADD, ZRANK y ZRANGE
Almacenar información que caduca: EXPIRE
25. EN RESUMEN
Maneja cadenas de texto (o byte arrays)
5 tipos de datos: Keys, Hashes, Lists, Sets, Sorted Sets,
Pub/Sub
Operaciones con datos
Scripts en LUA
En memoria, pero persiste en forma de snapshots
26. MÁS INFORMACIÓN
A basic redis client for .NET
https://github.com/fernandoescolar/Tokiota.Redis
Documentación Redis
http://redis.io/documentation
ServiceStack
https://servicestack.net
Ejemplo de uso Redis Bitmaps
http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps
Redis es un Sistema de almacenamiento y caché avanzado que usa datos de tipo CLAVE-VALOR.
Se le denomina servidor de estructura de datos ya que una clave puede contener
strings, hashes, lists, sets, sorted sets, bitmaps y hyperloglogs
Hyperloglog es una técnica aproximada para calcular el número de entradas distintas en un conjunto (cardinalidad
Esto se consigue utilizando poca memoria. Por ejemplo, para conseguir el 99% de precision, se necesitan solo 16 Kb.