Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Redis - Key-value store enhanced
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Guilherme da Silva Mello
April 20, 2012
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Redis - Key-value store enhanced
Introduction to some redis data types and manipulation
Guilherme da Silva Mello
April 20, 2012
More Decks by Guilherme da Silva Mello
See All by Guilherme da Silva Mello
Desenvolvimento Ágil de Aplicações WEB
guimello
0
58
Other Decks in Programming
See All in Programming
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
OSもどきOS
arkw
0
570
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
650
3Dシーンの圧縮
fadis
1
780
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
150
A2UI という光を覗いてみる
satohjohn
1
140
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
New "Type" system on PicoRuby
pocke
1
960
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
C# and C++ Interoperability - cho-dotnetnew
harukasao
0
180
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
BBQ
matthewcrist
89
10k
HDC tutorial
michielstock
2
720
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Raft: Consensus for Rubyists
vanstee
141
7.5k
The Spectacular Lies of Maps
axbom
PRO
1
810
Designing Experiences People Love
moore
143
24k
Prompt Engineering for Job Search
mfonobong
0
350
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
Transcript
Redis key-value store enhanced
Storing and retrieving > SET what:is:love? "baby ..." > GET
what:is:love? => "baby ..."
Deleting keys > DEL article:1 => 1 | 0
SET-if-not-exists > SETNX video:63:title "The Doors" => 1 | 0
Increment > SET online:users 0 > INCR online:users => 1
> INCR online:users => 2 > GET online:users => 2 > DEL online:users > INCR online:users => 1
Expiring - TTL > SET balance:sheet "<p>$1</p>" > EXPIRE balance:sheet
60 > TTL balance:sheet => 59 > TTL ruby => -1
Lists (Ordered) > RPUSH headlines 86 > RPUSH headlines 77
> LPUSH headlines 458 > LRANGE headlines 0 -1 => ["458", "86", "77"] > LRANGE headlines 1 2 => ["86", "77"]
Lists (cont.) > LLEN headlines => 3 > LPOP headlines
=> "458" > RPOP headlines => "77"
Sets > SADD social:networks twitter > SADD social:networks facebook >
SADD social:networks google+ > SCARD social:networks => 3
Sets (cont.) > SREM social:networks twitter => 1 > SCARD
social:networks => 2 > SISMEMBER social:networks twitter => 0 > SISMEMBER social:networks google+ => 1
Sets (cont.) > SMEMBERS social-networks => ["google+", "facebook"] > SRANDMEMBER
social-networks => ["facebook"]
Sets (cont.) > SADD cool-sites facebook > SINTER social-networks cool-sites
=> ["facebook"]
Sorted Sets (by score) > ZADD languages 10 Ruby >
ZADD languages 9.5 Java > ZADD languages 4 C# > ZRANGE languages 0 -1 => ["C#", "Java", "Ruby"]
Sorted Sets (cont.) > ZREVRANGE languages 0 -1 => ["Ruby",
"Java", "C#"] > ZRANGEBYSCORE languages 5 inf => ["Java", "Ruby"] > ZREVRANGEBYSCORE languages inf 5 WITHSCORES LIMIT 0 10 => ["Ruby", "10", "Java", "9.5"]
Sorted Sets (cont.) > ZSCORE languages Ruby => 10 >
ZCOUNT languages 3 5 => 1 > ZREMRANGEBYRANK languages 0 1 => 2 > ZRANGE languages 0 -1 WITHSCORES => ["Ruby", "10"]
Hashes > HMSET user:45 email
[email protected]
name Guilherme age 27
> HGETALL user:45 => ["email", "
[email protected]
", "name", "Guilherme", "age", "27"]
Hashes (cont.) > HSET user:45 name Mello > HGET user:45
name => Mello
Hashes (cont.) > HLEN user:45 => 3 > HDEL user:45
name > HEXISTS user:45 name => 0 > HKEYS user:45 => ["email", "age"]
> RPUSH numbers 50 > RPUSH numbers 43 > LPUSH
numbers 67 > LRANGE numbers 0 -1 => ["67", "50", "43"] > SORT numbers => ["43", "50", "67"] Sorting
Sorting (cont.) > LPUSH things car > RPUSH things ball
> RPUSH things pen > LRANGE things 0 -1 => ["car", "ball", "pen"] > SORT things ALPHA DESC => ["pen", "car", "ball"]
Sort by external keys > LPUSH account:ids 2 > RPUSH
account:ids 3 > RPUSH account:ids 1 > SET account:2:logins 50 > SET account:3:logins 23 > SET account:1:logins 12
> LRANGE account:ids 0 -1 => ["2", "3", "1"] >
SORT account:ids BY account:*: logins => ["1", "3", "2"] Sort by external keys (cont.)
Retrieving external keys > SET account:1 "dhh" > SET account:2
"tenderlove" > SET account:3 "matz"
Retrieving external keys (cont.) > SORT account:ids BY account:*:logins GET
account:* => ["dhh", "matz", "tenderlove"] > SORT account:ids BY account:*:logins GET account:* GET # => ["dhh", "1", "matz", "3", "tenderlove", "2"]
Storing the result list > SORT account:ids BY account:*:logins GET
account:* GET # STORE account:list > LRANGE account:list 0 -1 => ["dhh", "1", "matz", "3", "tenderlove", "2"]
Sorting and retrieving with hashes > HMSET account:1:profile logins 12
> HMSET account:2:profile logins 50 > HMSET account:3:profile logins 23 > HMSET account:1:hash name dhh > HMSET account:2:hash name tenderlove > HMSET account:3:hash name matz
Sorting and retrieving with hashes (cont.) > SORT account:ids BY
account:*:profile->logins GET account:*:hash->name => ["dhh", "matz", "tenderlove"]
Check out more on http://redis.io or http://lmgtfy.com/?q=redis Thanks!