SlideShare una empresa de Scribd logo
1 de 25
REDIS en Acción
Aprendiendo REDIS en 20 minutos

Gonzalo Chacaltana

gchacaltanab
Conociendo REDIS
• Servidor de base de datos NoSQL de clave-valor (key-value) en
memoria RAM.
• Estructura de datos: Strings, list, sets, set order, hashes.
• Permite expiración de datos.
• Replicación Maestro-Esclavo (master-slave)
• Conexión TCP/IP y sockets (puerto por defecto 6379).
• Evaluación de código LUA.
• Servidor Mono-hilo, no aprovecha los multi-core.
Instalación
Antes de instalar redis, hay un par de requisitos previos que hay que
descargar para iniciar la instalación.
~$ sudo apt-get update

Una vez finalizado, descargamos el metapaquete build-essential, el
cual nos ayudará a instalar redis.
~$ sudo apt-get install build-essential

Finalmente, necesitamos instalar el tcl.
~$ sudo apt-get install tcl8.5
Instalación
Con todos los requisitos descargados, procedemos a instalar redis.
Descargamos desde el tarball de Google, la versión 2.4.16
~$ wget http://redis.googlecode.com/files/redis-2.4.16.tar.gz

Descomprimimos y cambiamos de directorio.
~$ tar xzf redis-2.4.16.tar.gz
~$ cd redis-2.4.16

Procedemos a ejecutar make
~$ make
Instalación
Ejecuta el make test, como recomienda:
~$ make test

Terminamos ejecutando make install para instalar redis en el Sistema.
~$ sudo make install

Una vez instalado, redis viene con un scripts que debemos ejecutar para
que redis corra en background (segundo plano)
~$ cd utils

Desde esta carpeta (utils/) ejecutamos el script
~$ sudo ./install_server.sh

Nos va pedir ingresar el puerto con que queremos trabajar, puedes dejar los
valores por defecto (puerto 6379).
Instalación
Iniciando el servicio de redis
~$ sudo service redis_6379 start

Deteniendo el servicio de redis
~$ sudo service redis_6379 stop

Accediendo a la base de datos redis.
~$ redis-cli

Y te aparecerá el prompt de la consola de redis
redis 127.0.0.1:6379>

Para hacer que redis se ejecute automáticamente al iniciar el Sistema Operativo.
~$ sudo update-rc.d redis_6379 defaults
Strings en Redis
Los Strings pueden almacenar hasta 512 MB y son almacenados en formato binario
por lo que pueden almacenar desde texto hasta imágenes JPG.
Una manera simple de crear un string, con el comando SET
redis 127.0.0.1:6379> set mi_valor “contenido_valor”

Los strings pueden almacenar valores extensos y la llave no necesariamente tiene
que ser una palabra:
redis 127.0.0.1:6379> set user:gchacaltana "job: developer, name:
Gonzalo, surnames: Chacaltana”
Strings en Redis
Obteniendo el valor de un string, con el comando GET
redis 127.0.0.1:6379> get mi_valor
redis 127.0.0.1:6379> get user:gchacaltana
Para agregar un texto a la variable (llave) puede utilizar el comando APPEND
redis 127.0.0.1:6379> set saludo "Hola"
redis 127.0.0.1:6379> append saludo " mundo"
redis 127.0.0.1:6379> get saludo
“Hola mundo”
List en Redis
Las listas en Redis pueden almacenar hasta 4 billones de elementos y el acceso al
primer y último elemento de la lista es mucho mas rápido que el resto de elementos.
Para crear una lista en redis, debemos utilizar uno de los siguientes comandos:
• LPUSH que agrega el elemento a la izquierda de la lista.
• RPUSH que agrega el elemento a la derecha o cola (tail) de la lista.
redis 127.0.0.1:6379> lpush lenguajes "Python”
redis 127.0.0.1:6379> rpush lenguajes "PHP”
redis 127.0.0.1:6379> rpush lenguajes “Haskell”
redis 127.0.0.1:6379> rpush lenguajes “Ruby”
redis 127.0.0.1:6379> rpush lenguajes “Clojure”
redis 127.0.0.1:6379> rpush lenguajes “Go”
List en Redis
Obteniendo valores de la lista, con el comando LRANGE
redis 127.0.0.1:6379> lrange lenguajes 0 6
1) "Python"
2) "PHP"
3) "Haskell"
4) "Clojure"
5) "Go"
6) "Ruby"
List en Redis
Para eliminar los elementos de una lista, usamos el comando LTRIM.
redis 127.0.0.1:6379> ltrim lenguajes 0 2

Lo que hace el comando es eliminar todos los elementos de la lista
que no se encuentren entre los indices 0 y 2.

redis 127.0.0.1:6379> lrange lenguajes 0 5
1) "Python"
2) "PHP"

3) "Haskell"
Sets en Redis
Los sets en Redis (conjuntos),son una colección de cadenas desordenadas. Una
propiedad de este tipo de variable es que no permite repetir un elemento, por
ejemplo cuando deseamos guardar las IPS que se conectan a nuestra aplicación,
con este tipo de variable nos aseguramos que la IP no se repita en los Sets Redis.
Para agregar un elemento se usa el comando SADD.
redis 127.0.0.1:6379> sadd vocales a

También podemos enviarle más de un valor.

redis 127.0.0.1:6379> sadd vocales e i o u
Sets en Redis
Para mostrar los elementos del set redis, usamos el comando SMEMBERS.
redis 127.0.0.1:6379> smembers vocales
1) "o"

2) "i"
3) "e"
4) "a"

5) "u"
Sets en Redis
Para obtener los elementos repetidos de DOS SETS Redis, usamos el comando
SINTER.
redis 127.0.0.1:6379> sadd abecedario a b c d e
(integer) 5
redis 127.0.0.1:6379> sinter vocales abecedario
1) "e"
2) "a“
Retorna un sets con los valores repetidos.
El comando SINTER, puede recibir mas de 2 sets separados por espacios.
Sets en Redis
Para obtener un elemento al azar (random) de un SETS Redis, y a su vez que sea
eliminado, usamos el comando SPOP.
redis 127.0.0.1:6379> spop abecedario
"c"
redis 127.0.0.1:6379> smembers abecedario
1) "d"
2) "e"
3) "a"
4) "b"
Hashes en Redis
Los hash (hashes) son variables para representar objetos, por lo que almacena un conjunto de valores
en forma de columnas.
Con el comando HMSET, creamos un registro de datos

redis 127.0.0.1:6379> hmset user:1000 username gchacaltana password
mi_clave_secreta twitter @gchacaltanab
Con el comando HGETALL, obtenemos el valor completo de un registro.

redis 127.0.0.1:6379> hgetall user:1000
1) "username"
2) "gchacaltana"
3) "password"
4) "mi_clave_secreta"
5) "twitter"

6) "@gchacaltanab"
Hashes en Redis
Con el comando HSET, modificamos un valor de un campo de un registro.

redis 127.0.0.1:6379> hset user:1000 password 123456

redis 127.0.0.1:6379> hgetall user:1000

1) "username"
2) "gchacaltana"
3) "password"
4) "123456"
5) "twitter"
6) "@gchacaltanab"
Expiración de datos
Redis no solo es utilizado para el almacenamiento de datos, también es muy
utilizado para la expiración de datos.
Por ejemplo, creamos un string con un “valor secreto”

redis 127.0.0.1:6379> set information "secret"

Y le asignamos un tiempo de expiración de 45 segundos
redis 127.0.0.1:6379> expire information 45
Para poder visualizar cuanto tiempo le queda, usamos el comando ttl.
redis 127.0.0.1:6379> ttl information
(integer) 27
Incrementales
Incrementar en 1 el valor de una llave (solo si su valor es un dato
numerico - integer), usando el comando INCR
redis 127.0.0.1:6379> set edad 20
redis 127.0.0.1:6379> incr edad
(integer) 21
redis 127.0.0.1:6379> get edad
"21"

Incrementando en “X” un valor, con el comando INCRBY
redis 127.0.0.1:6379> incrby edad 8
(integer) 29
Decrementales
Restar en 1 el valor de una llave (solo si su valor es un dato
numerico - integer), usando el comando DECR
redis 127.0.0.1:6379> decr edad
(integer) 28

Restando en “X” un valor, con el comando DECRBY
redis 127.0.0.1:6379> decrby edad 8
(integer) 20
Otros comandos
Obteniendo la longitud de un string, con el comando STRLEN.
redis 127.0.0.1:6379> set saludo "Hola mundo"
OK

redis 127.0.0.1:6379> strlen saludo
(integer) 10

Obteniendo parte de un string, con el comando GETRANGE
redis 127.0.0.1:6379> getrange saludo 0 5
"Hola m"
Documentación
Documentación oficial de redis: http://redis.io/documentation
Tiago Macedo, Fred Oliveira
Link

Gonzalo Chacaltana

gchacaltanab

Más contenido relacionado

La actualidad más candente

INTRODUCTION TO IIS
INTRODUCTION TO IISINTRODUCTION TO IIS
INTRODUCTION TO IISsanya6900
 
Using Zabbix in IoT Architecture
Using Zabbix in IoT ArchitectureUsing Zabbix in IoT Architecture
Using Zabbix in IoT ArchitectureGruppo Finmatica
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo TextoCaio Lima
 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questionspraveen_guda
 
Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak Andrei Amador
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersShubham Gupta
 
Guía para la instalación de Microsoft Access 2010
Guía para la instalación de Microsoft Access 2010Guía para la instalación de Microsoft Access 2010
Guía para la instalación de Microsoft Access 2010Zantiago Thrash
 
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL databaseHBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL databaseEdureka!
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorialMohammed Fazuluddin
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJSHoang Long
 
Cql – cassandra query language
Cql – cassandra query languageCql – cassandra query language
Cql – cassandra query languageCourtney Robinson
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentationadamcookeuk
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewMaría Angélica Bracho
 
Microsoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxMicrosoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxsamtakke1
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 

La actualidad más candente (20)

INTRODUCTION TO IIS
INTRODUCTION TO IISINTRODUCTION TO IIS
INTRODUCTION TO IIS
 
Using Zabbix in IoT Architecture
Using Zabbix in IoT ArchitectureUsing Zabbix in IoT Architecture
Using Zabbix in IoT Architecture
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
 
Ibm web sphere application server interview questions
Ibm web sphere application server interview questionsIbm web sphere application server interview questions
Ibm web sphere application server interview questions
 
Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak
 
IBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginnersIBM Websphere introduction and installation for beginners
IBM Websphere introduction and installation for beginners
 
Guía para la instalación de Microsoft Access 2010
Guía para la instalación de Microsoft Access 2010Guía para la instalación de Microsoft Access 2010
Guía para la instalación de Microsoft Access 2010
 
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL databaseHBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
 
MySQL Basics
MySQL BasicsMySQL Basics
MySQL Basics
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorial
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
Amazon Web Services AWS
Amazon Web Services AWSAmazon Web Services AWS
Amazon Web Services AWS
 
Cql – cassandra query language
Cql – cassandra query languageCql – cassandra query language
Cql – cassandra query language
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
.Net Core
.Net Core.Net Core
.Net Core
 
Microsoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxMicrosoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptx
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
Redis introduction
Redis introductionRedis introduction
Redis introduction
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 

Similar a Aprendiendo REDIS en 20 minutos

Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBAcyberleon95
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpEdgar Solis
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuDavid Vevelas
 
Scapy. Generación y manipulación básica de paquetes de red
Scapy. Generación y manipulación básica de paquetes de redScapy. Generación y manipulación básica de paquetes de red
Scapy. Generación y manipulación básica de paquetes de redDavid Cristóbal
 
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyPostfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyHenry Cristian Cuesta Vega
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en WindowsErick Cruz
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionhugoAlvidrez
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administraciónJuan Ladetto
 
Presentacion sobre cassandra
Presentacion sobre cassandraPresentacion sobre cassandra
Presentacion sobre cassandrajesusnoseq
 
Practica con firewall asa
Practica con firewall asaPractica con firewall asa
Practica con firewall asaMELGO2012
 
Practica con firewall asa
Practica con firewall asaPractica con firewall asa
Practica con firewall asawebsyo
 
Practica con firewall ASA
Practica con firewall ASAPractica con firewall ASA
Practica con firewall ASAwebsyo
 
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780Osvaldo Cantone
 

Similar a Aprendiendo REDIS en 20 minutos (20)

Curso gratuito de Redis
Curso gratuito de RedisCurso gratuito de Redis
Curso gratuito de Redis
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBA
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmp
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
Scapy. Generación y manipulación básica de paquetes de red
Scapy. Generación y manipulación básica de paquetes de redScapy. Generación y manipulación básica de paquetes de red
Scapy. Generación y manipulación básica de paquetes de red
 
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyPostfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
 
Manual de uso_de_squid
Manual de uso_de_squidManual de uso_de_squid
Manual de uso_de_squid
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administración
 
Presentacion sobre cassandra
Presentacion sobre cassandraPresentacion sobre cassandra
Presentacion sobre cassandra
 
Practica con firewall asa
Practica con firewall asaPractica con firewall asa
Practica con firewall asa
 
Practica con firewall asa
Practica con firewall asaPractica con firewall asa
Practica con firewall asa
 
Practica con firewall ASA
Practica con firewall ASAPractica con firewall ASA
Practica con firewall ASA
 
Guia cluster
Guia clusterGuia cluster
Guia cluster
 
Exposicion Mysql
Exposicion MysqlExposicion Mysql
Exposicion Mysql
 
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
IoT: Servidor web con_arduino_ethernet_shield_y_display_lcd 44780
 

Último

05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxMaritza438836
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfSarayLuciaSnchezFigu
 

Último (20)

05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
 

Aprendiendo REDIS en 20 minutos

  • 1. REDIS en Acción Aprendiendo REDIS en 20 minutos Gonzalo Chacaltana gchacaltanab
  • 2.
  • 3. Conociendo REDIS • Servidor de base de datos NoSQL de clave-valor (key-value) en memoria RAM. • Estructura de datos: Strings, list, sets, set order, hashes. • Permite expiración de datos. • Replicación Maestro-Esclavo (master-slave) • Conexión TCP/IP y sockets (puerto por defecto 6379). • Evaluación de código LUA. • Servidor Mono-hilo, no aprovecha los multi-core.
  • 4.
  • 5. Instalación Antes de instalar redis, hay un par de requisitos previos que hay que descargar para iniciar la instalación. ~$ sudo apt-get update Una vez finalizado, descargamos el metapaquete build-essential, el cual nos ayudará a instalar redis. ~$ sudo apt-get install build-essential Finalmente, necesitamos instalar el tcl. ~$ sudo apt-get install tcl8.5
  • 6. Instalación Con todos los requisitos descargados, procedemos a instalar redis. Descargamos desde el tarball de Google, la versión 2.4.16 ~$ wget http://redis.googlecode.com/files/redis-2.4.16.tar.gz Descomprimimos y cambiamos de directorio. ~$ tar xzf redis-2.4.16.tar.gz ~$ cd redis-2.4.16 Procedemos a ejecutar make ~$ make
  • 7. Instalación Ejecuta el make test, como recomienda: ~$ make test Terminamos ejecutando make install para instalar redis en el Sistema. ~$ sudo make install Una vez instalado, redis viene con un scripts que debemos ejecutar para que redis corra en background (segundo plano) ~$ cd utils Desde esta carpeta (utils/) ejecutamos el script ~$ sudo ./install_server.sh Nos va pedir ingresar el puerto con que queremos trabajar, puedes dejar los valores por defecto (puerto 6379).
  • 8. Instalación Iniciando el servicio de redis ~$ sudo service redis_6379 start Deteniendo el servicio de redis ~$ sudo service redis_6379 stop Accediendo a la base de datos redis. ~$ redis-cli Y te aparecerá el prompt de la consola de redis redis 127.0.0.1:6379> Para hacer que redis se ejecute automáticamente al iniciar el Sistema Operativo. ~$ sudo update-rc.d redis_6379 defaults
  • 9.
  • 10. Strings en Redis Los Strings pueden almacenar hasta 512 MB y son almacenados en formato binario por lo que pueden almacenar desde texto hasta imágenes JPG. Una manera simple de crear un string, con el comando SET redis 127.0.0.1:6379> set mi_valor “contenido_valor” Los strings pueden almacenar valores extensos y la llave no necesariamente tiene que ser una palabra: redis 127.0.0.1:6379> set user:gchacaltana "job: developer, name: Gonzalo, surnames: Chacaltana”
  • 11. Strings en Redis Obteniendo el valor de un string, con el comando GET redis 127.0.0.1:6379> get mi_valor redis 127.0.0.1:6379> get user:gchacaltana Para agregar un texto a la variable (llave) puede utilizar el comando APPEND redis 127.0.0.1:6379> set saludo "Hola" redis 127.0.0.1:6379> append saludo " mundo" redis 127.0.0.1:6379> get saludo “Hola mundo”
  • 12. List en Redis Las listas en Redis pueden almacenar hasta 4 billones de elementos y el acceso al primer y último elemento de la lista es mucho mas rápido que el resto de elementos. Para crear una lista en redis, debemos utilizar uno de los siguientes comandos: • LPUSH que agrega el elemento a la izquierda de la lista. • RPUSH que agrega el elemento a la derecha o cola (tail) de la lista. redis 127.0.0.1:6379> lpush lenguajes "Python” redis 127.0.0.1:6379> rpush lenguajes "PHP” redis 127.0.0.1:6379> rpush lenguajes “Haskell” redis 127.0.0.1:6379> rpush lenguajes “Ruby” redis 127.0.0.1:6379> rpush lenguajes “Clojure” redis 127.0.0.1:6379> rpush lenguajes “Go”
  • 13. List en Redis Obteniendo valores de la lista, con el comando LRANGE redis 127.0.0.1:6379> lrange lenguajes 0 6 1) "Python" 2) "PHP" 3) "Haskell" 4) "Clojure" 5) "Go" 6) "Ruby"
  • 14. List en Redis Para eliminar los elementos de una lista, usamos el comando LTRIM. redis 127.0.0.1:6379> ltrim lenguajes 0 2 Lo que hace el comando es eliminar todos los elementos de la lista que no se encuentren entre los indices 0 y 2. redis 127.0.0.1:6379> lrange lenguajes 0 5 1) "Python" 2) "PHP" 3) "Haskell"
  • 15. Sets en Redis Los sets en Redis (conjuntos),son una colección de cadenas desordenadas. Una propiedad de este tipo de variable es que no permite repetir un elemento, por ejemplo cuando deseamos guardar las IPS que se conectan a nuestra aplicación, con este tipo de variable nos aseguramos que la IP no se repita en los Sets Redis. Para agregar un elemento se usa el comando SADD. redis 127.0.0.1:6379> sadd vocales a También podemos enviarle más de un valor. redis 127.0.0.1:6379> sadd vocales e i o u
  • 16. Sets en Redis Para mostrar los elementos del set redis, usamos el comando SMEMBERS. redis 127.0.0.1:6379> smembers vocales 1) "o" 2) "i" 3) "e" 4) "a" 5) "u"
  • 17. Sets en Redis Para obtener los elementos repetidos de DOS SETS Redis, usamos el comando SINTER. redis 127.0.0.1:6379> sadd abecedario a b c d e (integer) 5 redis 127.0.0.1:6379> sinter vocales abecedario 1) "e" 2) "a“ Retorna un sets con los valores repetidos. El comando SINTER, puede recibir mas de 2 sets separados por espacios.
  • 18. Sets en Redis Para obtener un elemento al azar (random) de un SETS Redis, y a su vez que sea eliminado, usamos el comando SPOP. redis 127.0.0.1:6379> spop abecedario "c" redis 127.0.0.1:6379> smembers abecedario 1) "d" 2) "e" 3) "a" 4) "b"
  • 19. Hashes en Redis Los hash (hashes) son variables para representar objetos, por lo que almacena un conjunto de valores en forma de columnas. Con el comando HMSET, creamos un registro de datos redis 127.0.0.1:6379> hmset user:1000 username gchacaltana password mi_clave_secreta twitter @gchacaltanab Con el comando HGETALL, obtenemos el valor completo de un registro. redis 127.0.0.1:6379> hgetall user:1000 1) "username" 2) "gchacaltana" 3) "password" 4) "mi_clave_secreta" 5) "twitter" 6) "@gchacaltanab"
  • 20. Hashes en Redis Con el comando HSET, modificamos un valor de un campo de un registro. redis 127.0.0.1:6379> hset user:1000 password 123456 redis 127.0.0.1:6379> hgetall user:1000 1) "username" 2) "gchacaltana" 3) "password" 4) "123456" 5) "twitter" 6) "@gchacaltanab"
  • 21. Expiración de datos Redis no solo es utilizado para el almacenamiento de datos, también es muy utilizado para la expiración de datos. Por ejemplo, creamos un string con un “valor secreto” redis 127.0.0.1:6379> set information "secret" Y le asignamos un tiempo de expiración de 45 segundos redis 127.0.0.1:6379> expire information 45 Para poder visualizar cuanto tiempo le queda, usamos el comando ttl. redis 127.0.0.1:6379> ttl information (integer) 27
  • 22. Incrementales Incrementar en 1 el valor de una llave (solo si su valor es un dato numerico - integer), usando el comando INCR redis 127.0.0.1:6379> set edad 20 redis 127.0.0.1:6379> incr edad (integer) 21 redis 127.0.0.1:6379> get edad "21" Incrementando en “X” un valor, con el comando INCRBY redis 127.0.0.1:6379> incrby edad 8 (integer) 29
  • 23. Decrementales Restar en 1 el valor de una llave (solo si su valor es un dato numerico - integer), usando el comando DECR redis 127.0.0.1:6379> decr edad (integer) 28 Restando en “X” un valor, con el comando DECRBY redis 127.0.0.1:6379> decrby edad 8 (integer) 20
  • 24. Otros comandos Obteniendo la longitud de un string, con el comando STRLEN. redis 127.0.0.1:6379> set saludo "Hola mundo" OK redis 127.0.0.1:6379> strlen saludo (integer) 10 Obteniendo parte de un string, con el comando GETRANGE redis 127.0.0.1:6379> getrange saludo 0 5 "Hola m"
  • 25. Documentación Documentación oficial de redis: http://redis.io/documentation Tiago Macedo, Fred Oliveira Link Gonzalo Chacaltana gchacaltanab