SlideShare a Scribd company logo
1 of 37
Download to read offline
The big 
The small 
and The Redis
Andrey Savchenko 
Github 
Twitter 
LinkedIn}@ptico 
CTO@aejis
The world of DBMS
Big 
• PostgreSQL 
• Cassandra 
• MongoDB 
• and counting…
Small 
• SQLite 
• LevelDB 
• Kyoto cabinet 
• etc…
Redis
Redis 
• Key-value DB 
• High-performant 
• Async persistence 
• Replication 
• Transactions 
• Extensions 
• Lua-scripting 
• Pub/Sub
Clients 
ActionScript, C, C#, C++, Clojure, Common Lisp, 
D, Dart, Emacs Lisp, Erlang, Fancy, Prolog, 
Go, Haskell, haXe, Io, Java, Lua, Node.js, 
Objective-C, Perl, PHP, Python, Ruby, Rust, 
Scala, Scheme, Smalltalk, Tcl
Commands 
APPEND, AUTH, BGREWRITEAOF, BGSAVE, BITCOUNT, BITOP, BITPOS, BLPOP, BRPOP, 
BRPOPLPUSH, CLIENT KILL, CLIENT LIST, CLIENT GETNAME, CLIENT PAUSE, CLIENT 
SETNAME, CONFIG GET, CONFIG REWRITE, CONFIG SET, CONFIG RESETSTAT, DBSIZE, DEBUG 
OBJECT, DEBUG SEGFAULT, DECR, DECRBY, DEL, DISCARD, DUMP, ECHO, EVAL, EVALSHA, 
EXEC, EXISTS, EXPIRE, EXPIREAT, FLUSHALL, FLUSHDB, GET, GETBIT, GETRANGE, GETSET, 
HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HINCRBYFLOAT, HKEYS, HLEN, HMGET, HMSET, 
HSET, HSETNX, HVALS, INCR, INCRBY, INCRBYFLOAT, INFO, KEYS, LASTSAVE, LINDEX, 
LINSERT, LLEN, LPOP, LPUSH, LPUSHX, LRANGE, LREM, LSET, LTRIM, MGET, MIGRATE, 
MONITOR, MOVE, MSET, MSETNX, MULTI, OBJECT, PERSIST, PEXPIRE, PEXPIREAT, PFADD, 
PFCOUNT, PFMERGE, PING, PSETEX, PSUBSCRIBE, PUBSUB, PTTL, PUBLISH, PUNSUBSCRIBE, 
QUIT, RANDOMKEY, RENAME, RENAMENX, RESTORE, ROLE, RPOP, RPOPLPUSH, RPUSH, 
RPUSHX, SADD, SAVE, SCARD, SCRIPT EXISTS, SCRIPT FLUSH, SCRIPT KILL, SCRIPT LOAD, 
SDIFF, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SHUTDOWN, SINTER, 
SINTERSTORE, SISMEMBER, SLAVEOF, SLOWLOG, SMEMBERS, SMOVE, SORT, SPOP, 
SRANDMEMBER, SREM, STRLEN, SUBSCRIBE, SUNION, SUNIONSTORE, SYNC, TIME, TTL, 
TYPE, UNSUBSCRIBE, UNWATCH, WATCH, ZADD, ZCARD, ZCOUNT, ZINCRBY, ZINTERSTORE, 
ZLEXCOUNT, ZRANGE, ZRANGEBYLEX, ZRANGEBYSCORE, ZRANK, ZREM, 
ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANGE, 
ZREVRANGEBYSCORE, ZREVRANK, ZSCORE, ZUNIONSTORE, SCAN, SSCAN, HSCAN, ZSCAN,
Documentation
Documentation
DataTypes 
• String 
• Hash 
• List 
• Set 
• Sorted set 
• HyperLogLog
String 
SET testkey "Hello" 
GET testkey #=> "Hello" 
MSET key1 "Hello" key2 "world" 
! 
SET counter 1 
INCR counter 
GET counter #=> "2"
Hash 
HSET test key1 "Hello" 
HSET test key2 "World" 
HGET test key2 #=> "World" 
HGETALL test 
#=> "key1" "Hello" "key2" "World"
List 
RPUSH test "zero" 
RPUSH test "one" 
RPUSH test "two" 
LRANGE test 1 2 #=> "one" "two"
Set 
SADD users "andrey" 
SADD users "dima" 
SCARD users #=> 2 
SISMEMBER users "andrey" #=> 1 
SISMEMBER users "gleb" #=> 0
Performance 
(MacBook retina 13") 
• SET: 67294.75 rps 
• GET: 71787.51 rps 
• LPUSH: 72202.16 rps 
• SADD: 70621.47 rps
Persistence and memory 
# save <seconds> <changes> 
save 900 1 
save 300 10 
save 60 10000
Persistence and memory 
# maxmemory <bytes> 
maxmemory 1gb
Persistence and memory 
appendonly yes 
# appendfsync always 
appendfsync everysec 
# appendfsync no
Persistence and memory 
http://redis.io/topics/persistence 
http://antirez.com/post/redis-persistence-demystified.html
Use cases
Caches, sessions
Caches, sessions 
Invalidation by time 
SET a18f045 "cache content" 
EXPIRE a18f045 100
Caches, sessions 
Invalidation by tags 
SET a18b045 "cache content" 
SET d98f0c9 "cache content" 
SADD tag1 a18b045 
SADD tag1 d98f0c9 
DEL {{SMEMBERS tag1}}
Tags 
SADD programming 1 2 3 4 5 
SADD ruby 1 4 
SADD python 2 3 
SADD tdd 1 3 
# Posts with both "programming" AND "ruby" tags 
SINTER programming ruby # => "1" "4" 
! 
# Posts with "ruby" OR "python" tags 
SUNION ruby python #=> "1" "2" "3" "4" 
! 
# Posts posts with "ruby" tag but without "tdd" tag 
SDIFF ruby tdd #=> "4" 
! 
# How many posts with "ruby" tag 
SCARD ruby #=> 2
Job queue 
LPUSH worker1 "Job 1" 
LPUSH worker1 "Job 2" 
LPUSH worker1 "Job 3" 
RPOP worker1 #=> "Job 1" 
RPOP worker1 #=> "Job 2"
Data storage 
HSET settings:{id} receive_emails 1 
HSET settings:{id} records_per_page 20 
HSET settings:{id} preferred_syntax "markdown" 
HGETALL settings:{id}
Statistics 
# Increment counter 
INCR posts:{id} 
! 
# How many views/votes? 
GET posts:{id}
Statistics 
# Increment counter 
ZINCRBY posts 1 {id} 
! 
# How many views/votes? 
ZSCORE posts {id} 
! 
# TOP-10 posts 
ZREVRANGE posts 0 9 
! 
# TOP-10 with views/votes quantity 
ZREVRANGE posts 0 9 WITHSCORES
Simple graphs 
# User Joe adds user Mila to friends 
SADD users:{joe}:friends {mila} 
SADD users:{mila}:friend_of {joe} 
! 
# Get Mila's friends 
SMEMBERS users:{mila}:friends 
! 
# Get user Mila's mutual friends 
SCARD users:{mila}:friends users:{mila}:friend_of 
! 
# Get common friends of Mila and Joe 
SCARD users:{mila}:friends users:{joe}:friends 
! 
# Joe is a friend of user Mila? 
SISMEMBER users:{mila}:friends {joe}
Message bus 
# Web-application: 
SUBSCRIBE messages 
! 
# Async jobs server: 
SUBSCRIBE jobs 
! 
# Web-application: 
PUBLISH jobs "videos:12:mpeg:ogg" 
! 
# Async jobs server: 
PUBLISH messages "Video encoding #12 finished"
Extensions
Redis Geo 
https://matt.sh/redis-geo 
GEOADD kyiv 30.437672 50.440884 "Aejis office" 
! 
GEORADIUS kyiv 30.437672 50.440884 2 km WITHDISTANCE 
#=> "Shulyavska station" "1.61" 
"Politech institute" "1.74" 
"Aviation university" "0.76" 
! 
GEORADIUSBYMEMBER kyiv "Aejis office" 2 km 
#=> "Shulyavska station" 
"Politech institute" 
"Aviation university"
Redis JSON 
https://matt.sh/redis-json 
HGETALLJSON settings:{id} 
#=> {“receive_emails":1,"records_per_page":20, 
"preferred_syntax":"markdown"} 
! 
JSONWRAP ZREVRANGE posts 0 3 WITHSCORES 
#=> {"42":820,"115":760,"110":522} 
! 
JSONDOCSET users '{"id":42, "name":"John"}' 
! 
JSONDOCKEYS users 
! 
JSONDFIELDGET users name
Andrey Savchenko @ptico 
Attribution: 
Thanks! 
Ian Barbour https://flic.kr/p/anCQwx (CC-BY-NC-SA 2.0)

More Related Content

Viewers also liked

Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.
Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.
Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.GeeksLab Odessa
 
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента - Татьяна Мокренко
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента  - Татьяна МокренкоWebCamp2014:Internet Marketing Day: Рецепт вкусного контента  - Татьяна Мокренко
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента - Татьяна МокренкоGeeksLab Odessa
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...GeeksLab Odessa
 
Java/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talkJava/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talkGeeksLab Odessa
 
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)GeeksLab Odessa
 
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...GeeksLab Odessa
 
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестировать
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестироватьSalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестировать
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестироватьGeeksLab Odessa
 
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?GeeksLab Odessa
 
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...GeeksLab Odessa
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleGeeksLab Odessa
 
AI&BigData Lab. Артем Чернодуб "Распознавание изображений методом Lazy Deep ...
AI&BigData Lab. Артем Чернодуб  "Распознавание изображений методом Lazy Deep ...AI&BigData Lab. Артем Чернодуб  "Распознавание изображений методом Lazy Deep ...
AI&BigData Lab. Артем Чернодуб "Распознавание изображений методом Lazy Deep ...GeeksLab Odessa
 
Rails api + JS app
Rails api + JS appRails api + JS app
Rails api + JS appknomedia
 
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...GeeksLab Odessa
 
Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)Obie Fernandez
 
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...GeeksLab Odessa
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 

Viewers also liked (18)

Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.
Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.
Java/Scala Lab: Роман Никитченко - Big Data - Big Pitfalls.
 
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента - Татьяна Мокренко
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента  - Татьяна МокренкоWebCamp2014:Internet Marketing Day: Рецепт вкусного контента  - Татьяна Мокренко
WebCamp2014:Internet Marketing Day: Рецепт вкусного контента - Татьяна Мокренко
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
 
Java/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talkJava/Scala Lab: Юрий Литвиненко - Lightning talk
Java/Scala Lab: Юрий Литвиненко - Lightning talk
 
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)
Odessa StartUp Day_Startup Crash Test_Александр Довгопол (Гудхотелс)
 
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...
WebCamp: Developer Day: Оптимизация Lift Framework для работы с большими пото...
 
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестировать
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестироватьSalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестировать
SalesLab: Ray East (MacPaw) - Хватит спорить.Начинайте тестировать
 
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?
Hardware Lab .Андрей Волошин (Mobiliuz). Что делать, когда Arduino не хватает?
 
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...
WebCamp2014:Internet Marketing Day: Контекстная реклама для b2b-проектов (кей...
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
 
Redis
RedisRedis
Redis
 
AI&BigData Lab. Артем Чернодуб "Распознавание изображений методом Lazy Deep ...
AI&BigData Lab. Артем Чернодуб  "Распознавание изображений методом Lazy Deep ...AI&BigData Lab. Артем Чернодуб  "Распознавание изображений методом Lazy Deep ...
AI&BigData Lab. Артем Чернодуб "Распознавание изображений методом Lazy Deep ...
 
Rails api + JS app
Rails api + JS appRails api + JS app
Rails api + JS app
 
Ruby off Rails
Ruby off RailsRuby off Rails
Ruby off Rails
 
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...
WebCamp: Project Management Day: Запуск проекта или как превратить блестящую ...
 
Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)
 
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
AI&BigData Lab. Александр Конопко "Celos: оркестрирование и тестирование зада...
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 

Similar to WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко

Introducing redis
Introducing redisIntroducing redis
Introducing redisNuno Caneco
 
20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoop20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoopMathias Herberts
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....Michele Orselli
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....Alessandro Cinelli (cirpo)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Crystal Language
 
Spark cassandra connector.API, Best Practices and Use-Cases
Spark cassandra connector.API, Best Practices and Use-CasesSpark cassandra connector.API, Best Practices and Use-Cases
Spark cassandra connector.API, Best Practices and Use-CasesDuyhai Doan
 
Padrino is agnostic
Padrino is agnosticPadrino is agnostic
Padrino is agnosticTakeshi Yabe
 
Apache Spark for Library Developers with Erik Erlandson and William Benton
Apache Spark for Library Developers with Erik Erlandson and William BentonApache Spark for Library Developers with Erik Erlandson and William Benton
Apache Spark for Library Developers with Erik Erlandson and William BentonDatabricks
 
Neo4j after 1 year in production
Neo4j after 1 year in productionNeo4j after 1 year in production
Neo4j after 1 year in productionAndrew Nikishaev
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesKarel Minarik
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...MongoDB
 
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUMetasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUKiwamu Okabe
 
Network Test Automation - Net Ops Coding 2015
Network Test Automation - Net Ops Coding 2015Network Test Automation - Net Ops Coding 2015
Network Test Automation - Net Ops Coding 2015Hiroshi Ota
 
AWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまでAWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまで崇之 清水
 

Similar to WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко (20)

Introducing redis
Introducing redisIntroducing redis
Introducing redis
 
20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoop20170516 hug france-warp10-time-seriesanalysisontopofhadoop
20170516 hug france-warp10-time-seriesanalysisontopofhadoop
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Spark cassandra connector.API, Best Practices and Use-Cases
Spark cassandra connector.API, Best Practices and Use-CasesSpark cassandra connector.API, Best Practices and Use-Cases
Spark cassandra connector.API, Best Practices and Use-Cases
 
Kamailio - SIP Servers Everywhere
Kamailio - SIP Servers EverywhereKamailio - SIP Servers Everywhere
Kamailio - SIP Servers Everywhere
 
Padrino is agnostic
Padrino is agnosticPadrino is agnostic
Padrino is agnostic
 
Apache Spark for Library Developers with Erik Erlandson and William Benton
Apache Spark for Library Developers with Erik Erlandson and William BentonApache Spark for Library Developers with Erik Erlandson and William Benton
Apache Spark for Library Developers with Erik Erlandson and William Benton
 
Neo4j after 1 year in production
Neo4j after 1 year in productionNeo4j after 1 year in production
Neo4j after 1 year in production
 
Mongo scaling
Mongo scalingMongo scaling
Mongo scaling
 
Redis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational Databases
 
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
 
Plone server
Plone serverPlone server
Plone server
 
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUMetasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCU
 
Network Test Automation - Net Ops Coding 2015
Network Test Automation - Net Ops Coding 2015Network Test Automation - Net Ops Coding 2015
Network Test Automation - Net Ops Coding 2015
 
AWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまでAWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまで
 

More from GeeksLab Odessa

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...GeeksLab Odessa
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...GeeksLab Odessa
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторGeeksLab Odessa
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеGeeksLab Odessa
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...GeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладGeeksLab Odessa
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...GeeksLab Odessa
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...GeeksLab Odessa
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко GeeksLab Odessa
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...GeeksLab Odessa
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...GeeksLab Odessa
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...GeeksLab Odessa
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...GeeksLab Odessa
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...GeeksLab Odessa
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...GeeksLab Odessa
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот GeeksLab Odessa
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...GeeksLab Odessa
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js GeeksLab Odessa
 

More from GeeksLab Odessa (20)

DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
DataScience Lab2017_Коррекция геометрических искажений оптических спутниковых...
 
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...
 
DataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский ВикторDataScience Lab 2017_Блиц-доклад_Турский Виктор
DataScience Lab 2017_Блиц-доклад_Турский Виктор
 
DataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображениеDataScience Lab 2017_Обзор методов детекции лиц на изображение
DataScience Lab 2017_Обзор методов детекции лиц на изображение
 
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-докладDataScienceLab2017_Блиц-доклад
DataScienceLab2017_Блиц-доклад
 
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...
 
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...
 
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко
 
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...
 
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...
 
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...
 
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...
 
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...
 
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...
 
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот
 
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...
 
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js
 

Recently uploaded

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
🐬 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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

WebCamp: Developer Day: The Big, the Small and the Redis - Андрей Савченко

  • 1. The big The small and The Redis
  • 2. Andrey Savchenko Github Twitter LinkedIn}@ptico CTO@aejis
  • 4. Big • PostgreSQL • Cassandra • MongoDB • and counting…
  • 5. Small • SQLite • LevelDB • Kyoto cabinet • etc…
  • 7. Redis • Key-value DB • High-performant • Async persistence • Replication • Transactions • Extensions • Lua-scripting • Pub/Sub
  • 8. Clients ActionScript, C, C#, C++, Clojure, Common Lisp, D, Dart, Emacs Lisp, Erlang, Fancy, Prolog, Go, Haskell, haXe, Io, Java, Lua, Node.js, Objective-C, Perl, PHP, Python, Ruby, Rust, Scala, Scheme, Smalltalk, Tcl
  • 9. Commands APPEND, AUTH, BGREWRITEAOF, BGSAVE, BITCOUNT, BITOP, BITPOS, BLPOP, BRPOP, BRPOPLPUSH, CLIENT KILL, CLIENT LIST, CLIENT GETNAME, CLIENT PAUSE, CLIENT SETNAME, CONFIG GET, CONFIG REWRITE, CONFIG SET, CONFIG RESETSTAT, DBSIZE, DEBUG OBJECT, DEBUG SEGFAULT, DECR, DECRBY, DEL, DISCARD, DUMP, ECHO, EVAL, EVALSHA, EXEC, EXISTS, EXPIRE, EXPIREAT, FLUSHALL, FLUSHDB, GET, GETBIT, GETRANGE, GETSET, HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HINCRBYFLOAT, HKEYS, HLEN, HMGET, HMSET, HSET, HSETNX, HVALS, INCR, INCRBY, INCRBYFLOAT, INFO, KEYS, LASTSAVE, LINDEX, LINSERT, LLEN, LPOP, LPUSH, LPUSHX, LRANGE, LREM, LSET, LTRIM, MGET, MIGRATE, MONITOR, MOVE, MSET, MSETNX, MULTI, OBJECT, PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFCOUNT, PFMERGE, PING, PSETEX, PSUBSCRIBE, PUBSUB, PTTL, PUBLISH, PUNSUBSCRIBE, QUIT, RANDOMKEY, RENAME, RENAMENX, RESTORE, ROLE, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SAVE, SCARD, SCRIPT EXISTS, SCRIPT FLUSH, SCRIPT KILL, SCRIPT LOAD, SDIFF, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SHUTDOWN, SINTER, SINTERSTORE, SISMEMBER, SLAVEOF, SLOWLOG, SMEMBERS, SMOVE, SORT, SPOP, SRANDMEMBER, SREM, STRLEN, SUBSCRIBE, SUNION, SUNIONSTORE, SYNC, TIME, TTL, TYPE, UNSUBSCRIBE, UNWATCH, WATCH, ZADD, ZCARD, ZCOUNT, ZINCRBY, ZINTERSTORE, ZLEXCOUNT, ZRANGE, ZRANGEBYLEX, ZRANGEBYSCORE, ZRANK, ZREM, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANGE, ZREVRANGEBYSCORE, ZREVRANK, ZSCORE, ZUNIONSTORE, SCAN, SSCAN, HSCAN, ZSCAN,
  • 12. DataTypes • String • Hash • List • Set • Sorted set • HyperLogLog
  • 13. String SET testkey "Hello" GET testkey #=> "Hello" MSET key1 "Hello" key2 "world" ! SET counter 1 INCR counter GET counter #=> "2"
  • 14. Hash HSET test key1 "Hello" HSET test key2 "World" HGET test key2 #=> "World" HGETALL test #=> "key1" "Hello" "key2" "World"
  • 15. List RPUSH test "zero" RPUSH test "one" RPUSH test "two" LRANGE test 1 2 #=> "one" "two"
  • 16. Set SADD users "andrey" SADD users "dima" SCARD users #=> 2 SISMEMBER users "andrey" #=> 1 SISMEMBER users "gleb" #=> 0
  • 17. Performance (MacBook retina 13") • SET: 67294.75 rps • GET: 71787.51 rps • LPUSH: 72202.16 rps • SADD: 70621.47 rps
  • 18. Persistence and memory # save <seconds> <changes> save 900 1 save 300 10 save 60 10000
  • 19. Persistence and memory # maxmemory <bytes> maxmemory 1gb
  • 20. Persistence and memory appendonly yes # appendfsync always appendfsync everysec # appendfsync no
  • 21. Persistence and memory http://redis.io/topics/persistence http://antirez.com/post/redis-persistence-demystified.html
  • 23.
  • 25. Caches, sessions Invalidation by time SET a18f045 "cache content" EXPIRE a18f045 100
  • 26. Caches, sessions Invalidation by tags SET a18b045 "cache content" SET d98f0c9 "cache content" SADD tag1 a18b045 SADD tag1 d98f0c9 DEL {{SMEMBERS tag1}}
  • 27. Tags SADD programming 1 2 3 4 5 SADD ruby 1 4 SADD python 2 3 SADD tdd 1 3 # Posts with both "programming" AND "ruby" tags SINTER programming ruby # => "1" "4" ! # Posts with "ruby" OR "python" tags SUNION ruby python #=> "1" "2" "3" "4" ! # Posts posts with "ruby" tag but without "tdd" tag SDIFF ruby tdd #=> "4" ! # How many posts with "ruby" tag SCARD ruby #=> 2
  • 28. Job queue LPUSH worker1 "Job 1" LPUSH worker1 "Job 2" LPUSH worker1 "Job 3" RPOP worker1 #=> "Job 1" RPOP worker1 #=> "Job 2"
  • 29. Data storage HSET settings:{id} receive_emails 1 HSET settings:{id} records_per_page 20 HSET settings:{id} preferred_syntax "markdown" HGETALL settings:{id}
  • 30. Statistics # Increment counter INCR posts:{id} ! # How many views/votes? GET posts:{id}
  • 31. Statistics # Increment counter ZINCRBY posts 1 {id} ! # How many views/votes? ZSCORE posts {id} ! # TOP-10 posts ZREVRANGE posts 0 9 ! # TOP-10 with views/votes quantity ZREVRANGE posts 0 9 WITHSCORES
  • 32. Simple graphs # User Joe adds user Mila to friends SADD users:{joe}:friends {mila} SADD users:{mila}:friend_of {joe} ! # Get Mila's friends SMEMBERS users:{mila}:friends ! # Get user Mila's mutual friends SCARD users:{mila}:friends users:{mila}:friend_of ! # Get common friends of Mila and Joe SCARD users:{mila}:friends users:{joe}:friends ! # Joe is a friend of user Mila? SISMEMBER users:{mila}:friends {joe}
  • 33. Message bus # Web-application: SUBSCRIBE messages ! # Async jobs server: SUBSCRIBE jobs ! # Web-application: PUBLISH jobs "videos:12:mpeg:ogg" ! # Async jobs server: PUBLISH messages "Video encoding #12 finished"
  • 35. Redis Geo https://matt.sh/redis-geo GEOADD kyiv 30.437672 50.440884 "Aejis office" ! GEORADIUS kyiv 30.437672 50.440884 2 km WITHDISTANCE #=> "Shulyavska station" "1.61" "Politech institute" "1.74" "Aviation university" "0.76" ! GEORADIUSBYMEMBER kyiv "Aejis office" 2 km #=> "Shulyavska station" "Politech institute" "Aviation university"
  • 36. Redis JSON https://matt.sh/redis-json HGETALLJSON settings:{id} #=> {“receive_emails":1,"records_per_page":20, "preferred_syntax":"markdown"} ! JSONWRAP ZREVRANGE posts 0 3 WITHSCORES #=> {"42":820,"115":760,"110":522} ! JSONDOCSET users '{"id":42, "name":"John"}' ! JSONDOCKEYS users ! JSONDFIELDGET users name
  • 37. Andrey Savchenko @ptico Attribution: Thanks! Ian Barbour https://flic.kr/p/anCQwx (CC-BY-NC-SA 2.0)