Slide 1

Slide 1 text

Redis du cache à la time series! Clement Escoffier Distinguished Engineer Red Hat @clementplop Holly Cummins Sr. Principal Software Engineer Red Hat @holly_cummins

Slide 2

Slide 2 text

@holly_cummins @clementplop #DevoxxFrance #RedHat

Slide 3

Slide 3 text

@holly_cummins @clementplop #DevoxxFrance #RedHat super-tomate

Slide 4

Slide 4 text

@holly_cummins @clementplop #DevoxxFrance #RedHat

Slide 5

Slide 5 text

@holly_cummins @clementplop #DevoxxFrance #RedHat s s s s s s ss s ss s s s s s

Slide 6

Slide 6 text

@holly_cummins @clementplop #DevoxxFrance #RedHat

Slide 7

Slide 7 text

@holly_cummins @clementplop #DevoxxFrance #RedHat un concombre qui veut être une super-tomate

Slide 8

Slide 8 text

@holly_cummins @clementplop #DevoxxFrance #RedHat

Slide 9

Slide 9 text

@holly_cummins @clementplop #DevoxxFrance #RedHat une super base de données

Slide 10

Slide 10 text

@holly_cummins @clementplop #DevoxxFrance #RedHat

Slide 11

Slide 11 text

@holly_cummins @clementplop #DevoxxFrance #RedHat redis

Slide 12

Slide 12 text

@holly_cummins @clementplop #DevoxxFrance #RedHat redis une super-super-base de données?

Slide 13

Slide 13 text

@holly_cummins @clementplop #DevoxxFrance #RedHat @holly_cummins

Slide 14

Slide 14 text

@holly_cummins @clementplop #DevoxxFrance #RedHat + @holly_cummins

Slide 15

Slide 15 text

@holly_cummins @clementplop #DevoxxFrance #RedHat @clementplop

Slide 16

Slide 16 text

@holly_cummins @clementplop #DevoxxFrance #RedHat + @clementplop

Slide 17

Slide 17 text

@holly_cummins @clementplop #DevoxxFrance #RedHat redis super-super-base de données?

Slide 18

Slide 18 text

Redis is a distributed key/value store key:1 key:2 key:3 key:4 key:5 Value 1 Value 2 Value 3 Value 4 Value 5 App.

Slide 19

Slide 19 text

Redis as a cache Application Redis >> GET my-cache >> SET my-cache value EX 60 null << OK << var value = cache.get("my-cache"); if (value == null) { value = compute(); cache.set("my-cache", value, Duration.ofSecond(60)); } return value; Application Redis >> GET my-cache Value <<

Slide 20

Slide 20 text

389+ Commands k e y s z s c o r e d e c r t s . g e t c f . i n s e r t h d e l m g e t timeseries.REFRESHCLUSTER FT.ALTER touch xpending bf.info monitor bf.card lrem json.numincrby tdigest.revrank fcall lmpop xreadgroup cms.initbyprob timeseries.CLUSTERSETFROMSHARD pexpire FT.DROP ts.del pfcount auth cf.info ts.create bgrewriteaof xadd json.del timeseries.INNERCOMMUNICATION graph.DELETE sdiffstore zrandmember bf.insert reset xlen zinterstore json.clear readwrite topk.info json.nummultby xtrim json.arrinsert topk.list cms.merge flushdb ts.createrule json.type replicaof role pexpiretime pfadd echo tdigest.rank swapdb json.objkeys pfmerge psubscribe hset graph.SLOWLOG FT._ALIASDELIFX incrby info ttl timeseries.INFOCLUSTER bitfield_ro time hrandfield discard module zinter json.set georadius_ro zpopmin subscribe move cf.insertnx FT.DEBUG zscan zrank FT._CREATEIFNX bf.reserve json.arrtrim asking sintercard graph.QUERY FT.SAFEADD json.objlen FT.SEARCH hsetnx flushall bitcount hget FT.AGGREGATE get sdiff strlen ts.mrevrange sort tdigest.merge incrbyfloat hscan srem graph.DEBUG sunionstore exec eval_ro spublish migrate spop psetex timeseries.CLUSTERSET cms.initbydim ts.decrby linsert sadd hmget setrange ssubscribe readonly cluster zmscore zrevrank lolwut hstrlen tdigest.add json.numpowby llen json.debug georadius function bf.exists FT.CONFIG FT.DICTDUMP lpop FT.ALIASDEL topk.query smembers zdiffstore zrangestore zunion debug restore json.arrappend zcount lpushx pexpireat timeseries.HELLO json.toggle FT.SYNDUMP zremrangebylex zlexcount config bitop FT.ALIASUPDATE FT.SPELLCHECK zrevrangebylex json.strappend tdigest.info cf.addnx bzmpop rename setex FT.SYNADD ts.info lpush latency ts.mget eval randomkey xsetid FT.SUGLEN wait cms.query xrange lastsave dbsize bzpopmax zrem setnx pfselftest hvals getrange bzpopmin lmove json.forget exists ts.alter zintercard acl msetnx del xautoclaim watch graph.PROFILE bf.loadchunk ts.madd lindex select quit lcs setbit tdigest.trimmed_mean shutdown blmove cf.del copy brpoplpush evalsha_ro json.arrlen rpush smismember cf.compact zremrangebyrank ts.range zremrangebyscore incr FT.SUGADD FT.GET pubsub FT.SUGDEL tdigest.max evalsha cf.count zpopmax tdigest.byrank hexists geopos FT.CURSOR zrevrangebyscore smove FT._DROPINDEXIFX graph.LIST georadiusbymember_ro cf.loadchunk cf.add slowlog bf.mexists FT.ALIASADD FT.TAGVALS memory lset object getbit xinfo sync sscan topk.count psync sinterstore scan client cf.scandump multi cf.exists json.resp getset rpoplpush bitfield dump FT.CREATE sismember getex cms.info restore-asking lrange command timeseries.NETWORKTEST zcard FT.SYNUPDATE punsubscribe blpop graph.RO_QUERY tdigest.min sunion geoadd zincrby zadd FT.PROFILE pttl scard getdel zrangebyscore geosearchstore blmpop srandmember failover cf.mexists

Slide 21

Slide 21 text

Generic Transaction Hash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series 20+ Command Groups Generic Transaction H ash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series

Slide 22

Slide 22 text

Generic Transaction Hash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series probabilistic 
 data structures Generic Transaction H ash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series

Slide 23

Slide 23 text

Generic Transaction Hash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series Generic Transaction H ash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series Redis Stack Redis Core

Slide 24

Slide 24 text

Cache-Cache Player Service Place Service Leaderboard Service Seeker Game Monitoring Game Logic

Slide 25

Slide 25 text

Pub/Sub Player Service Place Service Leaderboard Service Seeker Game Monitoring Game Logic

Slide 26

Slide 26 text

Generic Transaction Hash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series Generic Transaction H ash Geospatial Set Sorted Set String List Stream Pub/Sub BitMap HyperLogLog Bloom Cuckoo Count-M in Top-K T-Digest Graph JSON Search Auto-Suggest Time Series Shown Today

Slide 27

Slide 27 text

Final Words + =

Slide 28

Slide 28 text

Wednesday 13:30 16:30 Kubernetes, dépassionné et pour les ultra débutants (Sun & Sebi & Horacio) Wednesday 18:30 19:00: JKube remote-dev : coder avec tous vos micro-services du cloud ... en local ! (Sun) Thursday 15:30 18:30: Enter Serverless Functions Journey with Quarkus (Daniel) Friday 11:45 12:30 Writing Greener Java Applications (Holly) Friday 14:30 15:15: 1, 2, 3 Quarkus! (Clement & Aurea) Want to see/watch more?

Slide 29

Slide 29 text

@clementplop @holly_cummins Slides Red Hat