Redis

795 views

Published on

Short overview of Redis NoSQL db (partially in Estonian)

Published in: Technology, Business
  • Be the first to comment

Redis

  1. 1. Redis - NoSQL DB
  2. 2. Redis • In-memory persistant key-value store • Asynchronous saving • Written in ANSI-C • 5 datatypes • Atomic operations
  3. 3. ! !
  4. 4. !"#$%&'"()*% ! +"),)()&)-.-(//0"'12-&"32%1&%3"-!"!#$%& '(!)-4")#) !"3%21&'-$5)6-(//0"'"-%0)*%$"#'-.-7%"#%-)3"'- 899-11'-,)0:%';-7%"#%-8999-&%,1*2)'-,1)-<*- #)&"'12-$/=%("#'-8-,)0:%-:*%> ! ?/)%*2"$"#'-.-*))"+'&#+,%&-#($+*,&./,";- &"#$%&'"6-,5),-,/&12-$))("&%&'- &"#$%&'1&=%',%&'>-@1)-&%0$%0-11%&')-,/)("- 7"**"-7%"#%-A0"&=);-'%=",&%-&%##%-4")#)-"#1&%#- ,5)3%7%"#'-$"0),*%1 ! !
  5. 5. !"#$%&""'%(%)" ! *$+,"-+,+.-/0")123"- (+34"'-3"',"'%-#%04+-5+- 4"".-&632-*789 ! :+34"'-3++1+.-!"#$;%- 0"4&"-<$"&234-5+- "1+3#%1%-3++1+.- 5<2')+$%4 ! !
  6. 6. !"#$%&'() ! *+,-./0123!/453 16/7'('88"8/$89"#:; */666/666/)9(<":/=>/012!/;:(? +@ABC@A D*E/666/(FB;"$/ ! 0G1+,-/H@IJ C@AK/L*66/666B;"$ +@AK/LE6/666B;"$ ! !
  7. 7. Datatypes • Scalar (string, number) • List (L) • Set (S) • Sorted Set (Z) • Hash (H)
  8. 8. Scalar operations • SET - set key value • GET - get key value • SETNX - set if not exists • DEL - remove key • INCR - increment by 1 • ...
  9. 9. Demo ! "#$%&'('%)*+,'-%./"012 )342 ! 5#$%&'(' )*+,'-%./"012 ! 6#1%&'(' 789+ ! :.;*%<=>?-7?@?', A ! :.;*%<=>?-7?@?', B ! 5#$%<=>?-7?@?', )B2
  10. 10. Expireing • EXPIRE - seab võtme eluea sekundites • TTL - sekundid eluea lõpuni • PERSIST - eemaldab aegumise
  11. 11. Demo ! "#$%&'('%)*+,'-%./"012 )342 ! #CD:*#%&'('%AEE 789+ ! $$1%&'(' FG ! D#*":"$%&'(' 789+ ! $$1%&'(' HA
  12. 12. Lists • List on sisuliselt sama, mis Array JavaScriptis. [elm1, elm2, elm3,.., elmN]
  13. 13. List operations • RPUSH - lisa element listi lõppu • LPUSH - lisa element listi algusesse • LRANGE - tagasta vahemik elementidest • LLEN - listi pikkus • LREM - kustuta esimesed N elementi • ...
  14. 14. Demo ! 1DI"J%K/7%)+H(?'>2 A ! 1DI"J%K/7%)'>(?7??72 B ! *DI"J%K/7%)('&9%<?L?2 M ! 11#.%K/7 M ! 1*N.5#%K/7%A%B OP+H(?'>PQP('&9%<?L?PR ! 1*N.5#%K/7%E%HA OP'>(?7??7PQP+H(?'>PQP('&9%<?L?PR
  15. 15. Set • Set on umbes sama nagu JavaScriptis Object - ainult et võtmetel pole väärtusi, võti kas on seatud või mitte (sisuliselt flags). {elm1:true, elm2:true, .., elmN:true} NB! igat võtit ainult 1 kord!
  16. 16. Set operations • SADD - lisab võtme set’i • SREM - eemaldab võtme • SISMEMBER - kas võti on set’is • SMEMBERS - tagastab kõik võtmed • SUNION - liidab set’id kokku ja tagastab • SDIFF - tagastab erinevused set’ide vahel
  17. 17. Demo ! "N66%K/7%)+H(?'>2 789+ ! "N66%K/7%)'>(?7??72 789+ ! "N66%,+>S'%)+H(?'>2 789+ ! "6:TT%K/7%,+>S' OP'>(?7??7PR ! "U#UV#*"%K/7 OP+H(?'>PQP'>(?7??7PR ! "I.:3.%K/7%,+>S' OP+H(?'>PQP'>(?7??7PR
  18. 18. Sorted Set • Sama nagu Set, aga igal võtmel on juures numbriline score, mille alusel on võtmed sorditud (võtmed on unikaalsed nagu Set puhul). {1234:”elm1”, 1235:”elm2, 1236:”elm3”,...}
  19. 19. Sorted Set operations • ZADD - lisab võtme koos score’iga • ZREM - eemaldab võtme • ZRANK - tagastab indeksi (järjestatud score alusel) • ZRANGEBYSCORE - tagastab vahemiku, kus score jääb min ja max vahele • ....
  20. 20. Demo ! WN66%-?',',%AAE%)K/72 789+ ! WN66%-?',',%AAA%),+>S'2 789+ ! W*N.5#%-?',',%E%HA OPK/7PQP,+>S'PR ! W*#X*N.5#%-?',',%E%HA OP,+>S'PQPK/7PR ! W";3*#%-?',',%)K/72 )AAE2 ! W;N*6%-?',', B

×