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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Michał Szajbe
September 17, 2014
Programming
120
2
Share
Wprowadzenie do Redisa
(In Polish)
Presented at Bydgoszcz Web Development Meetup #6
Michał Szajbe
September 17, 2014
More Decks by Michał Szajbe
See All by Michał Szajbe
Deployment kodu z Capistrano
szajbus
0
78
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.6k
RTSPクライアントを自作してみた話
simotin13
0
450
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
440
関係性から理解する"同一性"の型用語たち
pvcresin
2
630
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
5.2k
Lessons from Spec-Driven Development
simas
PRO
0
140
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
250
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.1k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
190
Moments When Things Go Wrong
aurimas
3
140
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.9k
Amusing Abliteration
ianozsvald
1
200
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
The untapped power of vector embeddings
frankvandijk
2
1.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
A designer walks into a library…
pauljervisheath
211
24k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Why Our Code Smells
bkeepers
PRO
340
58k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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