SlideShare uma empresa Scribd logo
1 de 21
#redisldn




    Welcome
(The First) London Redis Meetup

       @robbiehudson
       @adamcharnock
          @bash
#redisldn

                               The Agenda
• Quick Redis introduction
• Using Redis to store all our data, hahaha
  (Rob & Adam / PlayNice.ly)


• Queuing and non-persistent lists
  (Thomas / Mint Digital)


• Super-fast caching and Redis
  (Demis / mFlow)


• QA
#redisldn




Onwards!
#redisldn

What is Redis?
#redisldn

                What is Redis?

• Advanced key value store
• Data Structure Server (+ more!)
 • Lists, Sets, Hashes
                     (and lots of other cool stuff)


• Super-fast in Memory
 • But it is persistent, and now supports VM
#redisldn

  Created by...




Salvatore Sanfilippo (@antirez)
          ... now VMWare
    ... and Pieter Noordhuis
#redisldn

               Redis and PlayNice.ly

•   PlayNice.ly: Collaboration web app for software developers...
 •   So, a bug tracker :)



• And we store all our information in Redis
 •   users, projects, bugs, comments, audit logging, search indexes...
#redisldn

       Redis schema example


• Why you need a schema? ho ho ho
#redisldn

                     Users

user:5:name → “Pete Mascot”
user:5:username → “pete”
user:5:email → “pete@playnice.ly”
#redisldn

                   Projects

project:9:name → “Alan Parson’s Project”
project:9:created_at → 1274815155
...
#redisldn

   Linking users to projects

user:5:projects → SET(2, 9, 13)

project:9:users → SET(3, 5, 9)
#redisldn

 But that looks like hard work!


• Yes it is, so use a model!
#redisldn

                ORM for Redis

• Ohm: http://ohm.keyvalue.org (Ruby)
• http://github.com/nateware/redis-objects (Ruby)
• http://github.com/whoahbot/dm-redis-adapter (Ruby)
• http://github.com/kijin/stalkr (PHP, “not production ready”)
• Roll your own (like we did, for Python)
#redisldn

    A quick example
>>> user = models.User.create()
>>> user.user_id
6
>>> user.name = "Pete"
>>> user.name
u'Pete'
>>> user.projects
[]
#redisldn

    A quick example

>>> project = models.Project.create()
>>> project.project_id
8
>>> project.users
[]
#redisldn

    A quick example

>>> project.users.add(6)
>>> project.users
[6]
>>> user.projects
[8]
#redisldn

Proving it actually worked...
>>> redis.get("user:6:name")
'Pete'

>>> redis.smembers("project:8:users")
set(['6'])

>>> redis.smembers("user:6:projects")
set(['8'])
#redisldn

                      Summary
• It is very fast!
• Other cool stuff:
 • search
 • migrations
 • message queuing
• PlayNice.ly is entering into Private Beta in the next few
 weeks!
#redisldn

             Find out more!

•http://playnice.ly
• http://playnice.ly/blog
• @playnicelyapp
#redisldn

                               The Agenda

• Quick Redis introduction
• Using Redis to store all our data, hahaha
  (Rob & Adam / PlayNice.ly)


• Queuing and non-persistent lists
  (Thomas / Mint Digital)


• Super-fast caching and Redis
  (Demis / mFlow)
#redisldn




   Thanks!
Any Questions?

Mais conteúdo relacionado

Mais procurados

Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic ApproachLiving with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic ApproachJeremy Zawodny
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5scdn
 
Real time fulltext search with sphinx
Real time fulltext search with sphinxReal time fulltext search with sphinx
Real time fulltext search with sphinxAdrian Nuta
 
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013gwhathistory
 
Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.UA Mobile
 
Contributing to rails
Contributing to railsContributing to rails
Contributing to railsLukas Eppler
 
Object data manager Tutorials
Object data manager TutorialsObject data manager Tutorials
Object data manager Tutorialsjivandip7
 
Wikimedia-Architecture-More-With-Less
Wikimedia-Architecture-More-With-LessWikimedia-Architecture-More-With-Less
Wikimedia-Architecture-More-With-LessAsher Feldman
 
Building Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics worldBuilding Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics worldOren Eini
 
Programas para su PC
Programas para su PCProgramas para su PC
Programas para su PCxqueipo
 
Coursera amazon cloudsearch presentation
Coursera amazon cloudsearch presentation Coursera amazon cloudsearch presentation
Coursera amazon cloudsearch presentation Michael Bohlig
 

Mais procurados (14)

Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic ApproachLiving with SQL and NoSQL at craigslist, a Pragmatic Approach
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
 
Real time fulltext search with sphinx
Real time fulltext search with sphinxReal time fulltext search with sphinx
Real time fulltext search with sphinx
 
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
Lessons Learned Setting Up the OSM Stack Workshop SotM US 2013
 
Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.Reactive Xamarin. UA Mobile 2016.
Reactive Xamarin. UA Mobile 2016.
 
Contributing to rails
Contributing to railsContributing to rails
Contributing to rails
 
Object data manager Tutorials
Object data manager TutorialsObject data manager Tutorials
Object data manager Tutorials
 
Wikimedia-Architecture-More-With-Less
Wikimedia-Architecture-More-With-LessWikimedia-Architecture-More-With-Less
Wikimedia-Architecture-More-With-Less
 
Ruby on Redis
Ruby on RedisRuby on Redis
Ruby on Redis
 
The future of node
The future of nodeThe future of node
The future of node
 
Building Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics worldBuilding Codealike: a journey into the developers analytics world
Building Codealike: a journey into the developers analytics world
 
Programas para su PC
Programas para su PCProgramas para su PC
Programas para su PC
 
Bar Camp Atl3
Bar Camp Atl3Bar Camp Atl3
Bar Camp Atl3
 
Coursera amazon cloudsearch presentation
Coursera amazon cloudsearch presentation Coursera amazon cloudsearch presentation
Coursera amazon cloudsearch presentation
 

Destaque

Bca 2010 draft
Bca 2010 draftBca 2010 draft
Bca 2010 draftk20eagan74
 
Intro computer
Intro computerIntro computer
Intro computerprajug2503
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process ModernizationDheeraj Remella
 
ε λ λ α δ α ρ α
ε λ λ α δ α ρ αε λ λ α δ α ρ α
ε λ λ α δ α ρ αfilipj2000
 
Do You Straight Talk
Do You Straight TalkDo You Straight Talk
Do You Straight Talktheomarx
 
Sinfonia patagonica dim_10
Sinfonia patagonica dim_10Sinfonia patagonica dim_10
Sinfonia patagonica dim_10filipj2000
 
Reported speech j y f
Reported speech j y fReported speech j y f
Reported speech j y ffuenxesla
 
Global warming
Global warmingGlobal warming
Global warmingd174167
 
Information society to knowledge society
Information society to knowledge societyInformation society to knowledge society
Information society to knowledge societyMou Mukherjee-Das
 
Microsoft Power Point Sig Presentation Final
Microsoft Power Point   Sig Presentation FinalMicrosoft Power Point   Sig Presentation Final
Microsoft Power Point Sig Presentation Finalsimgesm
 
Aloha from hawaii
Aloha from hawaiiAloha from hawaii
Aloha from hawaiifilipj2000
 
Costing System example מערכת תמחיר - דוגמא
Costing System example      מערכת תמחיר - דוגמאCosting System example      מערכת תמחיר - דוגמא
Costing System example מערכת תמחיר - דוגמאoferyuval
 
sminason & smita pics
sminason & smita picssminason & smita pics
sminason & smita picsSMITASUN
 
Modeling Social Data, Lecture 8: Recommendation Systems
Modeling Social Data, Lecture 8: Recommendation SystemsModeling Social Data, Lecture 8: Recommendation Systems
Modeling Social Data, Lecture 8: Recommendation Systemsjakehofman
 

Destaque (20)

Bca 2010 draft
Bca 2010 draftBca 2010 draft
Bca 2010 draft
 
Intro computer
Intro computerIntro computer
Intro computer
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process Modernization
 
Intro computer
Intro computerIntro computer
Intro computer
 
ε λ λ α δ α ρ α
ε λ λ α δ α ρ αε λ λ α δ α ρ α
ε λ λ α δ α ρ α
 
Do You Straight Talk
Do You Straight TalkDo You Straight Talk
Do You Straight Talk
 
Sinfonia patagonica dim_10
Sinfonia patagonica dim_10Sinfonia patagonica dim_10
Sinfonia patagonica dim_10
 
Reported speech j y f
Reported speech j y fReported speech j y f
Reported speech j y f
 
Borging lokaal klimaatbeleid sos 3 2010 v1.0
Borging lokaal klimaatbeleid sos 3 2010 v1.0Borging lokaal klimaatbeleid sos 3 2010 v1.0
Borging lokaal klimaatbeleid sos 3 2010 v1.0
 
Brite zeynep 2012
Brite zeynep 2012Brite zeynep 2012
Brite zeynep 2012
 
Global warming
Global warmingGlobal warming
Global warming
 
Creativity
CreativityCreativity
Creativity
 
The Voice 2000 edition
The Voice 2000 editionThe Voice 2000 edition
The Voice 2000 edition
 
Information society to knowledge society
Information society to knowledge societyInformation society to knowledge society
Information society to knowledge society
 
Impresora en red faty
Impresora en red fatyImpresora en red faty
Impresora en red faty
 
Microsoft Power Point Sig Presentation Final
Microsoft Power Point   Sig Presentation FinalMicrosoft Power Point   Sig Presentation Final
Microsoft Power Point Sig Presentation Final
 
Aloha from hawaii
Aloha from hawaiiAloha from hawaii
Aloha from hawaii
 
Costing System example מערכת תמחיר - דוגמא
Costing System example      מערכת תמחיר - דוגמאCosting System example      מערכת תמחיר - דוגמא
Costing System example מערכת תמחיר - דוגמא
 
sminason & smita pics
sminason & smita picssminason & smita pics
sminason & smita pics
 
Modeling Social Data, Lecture 8: Recommendation Systems
Modeling Social Data, Lecture 8: Recommendation SystemsModeling Social Data, Lecture 8: Recommendation Systems
Modeling Social Data, Lecture 8: Recommendation Systems
 

Semelhante a PlayNice.ly: Using Redis to store all our data, hahaha (Redis London Meetup)

Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP LondonRicard Clau
 
Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Justin Carmony
 
Redis - The Universal NoSQL Tool
Redis - The Universal NoSQL ToolRedis - The Universal NoSQL Tool
Redis - The Universal NoSQL ToolEberhard Wolff
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Dave Nielsen
 
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRicard Clau
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Dave Nielsen
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019Dave Nielsen
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019Dave Nielsen
 
Data Science meets Software Development
Data Science meets Software DevelopmentData Science meets Software Development
Data Science meets Software DevelopmentAlexis Seigneurin
 
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientBuilding Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientMike Friedman
 
RedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedis Labs
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
 

Semelhante a PlayNice.ly: Using Redis to store all our data, hahaha (Redis London Meetup) (20)

Redis At 6Wunderkinder
Redis At 6WunderkinderRedis At 6Wunderkinder
Redis At 6Wunderkinder
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP London
 
Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)
 
Redis - The Universal NoSQL Tool
Redis - The Universal NoSQL ToolRedis - The Universal NoSQL Tool
Redis - The Universal NoSQL Tool
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
REDIS327
REDIS327REDIS327
REDIS327
 
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
Microservices - Is it time to breakup?
Microservices - Is it time to breakup? Microservices - Is it time to breakup?
Microservices - Is it time to breakup?
 
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 201910 Ways to Scale Your Website Silicon Valley Code Camp 2019
10 Ways to Scale Your Website Silicon Valley Code Camp 2019
 
10 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 201910 Ways to Scale with Redis - LA Redis Meetup 2019
10 Ways to Scale with Redis - LA Redis Meetup 2019
 
Data Science meets Software Development
Data Science meets Software DevelopmentData Science meets Software Development
Data Science meets Software Development
 
Dibi Conference 2012
Dibi Conference 2012Dibi Conference 2012
Dibi Conference 2012
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
 
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientBuilding Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::Client
 
RedisConf18 - Redis on Flash
RedisConf18 - Redis on FlashRedisConf18 - Redis on Flash
RedisConf18 - Redis on Flash
 
Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 

Último

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

PlayNice.ly: Using Redis to store all our data, hahaha (Redis London Meetup)

  • 1. #redisldn Welcome (The First) London Redis Meetup @robbiehudson @adamcharnock @bash
  • 2. #redisldn The Agenda • Quick Redis introduction • Using Redis to store all our data, hahaha (Rob & Adam / PlayNice.ly) • Queuing and non-persistent lists (Thomas / Mint Digital) • Super-fast caching and Redis (Demis / mFlow) • QA
  • 5. #redisldn What is Redis? • Advanced key value store • Data Structure Server (+ more!) • Lists, Sets, Hashes (and lots of other cool stuff) • Super-fast in Memory • But it is persistent, and now supports VM
  • 6. #redisldn Created by... Salvatore Sanfilippo (@antirez) ... now VMWare ... and Pieter Noordhuis
  • 7. #redisldn Redis and PlayNice.ly • PlayNice.ly: Collaboration web app for software developers... • So, a bug tracker :) • And we store all our information in Redis • users, projects, bugs, comments, audit logging, search indexes...
  • 8. #redisldn Redis schema example • Why you need a schema? ho ho ho
  • 9. #redisldn Users user:5:name → “Pete Mascot” user:5:username → “pete” user:5:email → “pete@playnice.ly”
  • 10. #redisldn Projects project:9:name → “Alan Parson’s Project” project:9:created_at → 1274815155 ...
  • 11. #redisldn Linking users to projects user:5:projects → SET(2, 9, 13) project:9:users → SET(3, 5, 9)
  • 12. #redisldn But that looks like hard work! • Yes it is, so use a model!
  • 13. #redisldn ORM for Redis • Ohm: http://ohm.keyvalue.org (Ruby) • http://github.com/nateware/redis-objects (Ruby) • http://github.com/whoahbot/dm-redis-adapter (Ruby) • http://github.com/kijin/stalkr (PHP, “not production ready”) • Roll your own (like we did, for Python)
  • 14. #redisldn A quick example >>> user = models.User.create() >>> user.user_id 6 >>> user.name = "Pete" >>> user.name u'Pete' >>> user.projects []
  • 15. #redisldn A quick example >>> project = models.Project.create() >>> project.project_id 8 >>> project.users []
  • 16. #redisldn A quick example >>> project.users.add(6) >>> project.users [6] >>> user.projects [8]
  • 17. #redisldn Proving it actually worked... >>> redis.get("user:6:name") 'Pete' >>> redis.smembers("project:8:users") set(['6']) >>> redis.smembers("user:6:projects") set(['8'])
  • 18. #redisldn Summary • It is very fast! • Other cool stuff: • search • migrations • message queuing • PlayNice.ly is entering into Private Beta in the next few weeks!
  • 19. #redisldn Find out more! •http://playnice.ly • http://playnice.ly/blog • @playnicelyapp
  • 20. #redisldn The Agenda • Quick Redis introduction • Using Redis to store all our data, hahaha (Rob & Adam / PlayNice.ly) • Queuing and non-persistent lists (Thomas / Mint Digital) • Super-fast caching and Redis (Demis / mFlow)
  • 21. #redisldn Thanks! Any Questions?

Notas do Editor

  1. Admin stuff Thanks to Mint for hosting Why we’re organising it Hashtag Video/Slides etc
  2. Put some times on here and include QA and drinks!!
  3. Russian for Radish?
  4. non-blocking io, single threaded pub sub and notifications replication cluster support soon 1.2.6 2.0 RC1 out...
  5. Lives in Italy Active Mailing List 20 client libraries in over 10 different languages
  6. “Just about to enter private beta” Chose redis because 1. Its cool 2. Damn fast and scales well
  7. - we went into it thinking: “hey, no schema needed :)” - sadly, not the case, need some structure (e.g. to key naming) - so here is how we tackled it...
  8. - pretty obvious, just string keys :)
  9. - again, pretty clear what is going on - linking projects and users? ...
  10. Sets store COLLECTION of unique values, and will optimise data storage for integer values
  11. Data integrity is enforced at the API level, not the DB level Migrations
  12. nothing for python
  13. 100k on bare-metal, 60% on EC2 VM