ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
serwer struktur danych w praktyce
CZE??!
jestem ?lip.
PLAN
 co to jest redis?
   typy danych
 zab¨®jcze cechy
redis a memcached
 redis w praktyce
   tips & tricks
NOSQL
REDIS TO...



zaawansowany system klucz-warto??
REDIS TO...



serwer struktur danych
@ANTIREZ
 @pnoordhuis
WebClusters, Redis
YYY...
WebClusters, Redis
STRUKTURY DANYCH
STRING
STRING

redis> SET my:key "value"

redis> GET my:key
"value"
STRING

redis> SET my:incr "10"

redis> INCR my:incr

redis> GET my:incr
"11"
STRING
redis> SET hello:world "Web"

redis> APPEND hello:world "Clusters"

redis> GET hello:world
"WebClusters"

redis> GETRANGE hello:world 0 2
"Web"
LIST
LIST
redis> LPUSH list a
redis> LPUSH list b
redis> RPUSH list c

redis> LRANGE list 0 2
1) "b"
2) "a"
3) "c
LIST
redis> LPUSH list a
redis> LPUSH list b
redis> RPUSH list c

redis> RPOPLPUSH list other:list
"a"

redis> LRANGE list 0 3
1) "c"
2) "b"

redis> LRANGE other:list 0 3
1) "a"
SET
SET
redis> SADD post:1:tag "ruby"
redis> SADD post:1:tag "rails"
redis> SADD post:1:tag "redis"

redis> SADD post:2:tag "redis"
redis> SADD post:2:tag "resque"

redis> SINTER post:1:tag post:2:tag
1) "redis"
SET
redis> SADD post:1:tag "ruby"
redis> SADD post:1:tag "rails"
redis> SADD post:1:tag "redis"

redis> SADD post:2:tag "redis"
redis> SADD post:2:tag "resque"

redis> SUNIONSTORE tag post:1:tag post:2:tag
redis> SMEMBERS tag
1) "rails"
2) "redis"
3) "resque"
4) "ruby"
ZSET
ZSET
redis> ZADD zset 1 3
redis> ZADD zset 2 2
redis> ZADD zset 3 1

redis> ZRANGE zset 0 -1
1) "3"
2) "2"
3) "1"
HASH
HASH
redis> HMSET hash string:1 Hello
string:2 WebClusters

redis> HGETALL hash
1) "string:1"
2) "Hello"
3) "string:2"
4) "WebClusters"
HASH
redis> HSET hash string:1 Bye
redis> HSET hash string:3 2011

redis> HGETALL hash
1) "string:1"
2) "Bye"
3) "string:2"
4) "WebClusters"
5) "string:3"
6) "2011"
RTFM
WebClusters, Redis
WebClusters, Redis
WebClusters, Redis
ZAB?JCZE CECHY
TRANSAKCJE
TRANSAKCJE
redis> SET account:1 30
redis> SET account:2 45

redis> MULTI
redis> INCRBY account:1 15
QUEUED

redis> DECRBY account:2 15
QUEUED

redis> EXEC
1) (integer) 45
2) (integer) 30
PERSYSTENCJA
PERSYSTENCJA



     snapshot
  append-only ?le
PERSYSTENCJA



   na ??danie
   okresowa
REPLIKACJA
REPLIKACJA
PIPELINING
PIPELINING
http://www.?ickr.com/photos/chadelliott2012/5659144073/
PIPELINING
PAMI?? WIRTUALNA
PAMI?? WIRTUALNA
KLASTROWANIE
http://www.?ickr.com/photos/15708236@N07/2754478731/
http://www.?ickr.com/photos/dan4th/301092024/
4096 #
KLASTROWANIE
KLASTROWANIE

redis> #1 GET foo
-MOVED 3 192.168.1.1:6391

redis> #2 GET foo
"bar"
KLASTROWANIE

redis> #1 CLUSTER HINTS
* magic *

redis> #2 GET foo
"bar"
REDIS-TRIB
MEMCACHED?
X 100 000
SET


memcached            redis




6.926125 s         8.470477 s
PIPELINE SET


memcached             redis




6.926125 s        0.916335 s
GET


memcached            redis




6.904938 s         7.572058 s
PIPELINE GET


memcached             redis




6.904938 s       0.651953 s
MGET


memcached             redis




1.010348 s          0.185136 s
RAM


memcached         redis




 436 KB           1.1 MB
RAM



k 17 - 22 bajty
v 19 - 24 bajty
STRING


memcached             redis




  14 MB              13.9 MB
INTEGER


memcached              redis




  11 MB               10.7 MB
HASH


"an-average-key-1" => "1"
"an-average-key" => "1": "1"
HASH


memcached          redis




  11 MB            9 MB
PRAKTYKA
RESQUE
RESTMQ
TWITTER
WHO¡¯S ONLINE?
STATYSTYKI
WYSZUKIWANIE
SOCIAL GRAPH
TIPS & TRICKS
640K ought to be
enough for anybody
3 != ¡°3¡±
32 > 64
  W BITACH
http://www.?ickr.com/photos/memestate/45986749/
ONE MORE THING
WebClusters, Redis
http://www.?ickr.com/photos/15708236@N07/2754478731/
-- hello.lua
-- the first program in every language

io.write("Hello world, from ",_VERSION,"!n")
redis = Redis.new
script = <<LUA
  local value = tonumber(redis.call('get',
KEYS[1]))
  if value == nil then return {err = "Value at
key is not integer"} end
  if value > tonumber(ARGV[1])
  then
    value = value - 1
    redis.call('set', KEYS[1], value)
  end
  return value
LUA

redis.set :x, 4
5.times { puts(redis.eval(script, 1, :x, 0)) }
~/Code/webclusters-redis master $ ./run lua.rb
3
2
1
0
0
https://github.com/?liptepper/webclusters-redis
WebClusters, Redis
O CZYM ZAPOMNIA?EM?
Ad

Recommended

Node.js - A Quick Tour II
Node.js - A Quick Tour II
Felix Geisend?rfer
?
Nodejs - A-quick-tour-v3
Nodejs - A-quick-tour-v3
Felix Geisend?rfer
?
Redis begins
Redis begins
DaeMyung Kang
?
Deep Visibility for Production Microservices
Deep Visibility for Production Microservices
Paul Bauer
?
Elasticsearch 1.x Cluster Installation (VirtualBox)
Elasticsearch 1.x Cluster Installation (VirtualBox)
Amir Sedighi
?
Node.js - A practical introduction (v2)
Node.js - A practical introduction (v2)
Felix Geisend?rfer
?
A simple introduction to redis
A simple introduction to redis
Zhichao Liang
?
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
Felix Geisend?rfer
?
This is redis - feature and usecase
This is redis - feature and usecase
Kris Jeong
?
REDIS intro and how to use redis
REDIS intro and how to use redis
Kris Jeong
?
Node.js - As a networking tool
Node.js - As a networking tool
Felix Geisend?rfer
?
Nodejs - A quick tour (v5)
Nodejs - A quick tour (v5)
Felix Geisend?rfer
?
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
Felix Geisend?rfer
?
Redis acc
Redis acc
DaeMyung Kang
?
Nodejs - A quick tour (v4)
Nodejs - A quick tour (v4)
Felix Geisend?rfer
?
Distributed Data Processing Workshop - SBU
Distributed Data Processing Workshop - SBU
Amir Sedighi
?
Lightweight DAS components in Perl
Lightweight DAS components in Perl
guestbab097
?
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
Felix Geisend?rfer
?
Caching solutions with Redis
Caching solutions with Redis
George Platon
?
Node.js in production
Node.js in production
Felix Geisend?rfer
?
Dirty - How simple is your database?
Dirty - How simple is your database?
Felix Geisend?rfer
?
Redis, a 2 minutes introduction
Redis, a 2 minutes introduction
Mirko Calvaresi
?
Redis SoCraTes 2014
Redis SoCraTes 2014
steffenbauer
?
Introduction to redis - version 2
Introduction to redis - version 2
Dvir Volk
?
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
Hua Chu
?
New kid on the block node.js
New kid on the block node.js
Joel Divekar
?
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Yuriko IKEDA
?
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB
?
Introduction to Redis
Introduction to Redis
Dvir Volk
?
Redis memcached pdf
Redis memcached pdf
Erin O'Neill
?

More Related Content

What's hot (20)

This is redis - feature and usecase
This is redis - feature and usecase
Kris Jeong
?
REDIS intro and how to use redis
REDIS intro and how to use redis
Kris Jeong
?
Node.js - As a networking tool
Node.js - As a networking tool
Felix Geisend?rfer
?
Nodejs - A quick tour (v5)
Nodejs - A quick tour (v5)
Felix Geisend?rfer
?
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
Felix Geisend?rfer
?
Redis acc
Redis acc
DaeMyung Kang
?
Nodejs - A quick tour (v4)
Nodejs - A quick tour (v4)
Felix Geisend?rfer
?
Distributed Data Processing Workshop - SBU
Distributed Data Processing Workshop - SBU
Amir Sedighi
?
Lightweight DAS components in Perl
Lightweight DAS components in Perl
guestbab097
?
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
Felix Geisend?rfer
?
Caching solutions with Redis
Caching solutions with Redis
George Platon
?
Node.js in production
Node.js in production
Felix Geisend?rfer
?
Dirty - How simple is your database?
Dirty - How simple is your database?
Felix Geisend?rfer
?
Redis, a 2 minutes introduction
Redis, a 2 minutes introduction
Mirko Calvaresi
?
Redis SoCraTes 2014
Redis SoCraTes 2014
steffenbauer
?
Introduction to redis - version 2
Introduction to redis - version 2
Dvir Volk
?
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
Hua Chu
?
New kid on the block node.js
New kid on the block node.js
Joel Divekar
?
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Yuriko IKEDA
?
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB
?
This is redis - feature and usecase
This is redis - feature and usecase
Kris Jeong
?
REDIS intro and how to use redis
REDIS intro and how to use redis
Kris Jeong
?
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
Felix Geisend?rfer
?
Distributed Data Processing Workshop - SBU
Distributed Data Processing Workshop - SBU
Amir Sedighi
?
Lightweight DAS components in Perl
Lightweight DAS components in Perl
guestbab097
?
Caching solutions with Redis
Caching solutions with Redis
George Platon
?
Dirty - How simple is your database?
Dirty - How simple is your database?
Felix Geisend?rfer
?
Redis, a 2 minutes introduction
Redis, a 2 minutes introduction
Mirko Calvaresi
?
Introduction to redis - version 2
Introduction to redis - version 2
Dvir Volk
?
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
TWJUG 2016 - Mogilefs, º†¼s¿É¿¿µÄƒ¦´æ·½°¸
Hua Chu
?
New kid on the block node.js
New kid on the block node.js
Joel Divekar
?
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Mac OS X Lion ¤Ç×÷¤ë WordPress local ­h¾³
Yuriko IKEDA
?
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB
?

Similar to WebClusters, Redis (20)

Introduction to Redis
Introduction to Redis
Dvir Volk
?
Redis memcached pdf
Redis memcached pdf
Erin O'Neill
?
°Â±ð²ú¥¨¥ó¥·?¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤·?¤á¤Æ¤Î°ù±ð»å¾±²õ.±è»å´Ú
°Â±ð²ú¥¨¥ó¥·?¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤·?¤á¤Æ¤Î°ù±ð»å¾±²õ.±è»å´Ú
nasa9084
?
°Â±ð²ú¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤¸¤á¤Æ¤Î°ù±ð»å¾±²õ
°Â±ð²ú¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤¸¤á¤Æ¤Î°ù±ð»å¾±²õ
nasa9084
?
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
Ricard Clau
?
#SydPHP - The Magic of Redis
#SydPHP - The Magic of Redis
Aaron Weatherall
?
Introduction to Redis
Introduction to Redis
Ofer Zelig
?
Scaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane Paek
Redis Labs
?
Serializing Ruby Objects in Redis
Serializing Ruby Objects in Redis
Brian Kaney
?
Introduction to redis
Introduction to redis
Tanu Siwag
?
Redis the better NoSQL
Redis the better NoSQL
OpenFest team
?
quickguide-einnovator-9-redis
quickguide-einnovator-9-redis
jorgesimao71
?
Redis - N?SQL Berlin
Redis - N?SQL Berlin
mattmatt
?
Redis acc 2015_eng
Redis acc 2015_eng
DaeMyung Kang
?
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
Ricard Clau
?
Introduction to Redis
Introduction to Redis
Maarten Smeets
?
Redispresentation apac2012
Redispresentation apac2012
Ankur Gupta
?
KeyValue Stores
KeyValue Stores
Mauro Pompilio
?
Redis introduction
Redis introduction
Federico Daniel Colombo Gennarelli
?
An Introduction to Redis for Developers.pdf
An Introduction to Redis for Developers.pdf
Stephen Lorello
?
Introduction to Redis
Introduction to Redis
Dvir Volk
?
°Â±ð²ú¥¨¥ó¥·?¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤·?¤á¤Æ¤Î°ù±ð»å¾±²õ.±è»å´Ú
°Â±ð²ú¥¨¥ó¥·?¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤·?¤á¤Æ¤Î°ù±ð»å¾±²õ.±è»å´Ú
nasa9084
?
°Â±ð²ú¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤¸¤á¤Æ¤Î°ù±ð»å¾±²õ
°Â±ð²ú¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î¤Ï¤¸¤á¤Æ¤Î°ù±ð»å¾±²õ
nasa9084
?
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
Ricard Clau
?
Introduction to Redis
Introduction to Redis
Ofer Zelig
?
Scaling Redis To 1M Ops/Sec: Jane Paek
Scaling Redis To 1M Ops/Sec: Jane Paek
Redis Labs
?
Serializing Ruby Objects in Redis
Serializing Ruby Objects in Redis
Brian Kaney
?
Introduction to redis
Introduction to redis
Tanu Siwag
?
quickguide-einnovator-9-redis
quickguide-einnovator-9-redis
jorgesimao71
?
Redis - N?SQL Berlin
Redis - N?SQL Berlin
mattmatt
?
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
Ricard Clau
?
Redispresentation apac2012
Redispresentation apac2012
Ankur Gupta
?
An Introduction to Redis for Developers.pdf
An Introduction to Redis for Developers.pdf
Stephen Lorello
?
Ad

More from Filip Tepper (7)

Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to hero
Filip Tepper
?
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
Filip Tepper
?
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
Filip Tepper
?
Pan Oponka - Biografia
Pan Oponka - Biografia
Filip Tepper
?
Redis at WRUG
Redis at WRUG
Filip Tepper
?
API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?
Filip Tepper
?
Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to hero
Filip Tepper
?
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
Filip Tepper
?
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
Filip Tepper
?
Pan Oponka - Biografia
Pan Oponka - Biografia
Filip Tepper
?
API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?
Filip Tepper
?
Ad

WebClusters, Redis

Editor's Notes

  • #2: dlaczego go nie potrzebujesz dzisiaj, ale je&amp;#x15B;li masz szcz&amp;#x119;&amp;#x15B;cie - mo&amp;#x17C;esz potrzebowa&amp;#x107; go jutro\nnie chce was zniechecic - raczej pokazac dlaczego jest to trudne\n
  • #3: dzi&amp;#x119;kuj&amp;#x119; za zaproszenie, 100% ruby, okolice Javy, Freeport Metrics, pozosta&amp;#x142;e 100% obj-c\njestem praktykiem, nie teoretykiem - nie jestem z wykszta&amp;#x142;cenia informatykiem w prezentacji b&amp;#x119;dzie du&amp;#x17C;o skr&amp;#xF3;t&amp;#xF3;w, uproszcze&amp;#x144; i za&amp;#x142;o&amp;#x17C;e&amp;#x144; a priori - bo to zbyt szeroki temat na nieca&amp;#x142;e p&amp;#xF3;&amp;#x142; godziny, a ja nie jestem a&amp;#x17C; tak m&amp;#x105;dry ;-)\n
  • #4: \n
  • #5: redis to nosql\nplotki o &amp;#x15B;mierci SQL-a s&amp;#x105; mocno przesadzone\nbo i skala problem&amp;#xF3;w wymagaj&amp;#x105;cych nosqla jest ograniczone\n
  • #6: bo mo&amp;#x17C;e dzia&amp;#x142;a&amp;#x107; jak klucz warto&amp;#x15B;&amp;#x107;, optymalizuje warto&amp;#x15B;ci, jest szybki i milusi\n\n
  • #7: bo warto&amp;#x15B;ci&amp;#x105; mo&amp;#x17C;e by&amp;#x107; tak&amp;#x17C;e jedna ze struktur, kt&amp;#xF3;re istniej&amp;#x105; w Redisie\nnie tylko proste &amp;#x142;a&amp;#x144;cuchy tekstowe\n
  • #8: \n
  • #9: \n
  • #10: to nie b&amp;#x119;dzie &amp;#x142;atwa prezentacja - redis, mimo, &amp;#x17C;e to jeden system to ze wzgl&amp;#x119;de na liczne ga&amp;#x142;&amp;#x119;zie i eksperymentalne funkcje\nwymaga czasu na jego poznanie i dostosowanie\nten ekran jest ju&amp;#x17C; dawno nieaktualny - prezentacj&amp;#x119; zacz&amp;#x105;&amp;#x142;em przygotowywa&amp;#x107; miesi&amp;#x105;c temu\n
  • #11: A system rozwija si&amp;#x119; ci&amp;#x105;gle. to jest wiadomo&amp;#x15B;&amp;#x107; z wczorajszego poranka\nwarto &amp;#x15B;ledzi&amp;#x107; jego rozw&amp;#xF3;j\n
  • #12: \n
  • #13: \n
  • #14: \n
  • #15: w redisie mo&amp;#x17C;emy te&amp;#x17C; trzyma&amp;#x107; (jako stringi) integery. i wykonywa&amp;#x107; na nich operacje\n
  • #16: mo&amp;#x17C;na te&amp;#x17C; modyfikowa&amp;#x107; warto&amp;#x15B;ci &amp;#x142;a&amp;#x144;cuch&amp;#xF3;w tekstowych\n
  • #17: sorted by insertion order\nlisty z blokowaniem warto&amp;#x15B;ci, rpoplpush\nbodaj najpopularniejsze zastosowanie redisa w sferze us&amp;#x142;ug - kolejki wiadomo&amp;#x15B;ci\n
  • #18: \n
  • #19: \n
  • #20: zbi&amp;#xF3;r, mo&amp;#x17C;liwe ciekawe operacje UNION, INTERSECTION\n
  • #21: mo&amp;#x17C;na mie&amp;#x107; zastrze&amp;#x17C;enia co do wydajno&amp;#x15B;ci\n
  • #22: \n
  • #23: sortowane zbiory\nrzecz, kt&amp;#xF3;ra wykorzystali&amp;#x15B;my w Blipie\n
  • #24: \n
  • #25: \n
  • #26: \n
  • #27: protok&amp;#xF3;&amp;#x142; Redisa zwraca podstawowe warto&amp;#x15B;ci\nzak&amp;#x142;ada obs&amp;#x142;ug&amp;#x119; tego po stronie klienta\n
  • #28: \n
  • #29: \n
  • #30: \n
  • #31: \n
  • #32: \n
  • #33: \n
  • #34: \n
  • #35: \n
  • #36: snapshot - tworzony jest fork, redis zapisuje stan swojej bazy do pliku binarnego\naof - zapisuje ka&amp;#x17C;d&amp;#x105; komend&amp;#x119; do pliku - 100% pewno&amp;#x15B;ci odzyskania danych, bardzo d&amp;#x142;ugi proces &amp;#x142;adowania\naof - mo&amp;#x17C;liwy jest rewrite\n
  • #37: dla snapshotu\nna &amp;#x17C;&amp;#x105;danie - komendy SAVE lub BGSAVE\nokresowa - je&amp;#x15B;li w okre&amp;#x15B;lonym przedziale czasu dosz&amp;#x142;o do zmian w X kluczy\n
  • #38: po co replikacja? - zabezpieczenie przed padem\nskalowanie ci&amp;#x119;&amp;#x17C;kich operacji - SORT\nreplikacja nie blokuje mastera - replikacja blokuje slave&amp;#x2019;a\n
  • #39: master mo&amp;#x17C;e mie&amp;#x107; wiele slave&amp;#x2019;&amp;#xF3;w\nslave mo&amp;#x17C;e by&amp;#x107; masterem dla kolejnego zestawu slave&amp;#x2019;&amp;#xF3;w\nprzyk&amp;#x142;adowo - mamy zestaw master / slave-slave / slave-slave - zapisujemy dane tylko na ostatnim etapie\n
  • #40: \n
  • #41: bez pipeliningu - czekamy na odpowied&amp;#x17A; na ka&amp;#x17C;de &amp;#x17C;&amp;#x105;danie\nwk&amp;#x142;adamy dane - odpowied&amp;#x17A;, wk&amp;#x142;adamy - odpowied&amp;#x17A;\n
  • #42: ale pr&amp;#x119;dzej czy p&amp;#xF3;&amp;#x17A;niej to mo&amp;#x17C;e by&amp;#x107; za ma&amp;#x142;o - wydajno&amp;#x15B;&amp;#x107; b&amp;#x119;dzie spada&amp;#x107;\n
  • #43: bez pipeliningu - czekamy na odpowied&amp;#x17A; na ka&amp;#x17C;de &amp;#x17C;&amp;#x105;danie\nwk&amp;#x142;adamy dane - odpowied&amp;#x17A;, wk&amp;#x142;adamy - odpowied&amp;#x17A;\n
  • #44: \n
  • #45: minimalne wymaganie redisa - wszystkie klucze zawsze musz&amp;#x105; by&amp;#x107; w pami&amp;#x119;ci\nale ca&amp;#x142;&amp;#x105; reszt&amp;#x119; mo&amp;#x17C;na trzyma&amp;#x107; w pami&amp;#x119;ci wirtualnej\nwarto si&amp;#x119; zastanowi&amp;#x107; czy lepiej nie skorzysta&amp;#x107; z hashy\nale je&amp;#x15B;&amp;#x142;i nie zale&amp;#x17C;y nam na wydajno&amp;#x15B;ci - mo&amp;#x17C;na ustawi&amp;#x107; zerow&amp;#x105; pami&amp;#x119;&amp;#x107; dla warto&amp;#x15B;ci\n
  • #46: \n
  • #47: \n
  • #48: poszczeg&amp;#xF3;lny w&amp;#x119;z&amp;#x142;y w klastrze rozmawiaj&amp;#x105; ze sob&amp;#x105; protoko&amp;#x142;em binarnym\nnormalnie redis korzysta z protoko&amp;#x142;u tekstowego - tutaj zosta&amp;#x142;o to zoptymalizowane\n
  • #49: klaster redisa jest dzielony na 4096 slot&amp;#xF3;w na hashe\nw momencie tworzenia klastra nale&amp;#x17C;y sloty do poszczeg&amp;#xF3;lnych instancji\n
  • #50: tutaj dla u&amp;#x142;atwienia - podzielimy sobie na 6 slot&amp;#xF3;w, kt&amp;#xF3;re zostan&amp;#x105; roz&amp;#x142;o&amp;#x17C;one na 3 w&amp;#x119;z&amp;#x142;ach\n
  • #51: klastrowanie - dummy client\n
  • #52: klastrowanie - sprytny klient\n
  • #53: automatyczne zarz&amp;#x105;dzanie klastrem\nnarz&amp;#x119;dzie pomagaj&amp;#x105;ce w tworzeniu klastra\nsprawdzenie zgodno&amp;#x15B;ci klastra\ndodawanie nowych element&amp;#xF3;w do klastra\n
  • #54: jak si&amp;#x119; to ma do memcached?\nzale&amp;#x17C;y od zastosowania.\n
  • #55: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #56: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #57: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #58: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #59: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #60: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #61: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #62: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #63: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #64: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #65: \n
  • #66: ka&amp;#x17C;dy z test&amp;#xF3;w to 100000 operacji\n
  • #67: \n
  • #68: Resque is a Redis-backed Ruby library for creating background jobs, placing those jobs on multiple queues, and processing them later.\nJedno z pierwszych narz&amp;#x119;dzie powsta&amp;#x142;ych dzi&amp;#x119;ki Redisowi.\nU&amp;#x17C;ywane w GitHubie\n
  • #69: \n
  • #70: \n
  • #71: \n
  • #72: \n
  • #73: \n
  • #74: \n
  • #75: \n
  • #76: bill gates twierdzi, &amp;#x17C;e powiedzia&amp;#x142; wiele g&amp;#x142;upich rzeczy\nale tego nie,\nfragmentacja kt&amp;#xF3;ra jest rozwi&amp;#x105;zywana za pomoc&amp;#x105; r&amp;#xF3;&amp;#x17C;nych malloc&amp;#xF3;w\n
  • #77: redis bardzo dobrze optymalizuje liczby - nie trzyma ich w pami&amp;#x119;ci jako stringi\n
  • #78: w zale&amp;#x17C;no&amp;#x15B;ci od potrzeb - lepiej skompilowa&amp;#x107; Redisa w 32bitowej architekturze\n
  • #79: monitoruj, naucz si&amp;#x119;\nto nowa zabawka, zwykle dzia&amp;#x142;a - problemem nie jest stabilno&amp;#x15B;&amp;#x107;, bo ta jest wy&amp;#x15B;mienita.\n
  • #80: \n
  • #81: skrypty lua\n
  • #82: funkcjonalno&amp;#x15B;&amp;#x107; eksperymentalna\n
  • #83: j&amp;#x119;zyk skryptowy pierwotnie zaprojektowany dla rozszerzenia funkcjonalno&amp;#x15B;ci r&amp;#xF3;&amp;#x17C;nych aplikacji, jednak cz&amp;#x119;sto u&amp;#x17C;ywany jako samodzielny j&amp;#x119;zyk.\n
  • #84: \n
  • #85: \n
  • #86: \n
  • #87: \n
  • #88: \n