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
Guilherme da Silva Mello
April 20, 2012
Programming
1
150
Redis - Key-value store enhanced
Introduction to some redis data types and manipulation
Guilherme da Silva Mello
April 20, 2012
Tweet
Share
More Decks by Guilherme da Silva Mello
See All by Guilherme da Silva Mello
Desenvolvimento Ágil de Aplicações WEB
guimello
0
55
Other Decks in Programming
See All in Programming
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
280
AgentCoreとHuman in the Loop
har1101
5
240
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
CSC307 Lecture 07
javiergs
PRO
0
550
CSC307 Lecture 03
javiergs
PRO
1
490
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
並行開発のためのコードレビュー
miyukiw
0
150
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
460
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
190
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
120
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
200
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
The Invisible Side of Design
smashingmag
302
51k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
66
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!