applied redis
TRANSCRIPT
![Page 1: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/1.jpg)
Applied Redis
Barcamp Saigon 2012
![Page 2: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/2.jpg)
About me@hotrannam
KMS Technology
![Page 3: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/3.jpg)
take away
fun
![Page 4: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/4.jpg)
back to school
![Page 5: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/5.jpg)
data structures
![Page 6: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/6.jpg)
big O
![Page 7: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/7.jpg)
do it right( data model & query performance )
![Page 8: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/8.jpg)
redis???
![Page 9: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/9.jpg)
data structureserver
![Page 10: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/10.jpg)
data types
![Page 11: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/11.jpg)
#1 strings#2 hashes#3 lists#4 sets#5 sorted sets
![Page 12: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/12.jpg)
data examples
Keys
page:index.htmllogin_countusers_logged_in_todaylatest_post_idsuser:123:session
users_and_scores
Values
<html><head>[…] string7464{1, 2, 3, 4, 5} set[201, 204, 205] listtime => 10927353 hashusername => joejoe ~ 1348 sorted setfred ~ 938chris ~ 2832
![Page 13: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/13.jpg)
command examples
SET my_key “my value”GET my_keyINCR next_post_idEXPIRE my_key 1234TTL my_keyDEL my_keyEXISTS my_key
HSET product:1 id 1HSET product:1 name “iPad”HSET product:1 available 10
field value
![Page 14: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/14.jpg)
commands have its big O
( mostly )
![Page 15: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/15.jpg)
and beyond
![Page 16: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/16.jpg)
bring to life
![Page 17: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/17.jpg)
#1 cache data
![Page 18: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/18.jpg)
#2 who is online
# add to friends setSADD users:nam:friends duySADD users:nam:friends khoi# add to online setSADD online namSADD online nghiaSADD online khoi# get online friends – {khoi}SINTER users:nam:friends online
![Page 19: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/19.jpg)
#3 leaderboard ( ranking )
# add to leaderboard (sorted set)ZADD leaderboard <score> <player># get top 5ZREVRANGEBYSCORE leaderboard +inf –inf WITHSCORES LIMIT 0 5# get rank of KhoiZREVRANK leaderboard Khoi# get 5 players around KhoiZREVRANGEBYSCORE leaderboard +inf –inf WITHSCORES LIMIT 2 5
max score
min score
countrank
![Page 20: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/20.jpg)
#4 cross-app communication
# web appSUBSCRIBE chatPUBLISH chat “Hello! I’m web app.”
# mobile appSUBSCRIBE chatPUBLISH chat “Hi! I’m mobile app.”
channel
![Page 21: Applied Redis](https://reader036.vdocuments.site/reader036/viewer/2022081507/555684b0d8b42a182f8b48ec/html5/thumbnails/21.jpg)
Thank you!