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
Wprowadzenie do Redisa
Search
Michał Szajbe
September 17, 2014
Programming
2
110
Wprowadzenie do Redisa
(In Polish)
Presented at Bydgoszcz Web Development Meetup #6
Michał Szajbe
September 17, 2014
Tweet
Share
More Decks by Michał Szajbe
See All by Michał Szajbe
Deployment kodu z Capistrano
szajbus
0
70
Other Decks in Programming
See All in Programming
Deep Dive into ~/.claude/projects
hiragram
14
11k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
180
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
630
TypeScriptでDXを上げろ! Hono編
yusukebe
3
670
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
650
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
240
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
250
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.2k
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
820
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
280
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
14k
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Language of Interfaces
destraynor
158
25k
It's Worth the Effort
3n
185
28k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Embracing the Ebb and Flow
colly
86
4.7k
Producing Creativity
orderedlist
PRO
346
40k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Transcript
Michał Szajbe
Czym jest Redis? • Baza danych typu klucz-wartość# • Serwer
struktur danych# • Pozwala na atomiczne operacje na danych# • Trzyma dane w pamięci operacyjnej
key-value store • Klucz = unikalny identyfikator# • Wartość =
dane# • Analogia: hash, map, tablica asocjacyjna# • Przykład: Zbiór PESEL, książka telefoniczna
key-value store key1 value1 key2 value2 key3 value3
String • Podstawowa struktura (nie typ!) danych w Redisie# •
Może zawierać dowolne dane, np. obrazy JPEG, bitmapy, tekst, serializowane obiekty# • Max 512 MB
String name Bydgoszcz Web SET name "Bydgoszcz Web" nr 5
SET nr 5
String name Bydgoszcz Web Development Meetup APPEND name " Development
Meetup" GETRANGE name 10 24 Web Development
String nr 6.5 INCRBYFLOAT nr 0.5 nr 6 INCR nr
String bits1 1100 bits2 1010 BITOP AND result bits1 bits2
result 1000
Lista • Uporządkowana kolekcja stringów (nie tablica!)# • Możliwość dodania
elementu od prawej lub lewej strony# • Bardzo szybki dostęp do skrajnych elementów, wolniejszy do środkowych - O(N) list e1 e2 e3
Lista RPUSH speakers Artur RPUSH speakers Michał speakers Artur
Michał LPUSH speakers Bartek speakers Bartek Artur Michał
Lista LLEN speakers 3 LRANGE speakers 0 -2 Bartek Artur
RPOP speakers Michał speakers Bartek Artur
Przykład: Newsfeed • Chronologicznie# • Tylko 3 najświeższe wiadomości
Przykład: Newsfeed • Chronologicznie# • Tylko 3 najświeższe wiadomości newsfeed
Fotki J. Lawrence WordPress Coś o Tusku
Przykład: Newsfeed LPUSH newsfeed Redis ! LTRIM newsfeed 0 3
Przykład: Newsfeed LPUSH newsfeed Redis ! LTRIM newsfeed 0 3
newsfeed Redis Fotki J. Lawrence WordPress
Zbiór (Set) • Nieuporządkowana kolekcja stringów# • Szybkie dodawanie, usuwanie
i sprawdzanie istnienia elementów w zbiorze# • Tylko unikalne wartości set e1 e2 e3
Zbiór (Set) SADD bookmarks bdgweb.pl ! SADD bookmarks monterail.com !
SADD bookmarks codetunes.com bookmarks bdgweb.pl monterail.com codetunes.com
Zbiór (Set) SRANDMEMBER bookmarks codetunes.com SREM bookmarks codetunes.com SMEMBERS bookmarks
bookmarks bdgweb.pl monterail.com
Operacje na zbiorach set1 a b c set2 a x
z SUNION set1 set2 a b c x z SINTER set1 set2 a SDIFF set1 set2 b c
Operacje na zbiorach set1 a b c set2 a x
z SMOVE set1 set2 c set1 a b set2 a x z c
Hash • Mapuje stringi na wartości (też stringi)# • Dobre
do reprezentacji obiektów hash field1 value1 field2 value2
Hash HSET user name John ! HMSET user age 30
gender male user name John age 30 gender male
Hash HINCRBY user age 1 HMGET user name age John
31 HGET user age 31
Uporządkowany zbiór (Sorted Set) • Połączenie zbioru z hashem# •
Każdy element ma przypisany "score"# • Elementy są automatycznie porządkowane wg score# • Przydatne do budowania rankingów, indeksowania
Uporządkowany zbiór (Sorted Set) clicks link1 1 link2 2 link3
4
Uporządkowany zbiór (Sorted Set) ZADD clicks 1 link4 ! ZINCRBY
clicks 1 link1 clicks link4 1 link1 2 link2 2 link3 4
Uporządkowany zbiór (Sorted Set) ZRANGE clicks 0 1 link4 link1
ZREVRANGE clicks 0 1 link3 link2 ZSCORE clicks link3 4
Uporządkowany zbiór (Sorted Set) ZRANGEBYSCORE clicks 2 +inf WITHSCORES link1
2 link2 2 link3 4
Wygaszanie kluczy e87Yc0iK SET token e87Tc0iK ! EXPIRE token 5
! GET token ! ! ! GET token (nil) po upływie 5 sekund...
Inne ficzery • Transakcje (poprzez kolejkowanie poleceń)# • Pub/sub# •
Skryptowanie (w języku Lua)# • Sharding i replikacja
Przydatne linki • redis.io# • try.redis-db.com