REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de...

24
REDIS JAVIER MARTÍNEZ ÁLVAREZ - UO258092 ISMAEL CADENAS ALONSO – UO251025 IGNACIO BERMEJO ÁLVAREZ – UO240279 CHRISTIAN PELÁEZ FERNÁNDEZ - UO258764

Transcript of REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de...

Page 1: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

REDISJAVIER MARTÍNEZ ÁLVAREZ - UO258092

ISMAEL CADENAS ALONSO – UO251025

IGNACIO BERMEJO ÁLVAREZ – UO240279

CHRISTIAN PELÁEZ FERNÁNDEZ - UO258764

Page 2: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Introducción

Page 3: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

¿Qué es?•Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor).

•El nombre Redis significa REmote DIctionary Server (servidor de diccionario remoto).

•Entre los casos de uso principales de Redis se encuentran el almacenamiento en caché, la administración de sesiones, pub/sub y las clasificaciones.

•Tiene licencia BSD, está escrito en código C optimizado y admite numerosos lenguajes de desarrollo. • ActionScript, C, C++, C#, Clojure, CommonLisp, Erlang, Go, Haskell, haXe, Io, Java, JavaScript (Node.js),

Lua, Objective-C, Perl, PHP, Pure Data, Python, Ruby, Scala, Smalltalk y Tcl.

Page 4: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

¿Cómo funciona?

Incorpora un conjunto de estructuras de datos en memoria versátiles que le

permiten crear con facilidad diversas aplicaciones personalizadas.

Proporciona acceso a estructuras de datos mutables a través de un conjunto de comandos, que se envían

utilizando un modelo servidor-cliente con sockets TCP y un protocolo simple.

Permite el uso de estructuras más complejas y flexibles que abren una serie de

posibilidades ante las distintas necesidades de aplicaciones de negocio.

Ofrece 5 estructuras de datos con los que es posible modelar la solución más

adecuada para cubrir las necesidades de un proyecto.

Page 5: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

¿Cómo funciona?

STRINGS

LISTSSETS

SORTED SETS HASHES

Page 6: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Ventajas y desventajas

Una velocidad muy por rápida gracias a su almacenamiento

en memoria

Posibilidad de persistir datos en disco para recuperación ante

fallas

Fácil configuración

Alta disponibilidad

Curva de aprendizaje

baja

Extensible usando LUA

scripting

Una variedad de tipos de datos

Compatibilidad con gran variedad

de lenguajes

Todos los datos trabajados deben

encajar en la memoria (en caso de no usar persistencia física)

El método de persistencia RDB

consume mucho I/O (escritura en disco)

Page 7: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Atributos de calidad

RENDIMIENTO EXTENSIBILIDAD USABILIDAD COMPATIBILIDAD FIABILIDAD

Page 8: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Stakeholders

Socios Colaboradores Clientes

Page 9: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

GIT

Page 10: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Repositorios

Documentación -> https://github.com/antirez/redis-doc

Página web -> https://github.com/antirez/redis-io

Desarrollo -> https://github.com/antirez/redis

Page 11: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Desarrollo

Page 12: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Integración continua

GitHub Actions

Page 13: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Comunidad

Formas de contribuir:

• Añadir funcionalidad a la aplicación

• Arreglar fallos o reportarlos mediante issues

• Mejorar la documentación o la página web

• Mantener y añadir librerías de clientes

Page 14: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Arquitectura y patrones

Page 15: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor
Page 16: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Arquitectura

Page 17: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Única instancia

Page 18: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Múltiples instancias

Clústering Replicación

Page 19: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

PruebasCOMPILACIÓN Y PRUEBAS DE REDIS

Page 20: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Compilación

CLONAR ÚLTIMA VERSIÓN ESTABLE (SRC)

$ curl -O http://download.redis.io/redis-stable.tar.gz

$ tar xvzf redis-stable.tar.gz

$ cd redis-stable

COMPILAR

$ make

COMPROBAR QUE SE HA COMPILADO CORRECTAMENTE

$ make test

PREREQUISITOS

- Linux, OSX, OpenBSD, NetBSD o FreeBSD

- GCC

- make

Finalizando el proceso de compilación

Page 21: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Ejecución

$ cd src

ARRANCAR SERVIDOR (Configuración DEFAULT)

$ ./redis-server

ARRANCAR SERVIDOR (Configuración CUSTOM)

$ ./redis-server <<config-file.conf>>

Ejecutando el servidor

Page 22: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Pruebas

CONECTARSE A REDIS CLI

$ cd src

$ ./redis-cli

EJEMPLO COMANDOS REDIS CLI:

- Variable (set y get)

$ set <<varible-name>> <<value>>

$ get <<variable-name>>

- Incrementar un contador

$ incr <<counter-name>>

Pruebas usando Redis CLI

Lista de comandos disponibles: https://redis.io/commands

Page 23: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

Ejemplo usando .NET Core

Ejemplo usando .NET Core y StackExchange.Redis

Salida del programa

StackExchange.Redis: https://github.com/StackExchange/StackExchange.Redis

Page 24: REDIS•Redises un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor). •El nombre Redis significa RE mote DI ctionary S erver (servidor

¿Alguna pregunta?