SlideShare a Scribd company logo
1 of 27
From Client to   developer   execution


           Disclaimer
Disclaimer
This lecture and slides should be used only in
 humor, and that's how it should be understood
If you find it offensive in any way, please do not
   use this slides, and go out from the lecture !
What does people think Redis is ?
So what is Redis ?
Open source in memory fast binary safe database
 that support the following:
  Key Value information
  Arrays/Lists and nested lists
  Sets/Sorted Sets
  Hashes
  Type of Message Queue
  Distributed work
Ah, yes, but what is Redis ?


        Hello my name is
    REmote Dictionary Server

          prepare to die
OK, it's a Key Value database
    Are you happy now ?
How I met Redis ?


 I needed to use it with an Object Pascal based
Project, and there was no Object Pascal client …

          So I started to work on one:
     https://github.com/ik5/redis_client.fpc

     And I still do (when I have free time ...)
What is the first rule of Redis ?
You do not talk about Redis …

Redis's developer created most client
 libraries that exists today …

The documentation that you see, well it's
 can be better:

  What you read and what that is
    implemented are different things
    (sometimes)

  There are a lot of missing information,
So how do you write a client for
              Redis ?
Reading the Protocol documentation (well, duh …)
Finding that some of the real implementation is
  different then the protocol itself
Wishing a slow death to the developer
Bitching about it at your blog (posts)
Asking yourself: why don't you use a dynamic
 programming language ...
Sitting down and solving the problems
Why ?


 It's very readable programming language
 It's string types (yes in plural) are easy to use
 Because it is one of the best compiled programming
languages ever existed

Because I can !
Can you show us an example ?
…
var
  my_command : TRedisAbstractCommands;
…

writeln(my_command.ParamsToStr(['a', 3.14, 
  False]));
…
(* output as string :
   arn3.14rnFalsern *)
In soviet Russia several ways implement you
Four ways to implement the client:
  Thinking like dynamic language (but code in Pascal)
  Thinking in C (but code in Pascal)
  Thinking in Java/C# (but code in Pascal)
  Think in Pascal …
I read few implementation of the clients:
   Lua, Ruby, Perl, Python, Java and C
Decided on the 4th way as the proper way
Research and documentation
 by me on each command !
“To infinity and beyond”
Data types
                             TPersistent




                          TRedisReturnType




 TRedisNullReturnType                        TRedisNumericReturnType


TRedisStatusReturnType                        TRedisErrorReturnType

                                             TRedisMultiBulkReturnTyp
TRedisBulkReturnType
                                                         e
There shell be a command !
                                 TRedisObject




  TRedisParser                                            TRedisAbstractCommands




Command group      Command group                Command group    Command group




                 Command group              Command group
Few more words regarding commands

 Every new version of Redis has new/changes to
  commands.
 Can't support such changes for long time
 So I my library helping you, by allowing you to
  call commands, never existed when I wrote
  the client, without going insane !

 OK, You might go insane, but not because of my
  library...
Sockets



 TSynaClient




  TRedisIO
Debug, Errors and log files
Each class can have it's own log file for
 debug/error or no file at all !
You can use also the same logger for every
 class
Your own error handlers using callbacks, or just
 let exception raise up
The final slide
Should we use Redis ?
The final slide
Should we use Redis ?
Oh fuck, it's a Perl lecture, I forgot to add some
 details on that ...
Redis and Perl
main module: https://metacpan.org/module/Redis
some benchmarks:
  http://blogs.perl.org/users/wolfgang_kinkeldei/2012/01
servers, plugins, and interesting stuff:
  https://metacpan.org/module/Redis::Queue
  https://metacpan.org/module/Nginx::Redis
  https://metacpan.org/module/Redis::hiredis
  https://metacpan.org/module/Redis::Client
  https://metacpan.org/module/AnyEvent::Redis
  https://metacpan.org/module/Protocol::Redis
  https://metacpan.org/module/Tie::Redis
  https://metacpan.org/module/MojoX::Redis
The final slide
Right, so what did I asked ?
The final slide
Should we use Redis ?



 A   Yes
 B   No
 C   All of the above
Credits
Angry bird
Excited
Bored
MemCached
Redis
Buzz Lightyear
Questions ?

More Related Content

What's hot

TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersRutenis Turcinas
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScriptOffirmo
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorialknoppix
 
Learning at the Speed of JavaScript
Learning at the Speed of JavaScriptLearning at the Speed of JavaScript
Learning at the Speed of JavaScriptJake Witcher
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practicesfelixbillon
 
Code quality tools for dev
Code quality tools for devCode quality tools for dev
Code quality tools for devDeepu S Nath
 

What's hot (10)

Ruby Hell Yeah
Ruby Hell YeahRuby Hell Yeah
Ruby Hell Yeah
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScript
 
Lfnw2016
Lfnw2016Lfnw2016
Lfnw2016
 
Ruby tutorial
Ruby tutorialRuby tutorial
Ruby tutorial
 
Learning at the Speed of JavaScript
Learning at the Speed of JavaScriptLearning at the Speed of JavaScript
Learning at the Speed of JavaScript
 
Typescript Basics
Typescript BasicsTypescript Basics
Typescript Basics
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practices
 
Code quality tools for dev
Code quality tools for devCode quality tools for dev
Code quality tools for dev
 
Object Calisthenics
Object CalisthenicsObject Calisthenics
Object Calisthenics
 

Similar to Redis - from client to execution

Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?mikaelbarbero
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...IndicThreads
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureArthur Maltson
 
Low maintenance perl notes
Low maintenance perl notesLow maintenance perl notes
Low maintenance perl notesPerrin Harkins
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic RevisitedAdam Keys
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
 
Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroadJim Jones
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoadwebuploader
 
Fun with Ruby and Redis
Fun with Ruby and RedisFun with Ruby and Redis
Fun with Ruby and Redisjavier ramirez
 
A million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleA million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleTom Croucher
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftTalentica Software
 
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)PVS-Studio
 

Similar to Redis - from client to execution (20)

Redis and Ohm
Redis and OhmRedis and Ohm
Redis and Ohm
 
Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?Language Server Protocol - Why the Hype?
Language Server Protocol - Why the Hype?
 
How to code
How to codeHow to code
How to code
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...
 
Php’s guts
Php’s gutsPhp’s guts
Php’s guts
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Introduction to-php
Introduction to-phpIntroduction to-php
Introduction to-php
 
Avro
AvroAvro
Avro
 
Low maintenance perl notes
Low maintenance perl notesLow maintenance perl notes
Low maintenance perl notes
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroad
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoad
 
Fun with Ruby and Redis
Fun with Ruby and RedisFun with Ruby and Redis
Fun with Ruby and Redis
 
A million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scaleA million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scale
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
 
Introduction to redis
Introduction to redisIntroduction to redis
Introduction to redis
 
ruby pentest
ruby pentestruby pentest
ruby pentest
 
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
Interview with Dmitriy Vyukov - the author of Relacy Race Detector (RRD)
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Redis - from client to execution

  • 1. From Client to developer execution Disclaimer
  • 2. Disclaimer This lecture and slides should be used only in humor, and that's how it should be understood If you find it offensive in any way, please do not use this slides, and go out from the lecture !
  • 3. What does people think Redis is ?
  • 4. So what is Redis ? Open source in memory fast binary safe database that support the following: Key Value information Arrays/Lists and nested lists Sets/Sorted Sets Hashes Type of Message Queue Distributed work
  • 5. Ah, yes, but what is Redis ? Hello my name is REmote Dictionary Server prepare to die
  • 6.
  • 7. OK, it's a Key Value database Are you happy now ?
  • 8. How I met Redis ? I needed to use it with an Object Pascal based Project, and there was no Object Pascal client … So I started to work on one: https://github.com/ik5/redis_client.fpc And I still do (when I have free time ...)
  • 9. What is the first rule of Redis ? You do not talk about Redis … Redis's developer created most client libraries that exists today … The documentation that you see, well it's can be better: What you read and what that is implemented are different things (sometimes) There are a lot of missing information,
  • 10. So how do you write a client for Redis ? Reading the Protocol documentation (well, duh …) Finding that some of the real implementation is different then the protocol itself Wishing a slow death to the developer Bitching about it at your blog (posts) Asking yourself: why don't you use a dynamic programming language ... Sitting down and solving the problems
  • 11.
  • 12. Why ? It's very readable programming language It's string types (yes in plural) are easy to use Because it is one of the best compiled programming languages ever existed Because I can !
  • 13. Can you show us an example ? … var   my_command : TRedisAbstractCommands; … writeln(my_command.ParamsToStr(['a', 3.14,  False])); … (* output as string :    arn3.14rnFalsern *)
  • 14.
  • 15. In soviet Russia several ways implement you Four ways to implement the client: Thinking like dynamic language (but code in Pascal) Thinking in C (but code in Pascal) Thinking in Java/C# (but code in Pascal) Think in Pascal … I read few implementation of the clients: Lua, Ruby, Perl, Python, Java and C Decided on the 4th way as the proper way Research and documentation by me on each command ! “To infinity and beyond”
  • 16. Data types TPersistent TRedisReturnType TRedisNullReturnType TRedisNumericReturnType TRedisStatusReturnType TRedisErrorReturnType TRedisMultiBulkReturnTyp TRedisBulkReturnType e
  • 17. There shell be a command ! TRedisObject TRedisParser TRedisAbstractCommands Command group Command group Command group Command group Command group Command group
  • 18. Few more words regarding commands Every new version of Redis has new/changes to commands. Can't support such changes for long time So I my library helping you, by allowing you to call commands, never existed when I wrote the client, without going insane ! OK, You might go insane, but not because of my library...
  • 20. Debug, Errors and log files Each class can have it's own log file for debug/error or no file at all ! You can use also the same logger for every class Your own error handlers using callbacks, or just let exception raise up
  • 21. The final slide Should we use Redis ?
  • 22. The final slide Should we use Redis ? Oh fuck, it's a Perl lecture, I forgot to add some details on that ...
  • 23. Redis and Perl main module: https://metacpan.org/module/Redis some benchmarks: http://blogs.perl.org/users/wolfgang_kinkeldei/2012/01 servers, plugins, and interesting stuff: https://metacpan.org/module/Redis::Queue https://metacpan.org/module/Nginx::Redis https://metacpan.org/module/Redis::hiredis https://metacpan.org/module/Redis::Client https://metacpan.org/module/AnyEvent::Redis https://metacpan.org/module/Protocol::Redis https://metacpan.org/module/Tie::Redis https://metacpan.org/module/MojoX::Redis
  • 24. The final slide Right, so what did I asked ?
  • 25. The final slide Should we use Redis ? A Yes B No C All of the above