Redis @ Kijiji.it

M
Marco BorromeoSoftware Developer
Redis @ Kijiji.it
NoSQL Day 2013 - Udine
Marco Borromeo (@borros)
Dove salviamo...
... i contatori?
... funzionalità “a tempo”?
... white/black lists?
... i log delle modifiche?
... cache feed esterni?
... coda di operazioni asincrone?

MySQL
Contatori in MySQL
SELECT COUNT(*)
Aggiungiamo un indice!
Creiamo dei trigger che aggiungono/sottraggono unità in una tabella di
contatori *GASP*
“Creiamo dei trigger
che aggiungono/sottraggono unità
in una tabella di contatori”
INCR
DECR
(+ business logic nei listeners)
Introduzione di Redis
2 Shards
Ogni shard formato da un Master e uno Slave
Custom Failover
2 eth
RAM come se piovesse
CPU libera per bitcoin
Funzionalità “a tempo”...
<count> = INCR <userUUID>:instant_replies
SETEX <userUUID>:instant_replies 60 <count>
(se <count> dello spam level...) SETEX <userUUID>:is_banned 600 1
White & Black Lists

SADD users_whitelist marborromeo@ebay.com
SISMEMBER users_whitelist marborromeo@ebay.com
SREM users_whitelist marborromeo@ebay.com
Time series (semplici)

<action_id> = INCR admin_actions
HSET admin_action:<action_id> action changeCatgory admin_user_id 1
ZADD post:2:admin_actions <TS> <action_id>
Cache Feeds

Sorted Sets (score TS per ordinare)
Hash (Articolo)
Job Queue - Enqueue

jobId = INCR jobs.id
job = HMSET job:<jobId> job “sendMail” to “marborromeo@ebay.com”
ZADD scheduled_jobs <TS> <jobId>
Job Queue - Schedule

ZRANGEBYSCORE scheduled_jobs -inf <TS>
LPUSH enqueued_job <jobId>
ZREM scheduled_jobs <jobId>
Job Queue - Worker

BRPOPLPUSH scheduled_jobs scheduled_jobs:<workerId>
Shared config
Login tokens
Accendere / Spegnere funzionalità
Locks
Ma qualcosa è andato storto...
Sharding
Sharding nei drivers
BZFlag ranks
Grazie!
Marco Borromeo (@borros)
1 of 17

Recommended

Facebook App Dev 201 App Launch Distrib by
Facebook App Dev 201 App Launch DistribFacebook App Dev 201 App Launch Distrib
Facebook App Dev 201 App Launch DistribDave McClure
6.7K views33 slides
(in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Tras... by
(in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Tras...(in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Tras...
(in)Sicurezza nella PA - Gianluca Varisco, Cybersecurity del Team per la Tras...Team per la Trasformazione Digitale
1.6K views41 slides
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D... by
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...
Una PA agile, funzionale e serverless: si può fare! by Federico Feroldi and D...Codemotion
79 views33 slides
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem... by
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...
Una PA agile, funzionale e serverless: si può fare! - Danilo Spinelli - Codem...Codemotion
98 views33 slides
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C... by
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...
Una Pubblica Amministrazione Agile, Funzionale e Serverless: si può fare! - C...Federico Feroldi
494 views33 slides
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster by
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterPar-Tec S.p.A.
507 views28 slides

More Related Content

Similar to Redis @ Kijiji.it

MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ... by
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...Par-Tec S.p.A.
13 views29 slides
XE - Azure in the real world by
XE - Azure in the real worldXE - Azure in the real world
XE - Azure in the real worldAlessio Biasiutti
127 views37 slides
Virtualizzazione by
VirtualizzazioneVirtualizzazione
VirtualizzazioneLuca Giusti
129 views144 slides
noSQL La nuova frontiera dei Database [DB05-S] by
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]Andrea Maddalena
664 views71 slides
Reverse Engineering per dispositivi IoT by
Reverse Engineering per dispositivi IoTReverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoTAndrea Lazzarotto
7.4K views34 slides
Novita TYPO3 CMS 7.2 by
Novita TYPO3 CMS 7.2Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2Roberto Torresani
629 views67 slides

Similar to Redis @ Kijiji.it(8)

MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ... by Par-Tec S.p.A.
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
Par-Tec S.p.A.13 views
Virtualizzazione by Luca Giusti
VirtualizzazioneVirtualizzazione
Virtualizzazione
Luca Giusti129 views
noSQL La nuova frontiera dei Database [DB05-S] by Andrea Maddalena
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]
Andrea Maddalena664 views
Reverse Engineering per dispositivi IoT by Andrea Lazzarotto
Reverse Engineering per dispositivi IoTReverse Engineering per dispositivi IoT
Reverse Engineering per dispositivi IoT
Andrea Lazzarotto7.4K views
Devianze by scrivano
DevianzeDevianze
Devianze
scrivano432 views
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenant by Tassi Francesco
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenantSaaS con Symfony2 un caso *molto* concreto di applicazione multitenant
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenant
Tassi Francesco1.1K views

Redis @ Kijiji.it