SlideShare a Scribd company logo
An introduction
March 2014 – Septeni Technology

thao_dx@septeni-technology.jp
Over view
• Memcache-ish in-memory key/value store
• But values are complex data types:
o blobs
o lists
o sets
o sorted sets
o hash tables

• And it has persistence.
• Open source; very helpful and friendly community.
• Used in the real world: pinterest, github, craigslist,
bit.ly, engineyard...
Key Features and Cool Stuff

• Speed
• Master/Slave Replication
• All data is eventually persistent
• Handles huge workloads easily
• Variety of Supported Languages
• Support for atomic operations, transactions
• Has pub/sub functionality
• Sharding
List operations
•
•
•
•

Lists are your ordinary linked lists.
You can push and pop at both sides, extract range, resize..
Random access
BLPOP: Blocking POP - wait until a list has elements and pop
them. Useful for realtime stuff.
Set operations
•
•
•

Sets are an unordered collection of Strings
Sets can be intersected/diffed /union'ed server side.
Can be useful as keys when building complex schemata.
Sorted Sets
•
•
•
•

Same as sets, but with score per element
Ranked ranges, aggregation of scores on INTERSECT
Can be used as ordered keys in complex schemata
Think timestamps, inverted index, geohashing, ip ranges
Hashes
• Hash tables as values
• Think of an object store with atomic access to object
• Members
PubSub - Publish/Subscribe
• Clients can subscribe to channels or patterns and receive
• Notifications when messages are sent to channels.
• Use cases: chats, notifycation, real-time applications..
Common Web Use Cases Solved in
Redis
Show latest items listings in your home page

This is a live in-memory cache and is very fast. LPUSH is
used to insert a content ID at the head of the list stored
at a key. LTRIM is used to limit the number of items in
the list to 5000. If the user needs to page beyond this
cache only then are they sent to the database.
Leaderboards and related problems

A leader board is a set sorted by score. The ZADD
commands implements this directly and the
ZREVRANGE command can be used to get the top 100
users by score and ZRANK can be used to get a users
rank. Very direct and easy.
Counting stuff
Keeping stats of all kinds is
common, say you want to know
when to block an IP addresss. The
INCRBY command makes it easy to
atomically keep counters; GETSET
to atomically clear the counter; the
expire attribute can be used to tell
when an key should be deleted.
Caching
Discussion
Thank you.

More Related Content

What's hot

Future of pandas
Future of pandasFuture of pandas
Future of pandas
Jeff Reback
 
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DEVCON
 
Flashtalk david
Flashtalk davidFlashtalk david
Flashtalk david
David Sherlock
 
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
Brian Brazil
 
A user-friendly interface to browse and find DOAP project with doap:store
A user-friendly interface to browse and find DOAP project with doap:storeA user-friendly interface to browse and find DOAP project with doap:store
A user-friendly interface to browse and find DOAP project with doap:store
Alexandre Passant
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
How to Keep Your Data Safe in MongoDB
How to Keep Your Data Safe in MongoDBHow to Keep Your Data Safe in MongoDB
How to Keep Your Data Safe in MongoDB
MongoDB
 
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
Data Con LA
 
Open Source Search FTW
Open Source Search FTWOpen Source Search FTW
Open Source Search FTW
Grant Ingersoll
 
Data streaming-systems
Data streaming-systemsData streaming-systems
Data streaming-systems
imcpune
 
Keeping MongoDB Data Safe
Keeping MongoDB Data SafeKeeping MongoDB Data Safe
Keeping MongoDB Data Safe
Tony Tam
 
Hive
HiveHive
UWP apps development - Part 3
UWP apps development - Part 3UWP apps development - Part 3
UWP apps development - Part 3
Jiri Danihelka
 
Building Distributed Data Streaming System
Building Distributed Data Streaming SystemBuilding Distributed Data Streaming System
Building Distributed Data Streaming System
Ashish Tadose
 
Presto in my_use_case2
Presto in my_use_case2Presto in my_use_case2
Presto in my_use_case2
wyukawa
 
Ursa Labs and Apache Arrow in 2019
Ursa Labs and Apache Arrow in 2019Ursa Labs and Apache Arrow in 2019
Ursa Labs and Apache Arrow in 2019
Wes McKinney
 
Cascalog at May Bay Area Hadoop User Group
Cascalog at May Bay Area Hadoop User GroupCascalog at May Bay Area Hadoop User Group
Cascalog at May Bay Area Hadoop User Group
nathanmarz
 
MongoDB Administration ~ Kevin Hanson
MongoDB Administration ~ Kevin HansonMongoDB Administration ~ Kevin Hanson
MongoDB Administration ~ Kevin Hanson
hungarianhc
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
Redis Labs
 
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
Caserta
 

What's hot (20)

Future of pandas
Future of pandasFuture of pandas
Future of pandas
 
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
DevCon Summit 2014 #DevelopersUnitePH: The "What" and "Why" of NoSQL by Matia...
 
Flashtalk david
Flashtalk davidFlashtalk david
Flashtalk david
 
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
 
A user-friendly interface to browse and find DOAP project with doap:store
A user-friendly interface to browse and find DOAP project with doap:storeA user-friendly interface to browse and find DOAP project with doap:store
A user-friendly interface to browse and find DOAP project with doap:store
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
How to Keep Your Data Safe in MongoDB
How to Keep Your Data Safe in MongoDBHow to Keep Your Data Safe in MongoDB
How to Keep Your Data Safe in MongoDB
 
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
Big Data Day LA 2015 - Lessons Learned from Designing Data Ingest Systems by ...
 
Open Source Search FTW
Open Source Search FTWOpen Source Search FTW
Open Source Search FTW
 
Data streaming-systems
Data streaming-systemsData streaming-systems
Data streaming-systems
 
Keeping MongoDB Data Safe
Keeping MongoDB Data SafeKeeping MongoDB Data Safe
Keeping MongoDB Data Safe
 
Hive
HiveHive
Hive
 
UWP apps development - Part 3
UWP apps development - Part 3UWP apps development - Part 3
UWP apps development - Part 3
 
Building Distributed Data Streaming System
Building Distributed Data Streaming SystemBuilding Distributed Data Streaming System
Building Distributed Data Streaming System
 
Presto in my_use_case2
Presto in my_use_case2Presto in my_use_case2
Presto in my_use_case2
 
Ursa Labs and Apache Arrow in 2019
Ursa Labs and Apache Arrow in 2019Ursa Labs and Apache Arrow in 2019
Ursa Labs and Apache Arrow in 2019
 
Cascalog at May Bay Area Hadoop User Group
Cascalog at May Bay Area Hadoop User GroupCascalog at May Bay Area Hadoop User Group
Cascalog at May Bay Area Hadoop User Group
 
MongoDB Administration ~ Kevin Hanson
MongoDB Administration ~ Kevin HansonMongoDB Administration ~ Kevin Hanson
MongoDB Administration ~ Kevin Hanson
 
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
The Happy Marriage of Redis and Protobuf by Scott Haines of Twilio - Redis Da...
 
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
Big Data Warehousing Meetup: Developing a super-charged NoSQL data mart using...
 

Viewers also liked

Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
Brazil Ecotravel
 
Agri Innovation by Carl Fletcher, OMAFRA
Agri Innovation by Carl Fletcher, OMAFRAAgri Innovation by Carl Fletcher, OMAFRA
Agri Innovation by Carl Fletcher, OMAFRA
Invest in Middlesex
 
CYNTHIA L STOEBICH Jan 2016
CYNTHIA L STOEBICH Jan 2016CYNTHIA L STOEBICH Jan 2016
CYNTHIA L STOEBICH Jan 2016
Cynthia Stoebich
 
PalmaActiva: Presentacio eureka 2012 - dossier de premsa
PalmaActiva: Presentacio eureka 2012 - dossier de premsaPalmaActiva: Presentacio eureka 2012 - dossier de premsa
PalmaActiva: Presentacio eureka 2012 - dossier de premsa
PalmaActiva
 
P&G 2002 Annual Report
P&G 2002 Annual ReportP&G 2002 Annual Report
P&G 2002 Annual Report
finance3
 
fmc technologies 2002ar
fmc technologies 2002arfmc technologies 2002ar
fmc technologies 2002ar
finance50
 
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
inmamine
 
201217 es es
201217 es es201217 es es
201217 es es
ANAANITAANA
 
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Jonathan Dahl
 
El rol del docente en ead
El rol del docente en eadEl rol del docente en ead
El rol del docente en ead
julia_martinez
 
Perseus
PerseusPerseus
Perseus
Hannah Nihan
 
Psicodelia
PsicodeliaPsicodelia
Psicodelia
Linda_Dussan
 
19. salmo 19 cómo conocer a dios
19.  salmo 19 cómo conocer a dios19.  salmo 19 cómo conocer a dios
19. salmo 19 cómo conocer a dios
Comparte la Biblia
 
Intro to Angel.co | Tandem
Intro to Angel.co | TandemIntro to Angel.co | Tandem
Intro to Angel.co | Tandem
Michael Silverwood
 
Teoría de señales
Teoría de señalesTeoría de señales
Teoría de señales
Gleisire Reverol
 
Resiliencia Organizacional
Resiliencia OrganizacionalResiliencia Organizacional
Resiliencia Organizacional
Fermin Crisostomo
 
Zwinnie i pod kontrolą - SCRUM vs COBIT
Zwinnie i pod kontrolą - SCRUM vs COBITZwinnie i pod kontrolą - SCRUM vs COBIT
Zwinnie i pod kontrolą - SCRUM vs COBIT
Przemek Wysota
 
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
Piscóloga - Psicoterapéuta - Consulta Privada
 
Mini Diccionario español - japonés
Mini Diccionario español -  japonésMini Diccionario español -  japonés
Mini Diccionario español - japonés
Julian Cardenas Blanco
 
presidentes-constitucionales-del-ecuador
presidentes-constitucionales-del-ecuadorpresidentes-constitucionales-del-ecuador
presidentes-constitucionales-del-ecuador
georgenunez
 

Viewers also liked (20)

Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
Eco brasil indigena_mma+funai_ecoturismoti_resumo_jun1998
 
Agri Innovation by Carl Fletcher, OMAFRA
Agri Innovation by Carl Fletcher, OMAFRAAgri Innovation by Carl Fletcher, OMAFRA
Agri Innovation by Carl Fletcher, OMAFRA
 
CYNTHIA L STOEBICH Jan 2016
CYNTHIA L STOEBICH Jan 2016CYNTHIA L STOEBICH Jan 2016
CYNTHIA L STOEBICH Jan 2016
 
PalmaActiva: Presentacio eureka 2012 - dossier de premsa
PalmaActiva: Presentacio eureka 2012 - dossier de premsaPalmaActiva: Presentacio eureka 2012 - dossier de premsa
PalmaActiva: Presentacio eureka 2012 - dossier de premsa
 
P&G 2002 Annual Report
P&G 2002 Annual ReportP&G 2002 Annual Report
P&G 2002 Annual Report
 
fmc technologies 2002ar
fmc technologies 2002arfmc technologies 2002ar
fmc technologies 2002ar
 
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
INFORME FORO PARTICIPATIVO. PUERTO DE BARBATE.
 
201217 es es
201217 es es201217 es es
201217 es es
 
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)Asynchronous Processing with Ruby on Rails (RailsConf 2008)
Asynchronous Processing with Ruby on Rails (RailsConf 2008)
 
El rol del docente en ead
El rol del docente en eadEl rol del docente en ead
El rol del docente en ead
 
Perseus
PerseusPerseus
Perseus
 
Psicodelia
PsicodeliaPsicodelia
Psicodelia
 
19. salmo 19 cómo conocer a dios
19.  salmo 19 cómo conocer a dios19.  salmo 19 cómo conocer a dios
19. salmo 19 cómo conocer a dios
 
Intro to Angel.co | Tandem
Intro to Angel.co | TandemIntro to Angel.co | Tandem
Intro to Angel.co | Tandem
 
Teoría de señales
Teoría de señalesTeoría de señales
Teoría de señales
 
Resiliencia Organizacional
Resiliencia OrganizacionalResiliencia Organizacional
Resiliencia Organizacional
 
Zwinnie i pod kontrolą - SCRUM vs COBIT
Zwinnie i pod kontrolą - SCRUM vs COBITZwinnie i pod kontrolą - SCRUM vs COBIT
Zwinnie i pod kontrolą - SCRUM vs COBIT
 
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
Mi primer día en la Guardería: apoyar la adaptación y promover seguridad en e...
 
Mini Diccionario español - japonés
Mini Diccionario español -  japonésMini Diccionario español -  japonés
Mini Diccionario español - japonés
 
presidentes-constitucionales-del-ecuador
presidentes-constitucionales-del-ecuadorpresidentes-constitucionales-del-ecuador
presidentes-constitucionales-del-ecuador
 

Similar to Redis: An introduction

Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
Ofer Zelig
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the World
jhugg
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Implementing the Databese Server session 02
Implementing the Databese Server session 02Implementing the Databese Server session 02
Implementing the Databese Server session 02
Guillermo Julca
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
Chris Gates
 
HBase ArcheTypes
HBase ArcheTypesHBase ArcheTypes
HBase ArcheTypes
Matteo Bertozzi
 
Everything We Learned About In-Memory Data Layout While Building VoltDB
Everything We Learned About In-Memory Data Layout While Building VoltDBEverything We Learned About In-Memory Data Layout While Building VoltDB
Everything We Learned About In-Memory Data Layout While Building VoltDB
jhugg
 
Musings on Secondary Indexing in HBase
Musings on Secondary Indexing in HBaseMusings on Secondary Indexing in HBase
Musings on Secondary Indexing in HBase
Jesse Yates
 
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNAFirst Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
Tomas Cervenka
 
Redis and Bloom Filters - Atlanta Java Users Group 9/2014
Redis and Bloom Filters - Atlanta Java Users Group 9/2014Redis and Bloom Filters - Atlanta Java Users Group 9/2014
Redis and Bloom Filters - Atlanta Java Users Group 9/2014
Christopher Curtin
 
"Data Dynamics: Trends & Patterns Revealed"
"Data Dynamics: Trends & Patterns Revealed""Data Dynamics: Trends & Patterns Revealed"
"Data Dynamics: Trends & Patterns Revealed"
cakepearls17
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
Fabio Fumarola
 
Column Stores and Google BigQuery
Column Stores and Google BigQueryColumn Stores and Google BigQuery
Column Stores and Google BigQuery
Csaba Toth
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
drewz lin
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
jgregory1234
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构
yiditushe
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
mysqlops
 
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
Terry Reese
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploit
Tiago Henriques
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
Tomas Doran
 

Similar to Redis: An introduction (20)

Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the World
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Implementing the Databese Server session 02
Implementing the Databese Server session 02Implementing the Databese Server session 02
Implementing the Databese Server session 02
 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
 
HBase ArcheTypes
HBase ArcheTypesHBase ArcheTypes
HBase ArcheTypes
 
Everything We Learned About In-Memory Data Layout While Building VoltDB
Everything We Learned About In-Memory Data Layout While Building VoltDBEverything We Learned About In-Memory Data Layout While Building VoltDB
Everything We Learned About In-Memory Data Layout While Building VoltDB
 
Musings on Secondary Indexing in HBase
Musings on Secondary Indexing in HBaseMusings on Secondary Indexing in HBase
Musings on Secondary Indexing in HBase
 
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNAFirst Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
First Hive Meetup London 2012-07-10 - Tomas Cervenka - VisualDNA
 
Redis and Bloom Filters - Atlanta Java Users Group 9/2014
Redis and Bloom Filters - Atlanta Java Users Group 9/2014Redis and Bloom Filters - Atlanta Java Users Group 9/2014
Redis and Bloom Filters - Atlanta Java Users Group 9/2014
 
"Data Dynamics: Trends & Patterns Revealed"
"Data Dynamics: Trends & Patterns Revealed""Data Dynamics: Trends & Patterns Revealed"
"Data Dynamics: Trends & Patterns Revealed"
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
Column Stores and Google BigQuery
Column Stores and Google BigQueryColumn Stores and Google BigQuery
Column Stores and Google BigQuery
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
 
Facebook的架构
Facebook的架构Facebook的架构
Facebook的架构
 
Facebook architecture
Facebook architectureFacebook architecture
Facebook architecture
 
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
MarcEdit Shelter-In-Place Webinar 4: Merging, Clustering, and Integrations…oh...
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploit
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
 

Recently uploaded

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 

Recently uploaded (20)

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 

Redis: An introduction

  • 1. An introduction March 2014 – Septeni Technology thao_dx@septeni-technology.jp
  • 2. Over view • Memcache-ish in-memory key/value store • But values are complex data types: o blobs o lists o sets o sorted sets o hash tables • And it has persistence. • Open source; very helpful and friendly community. • Used in the real world: pinterest, github, craigslist, bit.ly, engineyard...
  • 3. Key Features and Cool Stuff • Speed • Master/Slave Replication • All data is eventually persistent • Handles huge workloads easily • Variety of Supported Languages • Support for atomic operations, transactions • Has pub/sub functionality • Sharding
  • 4. List operations • • • • Lists are your ordinary linked lists. You can push and pop at both sides, extract range, resize.. Random access BLPOP: Blocking POP - wait until a list has elements and pop them. Useful for realtime stuff.
  • 5. Set operations • • • Sets are an unordered collection of Strings Sets can be intersected/diffed /union'ed server side. Can be useful as keys when building complex schemata.
  • 6. Sorted Sets • • • • Same as sets, but with score per element Ranked ranges, aggregation of scores on INTERSECT Can be used as ordered keys in complex schemata Think timestamps, inverted index, geohashing, ip ranges
  • 7. Hashes • Hash tables as values • Think of an object store with atomic access to object • Members
  • 8. PubSub - Publish/Subscribe • Clients can subscribe to channels or patterns and receive • Notifications when messages are sent to channels. • Use cases: chats, notifycation, real-time applications..
  • 9. Common Web Use Cases Solved in Redis
  • 10. Show latest items listings in your home page This is a live in-memory cache and is very fast. LPUSH is used to insert a content ID at the head of the list stored at a key. LTRIM is used to limit the number of items in the list to 5000. If the user needs to page beyond this cache only then are they sent to the database.
  • 11. Leaderboards and related problems A leader board is a set sorted by score. The ZADD commands implements this directly and the ZREVRANGE command can be used to get the top 100 users by score and ZRANK can be used to get a users rank. Very direct and easy.
  • 12. Counting stuff Keeping stats of all kinds is common, say you want to know when to block an IP addresss. The INCRBY command makes it easy to atomically keep counters; GETSET to atomically clear the counter; the expire attribute can be used to tell when an key should be deleted.