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
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
430
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
今から始めるClaude Code入門〜AIコーディングエージェントの歴史と導入〜
nokomoro3
0
130
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
850
Rancher と Terraform
fufuhu
2
280
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
1.1k
Vue・React マルチプロダクト開発を支える Vite
andpad
0
110
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
140
Design Foundational Data Engineering Observability
sucitw
3
190
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
290
Testing Trophyは叫ばない
toms74209200
0
860
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
160
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Thoughts on Productivity
jonyablonski
70
4.8k
For a Future-Friendly Web
brad_frost
180
9.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
4 Signs Your Business is Dying
shpigford
184
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Making Projects Easy
brettharned
117
6.4k
Designing for Performance
lara
610
69k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
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