Redis
Redis
Grupo 1
31/10/2017
Integrantes
Vilca Pulido Orlando Flavio
Ciclo 2017 -2
Muoz ahuero Daniel
REDIS NOSQL
REDIS NOSQL
Contenido
1. Introduccion. .......................................................................................................................... 3
2. REDIS .................................................................................................................................... 4
3. Modelo de Datos. ............................................................................................................... 6
Lenguajes Soportados : ............................................................................................................ 6
4. Persistencia y Replicacin. ................................................................................................... 7
Persistencia ................................................................................................................................ 7
Replicacin ................................................................................................................................. 7
5. Que debemos esperar de REDIS NOSQL. .................................................................... 8
Ventajas y desventajas.............................................................................................................. 8
Para qu se usa Redis............................................................................................................... 8
Quin usa Redis? ....................................................................................................................... 9
6. Rendimiento. ....................................................................................................................... 10
De dnde sale tanto rendimiento? ................................................................................... 10
Escalabilidad ............................................................................................................................ 10
Limitaciones ............................................................................................................................ 10
7. Conclusiones. ...................................................................................................................... 11
8. Linkografa............................................................................................................................ 12
Grupo 1 2
REDIS NOSQL
1. Introduccion.
A parte de las clsicas bases de datos SQL (RDBMS), aparecen y van tomando fuerza nuevos
tipos de bases de datos. Su mayor ventaja es que estn preparados para ser muy rpidos.
Mucho; segn su tipo, cada una sigue una estrategia completamente diferente para persistir
la informacin.
Cabe destacar que normalmente no sustituyen a la base de datos clsica SQL, sino que
surgen por otra necesidad. Una necesidad de rendimiento extremo. Si se utilizan de una
manera nica, o se combinan con una base de datos SQL es una decisin de arquitectura del
sistema.
Algunas de ellas pueden ser accedidas mediante SQL, pero normalmente no ser as, puesto
que cada una tendr una API exclusiva.
Las bases de datos NoSQL rompen con la barrera del rendimiento, segn su tipo, su
estrategia de ejecucin es distinta, pero algunas de ellas como Redis funcionarn segn nos
interese en memoria, llevando un registro en el disco y peridicos snapshots de la informacin,
o directamente en disco. En el caso de Redis podemos llegar a configurar qu parte de la
memoria queremos que utilice, pudiendo incluso apagar el consumo de la misma para el
proceso de datos.
Una comparacin desafortunada podra ser que las bases de datos NoSQL son como un
MemCach para nuestra aplicacin. Algunas arquitecturas colocan una aplicacin
bd(nosql)/bd(sql) de forma que la informacin es accedida increblemente rpido.Otro
problema de los servidores tradicionales son el los lmites de espacio y proceso que tienen,
en el caso de NoSQL, segn su tipo, el lmite es el propio sistema operativo.
Por ahora vemos que hay cuatro vertientes, que son la siguiente:
Clave-Valor REDIS
Mapeo de Columnas HBASE
Documentos MONGODB
Grafos NEO4J
Por esta razn, decidimos investigar en este caso, REDIS y es el objetivo de este informe.
Grupo 1 3
REDIS NOSQL
2. REDIS
Redis es una de las bases de datos NoSQL en este caso de tipo clave-valor. Los valores pueden
ser de diferentes tipos y tiene una amplia coleccin de operaciones disponibles para usar segn
el tipo de datos asociado a la clave.
REDIS es una de las bases de datos para almacenar informacin de los conocidas como NoSQL.
Almacena los datos en memoria por lo que es muy rpido y es usada como base de datos, como
cache o broker de mensajes. Los datos no se almacenan en tablas como en los sistemas
relacionales tradiciones RDMS como PostgreSQL o MySQL sino en estructuras de datos como
cadenas, hashes, listas, conjuntos, conjuntos ordenado con rangos, bitmaps, hyperloglogs e
ndices geoespaciales. Incorpora replicacin, scripting con LUA, desalojo LRU, transacciones,
diferentes niveles de persistencia en disco y alta disponibilidad con Redis Sentinel y
particionamiento con Redis Cluster.
El punto ms crtico en el rendimiento en una aplicacin suele estar en la base de datos relacional,
dado que han de garantizar las propiedades ACID y almacenan grandes cantidades de datos en
disco son lentas (comparativamente) adems de presentar dificultades para escalar
horizontalmente. Redis almacena los datos en memoria por lo que es significativamente ms
rpida que una base de datos relacional aunque con la limitacin de no poder almacenar las
grandes cantidades de datos medidos hoy en da en terabytes o TiB (1024 GiB) que podra
almacenar una base de datos relacional. Para la necesidad de acceder datos de forma rpida,
de cachear datos a los que acceder rpido, datos a los que se acceden frecuentemente, datos
precalculados, hay grandes cantidades de escrituras o necesidad de escalar Redis es una opcin
a tener en cuenta.
Redis es un sistema de datos clave-valor en el que cada clave tiene asociado un tipo de datos y
unos datos que almacena. Segn el tipo de datos de la clave se pueden realizar
diferentes operaciones o comandos de consulta.
Grupo 1 4
REDIS NOSQL
En Paradigma creemos que siempre se debe usar la mejor herramienta para cada trabajo, en
este caso, la tecnologa de almacenamiento que mejor se ajuste a los requisitos de negocio. Las
tecnologas NoSQL, desde su concepcin, tienen que ver con la especializacin en la gestin de
datos, y Redis es un caso excelente de cmo resolver necesidades concretas con un motor de
almacenamiento, por s mismo, o en combinacin con otras bases de datos NoSQL y/o
relacionales.
Grupo 1 5
REDIS NOSQL
3. Modelo de Datos.
El modelo de datos de Redis se basa en la estructura de datos del tipo diccionario o tabla de
hashes que relaciona una llave a un contenido almacenado en un ndice. La principal diferencia
entre Redis y otros sistemas similares es que los valores no estn limitados a ser de tipo string,
otros tipos de datos estn soportados:
Listas (Lists) de strings
Sets de strings (colecciones de elementos desordenados no repetidos)
hashes donde la llave y el valor son del tipo string
El tipo de valor determina las operaciones (los comandos) que son disponibles. Redis
soporta operaciones atmicas de alto nivel del lado del servidor, como inserciones, unions, y
diferencias entre sets y listas ordenadas. Desde la versin 2.6, liberada a finales de octubre de
2012, se introduce una funcionalidad clave, la posibilidad de ejecutar Scripts en el servidor Redis,
escritos en lenguaje Lua.
Lenguajes Soportados :
Los lenguajes de programacin que soportan Redis son:
ActionScript
C
C++,
C#
Clojure
Common Lisp
Erlang
Go
Haskell
haXe
Io
Java
server-side JavaScript (Node.js)
Lua
Objective-C
Perl
PHP
Pure Data
Python
Ruby
Scala
Smalltalk
Tcl.
Grupo 1 6
REDIS NOSQL
4. Persistencia y Replicacin.
Persistencia
Replicacin
Redis soporta la replicacion del tipo maestro-esclavo, pudindose replicar los datos de
un servidor a muchos esclavos, tambin un esclavo puede ser maestro para otro
esclavo, lo que permite soportar en Redis una replicacin en forma de rbol. Los esclavos
permiten la escritura de datos, lo que puede ocasionar inconsistencias en los datos no
intencionales.
La funcin de publicacin/subscripcin esta totalmente soportada, cuando un cliente
esclavo se subscribe a un canal este recibe un feed completo de publicaciones del
maestro, replicando as en todo el rbol. La replicacin es til para escalar la lectura (no
la escritura) y/o redundar los datos
Grupo 1 7
REDIS NOSQL
El principal uso que se da a Redis es de cach. Imagnate que tienes una plataforma
web y que acceden miles de usuarios registrados por hora.
Cada vez que un usuario visita una pgina de tu plataforma, tienes que hacer varias
consultas a la base de datos para saber si ese usuario con esa cookie est registrado y
est autorizado para ver esa pgina.
Si por ejemplo de media tienes 10.000 usuarios por hora y cada usuario se ha movido
por tu plataforma unas 50 veces, querr decir que tendrs que hacer medio milln de
consultas a la base de datos por hora, conectarte, mandarle los datos, esperar a que
responda, procesar la informacin y devolverla al usuario.
Esto con Redis no pasara ya que, si cachearas la primera vez los datos del usuario, te
ahorraras 490.000 consultas de verificacin por hora.
Grupo 1 8
REDIS NOSQL
A continuacin podemos ver ejemplos de cmo algunas de las empresas ms conocidas del
mundo estn usando Redis.
Twitter usa Redis para mantener el timeline de sus usuarios. El timeline es una lista de
los tuits de las personas a las que se sigue, y Twitter usa Redis para poder actualizar en
el menor tiempo posible los timelines de todos sus usuarios. Teniendo en cuenta que
algunos usuarios tienen ms de 60.000.000 de seguidores, actualizar todas estas listas
cada vez que se escribe un tuit, se convierte en una operacin crtica.
Hulu usa Redis para mantener la posicin en la que un usuario se encuentra en un
vdeo, as como el histrico de visualizaciones de los usuarios.
Pinterest utiliza Redis para mantener la informacin de los usuarios y los tablones que
sigue cada uno.
Flickr utiliza Redis como base del sistema de colas para mantener de manera asncrona
las tareas a realizar sobre las imgenes de los usuarios. Tambin forma parte de la
infraestructura para la generacin de notificaciones push a sus usuarios.
Trello usa Redis para mantener toda la informacin efmera que es necesario compartir
entre todos sus servidores.
Grupo 1 9
REDIS NOSQL
6. Rendimiento.
En escenarios de datos no durables (solo usando memoria RAM) el rendimiento puede ser
extremo comparado con motores de bases de datos,8 tampoco hay una notable diferencia entre
lectura y escritura de datos.
Redis es single threaded, a diferencia de otros sistemas que crean un proceso o fork por cada
peticin nueva. En los servidores actuales es muy comn tener mltiples ncleos, por lo que se
puede dar el caso de desperdiciar toda la potencia del CPU.
Para mejorar el rendimiento del CPU, se puede iniciar mltiples instancias Redis en el mismo
servidor. Hay algunas libreras como Predis (Librera para redis en PHP) que ya realizan esto
de forma automtica.
Limitaciones
La principal limitacin es la memoria, las estructuras de datos no pueden ser ms grandes que
la memoria.
Una vez superada la memoria redis comenzar a hacer swapping y el rendimiento se ver
notablemente afectado. Debemos evitar a toda costa este caso, para ello podemos hacer un
script que monitorice si sucede esto.
Alternativamente tambin existe una opcin maxmemory en el archivo de configuracin que
pone un lmite a la memoria usada. Una vez llegado a ese lmite redis dar error en las
operaciones de escritura pero aceptar las de lectura.
Grupo 1 10
REDIS NOSQL
7. Conclusiones.
Se entiende , por lo ledo y explicado :
Redis es una base de datos en RAM que gracias a que nos permite ahorrarnos millones
de conexiones con la base de datos principal
Gracias A REDIS conseguimos ahorrar muchsimo dinero en servidores a la vez
Conseguimos que nuestra plataforma sea muchsimo ms rpida.
Por lo tanto, aprender Redis es fundamental en cualquier rea de un proyecto a trabajar
para alguna empresa que tenga algn gran proyecto o individual.
Grupo 1 11
REDIS NOSQL
8. Linkografa.
https://picodotdev.github.io/blog-bitix/2017/06/introduccion-a-la-base-de-datos-
nosql-redis/
http://www.antweb.es/servidores/redis-todo-lo-que-debes-saber
https://www.paradigmadigital.com/techbiz/no-solo-clave-valor-redis-te-da-alas/
http://openmymind.net/redis.pdf
https://redis.io/
https://es.wikipedia.org/wiki/Redis
Grupo 1 12