SlideShare a Scribd company logo
Redis ๊ธฐ๋Šฅ์˜ ๋ณ€ํ™”
- 2.8 ๋ถ€ํ„ฐ ์ตœ๊ทผ๊นŒ์ง€
๊ธ€๋กœ๋ฒŒ ์˜คํ”ˆ ํ”„๋ก ํ‹ฐ์–ด 4๊ธฐ ํŒŒํŠธ, ๊ฐ•๋Œ€๋ช…
๋ฐœํ‘œ์ž ์†Œ๊ฐœ
โ€ข ๊ฐ•๋Œ€๋ช…
โ€ข Redis Contributor
โ€ข RedisConf 2016 Speaker
์˜ค๋Š˜ ํ•  ์ด์•ผ๊ธฐ๋“ค
โ€ข Redis 3.x ๋ถ€ํ„ฐ ์ตœ๊ทผ๊นŒ์ง€(2.8๋„ ์กฐ๊ธˆ)
โ€ข ๊ฐ€๋ณ๊ฒŒ ์‚ดํŽด๋ณด๊ณ  ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฒ„์ „ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ
2.8 HyperLogLog
3.0 Redis Cluster
3.2 GeoHash
4.0 Redis Module
HyperLogLog #1
โ€ข From 2.8
โ€ข ์›๋ฆฌ๋Š” ๋…ผ๋ฌธ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋ฐ”๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.
โ€ข ํ™”์žฅํ’ˆ ๊ด‘๊ณ ์˜ ํƒ€์ผ“ ๋‘ ๊ทธ๋ฃน
โ€ข A: 20๋Œ€ ํ›„๋ฐ˜ ์—ฌ์„ฑ(50๋งŒ๋ช…)
โ€ข B: ์„œ์šธ์˜ ์—ฌ์„ฑ(100๋งŒ๋ช…)
โ€ข A+B์˜ Unique ํ•œ ๊ด‘๊ณ  ํƒ€๊ฒŸ์€ ๋ช‡ ๋ช…์ผ๊นŒ?
โ€ข 50๋งŒ๋ช… + 100๋งŒ๋ช… = 150๋งŒ๋ช…?
โ€ข ์œ ๋‹ˆํฌํ•œ ์œ ์ €๋ฅผ ๋‹ค์‹œ ๊ตฌํ•ด์•ผ ํ• ๊นŒ์š”?
HyperLogLog #2
โ€ข ์œ ๋‹ˆํฌ ์œ ์ €๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•ด์•ผ ํ•˜๋‚˜์š”?
โ€ข A๊ทธ๋ฃน์„ ๋กœ๋”ฉํ•ด์„œ, B๊ทธ๋ฃน์— ์กด์žฌํ•˜๋Š”์ง€ ์ผ์ผ์ด ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข ์œ ์ € ์ˆ˜๊ฐ€ ํด ์ˆ˜๋ก ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
โ€ข ๊ทธ๋ ‡๋‹ค๋ฉด HyperLogLog๋Š”โ€ฆ
โ€ข ํ™•๋ฅ ์  ์ž๋ฃŒ๊ตฌ์กฐ
โ€ข ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๋Œ€์‹ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ๋จน๊ณ , ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.
โ€ข ์ฆ‰ ์œ ๋‹ˆํฌํ•œ ์›์†Œ์˜ ์ •ํ™•ํ•œ ๊ฐ’์ด ์•„๋‹Œ ๊ทผ์‚ฌ์น˜ ๊ฐ’์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
โ€ข ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ, 15%์—์„œ 20% ๊นŒ์ง€์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข ์ด๋Ÿฌ๋ฉด ์จ์•ผ๋˜? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“œ์‹ค ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๋“ค์–ด๊ฐ€๋Š” ๋น„์šฉ์ด ์ •๋ง ์ž‘์•„์„œโ€ฆ
HyperLogLog #3
โ€ข PFADD, PFCOUNT, PFMERGE ์˜ ์„ธ ๊ฐ€์ง€ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ๋‚ด์šฉ
PFADD HyperLogLog ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
PFCOUNT HyperLogLog ๋‚ด์˜ Uniqueํ•œ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค.
PFMERGE HyperLogLog ๊ทธ๋ฃน์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ค€๋‹ค.
HyperLogLog #4
โ€ข PFADD pf1 a b c d e f g
โ€ข PFCOUNT pf1
โ€ข 7
โ€ข PFADD pf1 a b c z
โ€ข PFCOUNT pf1
โ€ข 8
โ€ข PFADD pf2 e1 e2 e3 e4 a b
โ€ข PFCOUNT pf2
โ€ข 6
โ€ข PFMERGE pf3 pf1 pf2
โ€ข PFCOUNT pf3
โ€ข 12
Redis Cluster #1
โ€ข From 3.0
โ€ข ๋ชจ๋‘๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋˜ Redis Cluster
โ€ข ๊ทธ๋Ÿฐ๋ฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์ข‹์•„ํ•˜๋Š” ๊ณณ๋„ ์žˆ๊ณ ,
โ€ข ์•„๋‹Œ๊ณณ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.
Redis Cluster #2
โ€ข ๋™์ž‘์›๋ฆฌ
โ€ข ๋ฏธ๋ฆฌ 16384 ๊ฐœ์˜ Hash Slot์„ ์ •์˜ํ•ด๋‘๊ณ  ์ฃผ์–ด์ง„ ๋…ธ๋“œ๋“ค์—๊ฒŒ ํ• ๋‹นํ•œ๋‹ค.
โ€ข Node #1 : 0 ~ 5461
โ€ข Node #2: 5462 ~ 10922
โ€ข Node #3: 10923 ~ 16384
โ€ข crc16(key) % 16384 = 0 ๋ฉด, 0๊ฐ€ ์†ํ•˜๋Š” ๋…ธ๋“œ์— ์ €์žฅ๋จ.
Node #1
Master
Node #2
Master
Node #3
Master
Node #1
Slave
Node #2
Slave
Node #3
Slave
Client
crc16(โ€œkosslabโ€) % 16384 = 0
์ €์žฅ
Redis Cluster #3
โ€ข Slave ๋…ธ๋“œ๋Š” ์ž์‹ ์˜ Master์˜ ๋‚ด์šฉ๋งŒ ๋“ค๊ณ  ์žˆ์Œ.
โ€ข ์ฆ‰ Node #2์˜ Master, Slave ๊ฐ€ ๋ชจ๋‘ ์žฅ์• ๊ฐ€ ๋‚ฌ์„ ๋•Œ๋Š” ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ ์œ ์‹ค.
โ€ข Slot์˜ ์žฌ๋ถ„๋ฐฐ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ด๋™์ด ๊ฐ€๋Šฅํ•จ.
โ€ข Migration ์ค‘์ธ Slot์€ ์ž ์‹œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€.
Redis Cluster #4
โ€ข Redirection
Node #1
Master
Node #2
Master
Node #3
Master
Client
set kosslab 123
<- MOVED 0 127.0.0.1:7002
Redis Cluster #5
โ€ข No Redirection
Node #1
Master
Node #2
Master
Node #3
Master
Client
set kosslab 123
์ €์žฅ
Redis Cluster #6 โ€“ no cli cluster mode
โ€ข cli> set kosslab 123
โ€ข -> (error) MOVED 0 127.0.0.1:7002
โ€ข cli> set openfrontier 123
โ€ข -> (error) MOVED 13000 located at 127.0.0.1:7000
โ€ข cli> get kosslab
โ€ข -> (error) MOVED 0 127.0.0.1:7002
โ€ข cli> get openfrontier
โ€ข -> (error) MOVED 0 127.0.0.1:7000
Redis Cluster #6 โ€“ cli cluster mode
โ€ข cli:7001> set kosslab 123
โ€ข -> Redirected to slot [0] located at 127.0.0.1:7002
โ€ข OK
โ€ข cli:7002> set openfrontier 123
โ€ข -> Redirected to slot [0] located at 127.0.0.1:7000
โ€ข OK
โ€ข cli:7000> get kosslab
โ€ข Redirected to slot [0] located at 127.0.0.1:7002
โ€ข โ€œ123โ€
โ€ข cli:7002> get openfrontier
โ€ข Redirected to slot [0] located at 127.0.0.1:7000
โ€ข โ€œ123โ€
GeoHash #1
โ€ข From 3.2
โ€ข Redis ๋„ GeoHash๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
โ€ข ์šฐ๋ฒ„ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด?
โ€ข ๊ฐ ์šฐ๋ฒ„๋“œ๋ผ์ด๋ฒ„์˜ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์กด์žฌ(์ง€์†์  ์—…๋ฐ์ดํŠธ)
โ€ข ์šฐ๋ฒ„์‚ฌ์šฉ์ž์˜ ์œ„์น˜๊ฐ€ ์กด์žฌ
โ€ข ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์—์„œ ๋ฐ˜๊ฒฝ K ํ‚ฌ๋กœ๋ฏธํ„ฐ์— ์žˆ๋Š” ์šฐ๋ฒ„๋“œ๋ผ์ด๋ฒ„์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค๋ฉด?
GeoHash #2
๋ช…๋ น์–ด ๋‚ด์šฉ
GEOADD GEO Location ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
GEOHASH ํ•ด๋‹น ์œ„์น˜ ์ •๋ณด์— ๋Œ€ํ•œ ํ•ด์‹๋ฐง์„ ์ถœ๋ ฅํ•œ๋‹ค.
GEOPOS ํ•ด๋‹น ์œ ์ €์˜ ์ง€์—ญ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
GEODIST ๋‘ ์ง€์—ญ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
GEORADIUS ํŠน์ • ์ง€์—ญ ๋ฐ˜๊ฒฝ์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค.
GEORADIUSBYMEMBER ํŠน์ • ๊ฐ์ฒด ๋ฐ˜๊ฒฝ์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค.
GeoHash #3
โ€ข cli> GEOADD coex 127.0590198 37.5119854 bugerking 127.0588857
37.5127556 coex_sb 127.0601088 37.5153427 bong_sb
โ€ข cli> GEORADIUSBYMEMBER coex bugerking 1 km
โ€ข 1) "bugerking"
โ€ข 2) "coex_sb"
โ€ข 3) "bong_sb"
โ€ข cli> GEORADIUSBYMEMBER coex bugerking 100 m
โ€ข 1) "bugerking"
โ€ข 2) "coex_sb"
โ€ข cli> GEORADIUSBYMEMBER coex bugerking 10 m
โ€ข 1) "bugerking"
Redis Module #1
โ€ข From 4.0
โ€ข Redis๋Š” lua script๋ฅผ ์ง€์›ํ•จ.
โ€ข lua script ์‚ฌ์šฉ์˜ ๋‹จ์ 
โ€ข ์„ฑ๋Šฅ์ด ๋А๋ฆฌ๋‹ค.(๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋Œ์•˜์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.)
โ€ข ๊ทธ๋Ÿฌ๋ฉด์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ปค๋ฒ„ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.
โ€ข Redis PR์˜ ๋Œ€๋ถ€๋ถ„์€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
โ€ข ๊ธฐ์กด์— ์ž˜ ๋ฐ›์•„๋“ค์—ฌ์ง€์ง€ ์•Š์Œ.(๊ฐ€๋ฒผ์šด(?) ์„œ๋ฒ„๋ฅผ ์ง€ํ–ฅ.)
Redis Module #2
โ€ข Redis Module
โ€ข Dynamic Loading Library(.so)
โ€ข ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ Redis Command๋ฅผ ๋™์ ์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข ๊ธฐ์กด ๋ช…๋ น์„ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ
โ€ข ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ๋“ฑ๋กํ•จ์œผ๋กœ์จ, ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
Redis Module #3
โ€ข RedisLabs Module Repository
โ€ข https://github.com/RedisLabsModules
โ€ข bloomfilter, Full-Text Search ๊ฐ™์€ ๋ชจ๋“ˆ์ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Œ
Redis Module #4
โ€ข ๋ชจ๋“ˆ ์ž‘์„ฑ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ
โ€ข Redis๋Š” Single Threaded ์ด๋ฏ€๋กœ, ๋ชจ๋“ˆ์—์„œ ๊ธด ์‹œ๊ฐ„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ Redis ์ž์ฒด๊ฐ€ ๋ธ”
๋Ÿญ๋˜์–ด ๋ฒ„๋ฆผ.
โ€ข ๋ชจ๋“ˆ์—์„œ ์žฅ์• ๊ฐ€ ๋‚  ๊ฒฝ์šฐ, Redis ์„œ๋ฒ„ ์ž์ฒด๊ฐ€ ์ข…๋ฃŒ๋จ.
โ€ข Master/Slave ํ˜•ํƒœ์ผ ๊ฒฝ์šฐ๋Š”, ์žฅ์• ๋ฅผ ๋Œ€๋น„ํ•ด์„œ Slave ๋“ค๋„ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋‹ค ๋กœ๋“œํ•ด์•ผ
ํ•จ.
โ€ข Redis ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์ต์ˆ™ํ•  ๊ฒฝ์šฐ๋Š” ๋ชจ๋“ˆ ๊ฐœ๋ฐœ์ด ์–ด๋ ต์ง€๋Š” ์•Š์Œ.
Thanks you!

More Related Content

What's hot (20)

PPTX
์ด๊ฒƒ์ด ๋ ˆ๋””์Šค๋‹ค.
Kris Jeong
ย 
PDF
[234]แ„†แ…ฅแ†ฏแ„แ…ตแ„แ…ฆแ„‚แ…ฅแ†ซแ„แ…ณ แ„’แ…กแ„ƒแ…ฎแ†ธ แ„แ…ณแ†ฏแ„…แ…ฅแ„‰แ…ณแ„แ…ฅ แ„‹แ…ฎแ†ซแ„‹แ…งแ†ผ แ„€แ…งแ†ผแ„’แ…ฅแ†ทแ„€แ…ต
NAVER D2
ย 
PDF
Redis
DaeMyung Kang
ย 
PDF
[2B5]nBase-ARC Redis Cluster
NAVER D2
ย 
PDF
Redis edu 1
DaeMyung Kang
ย 
PDF
How to use redis well
DaeMyung Kang
ย 
PDF
Redis on AWS
DaeMyung Kang
ย 
PPTX
Redis
knight1128
ย 
PPTX
Node Js์™€ Redis๋ฅผ ์‚ฌ์šฉํ•œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ
jinho park
ย 
PDF
Cache governance
DaeMyung Kang
ย 
PPTX
๋ถ„์‚ฐ์ €์žฅ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ 12๊ฐ€์ง€ ์ด์•ผ๊ธฐ
NAVER D2
ย 
PDF
Mongodb ํŠน์ง• ๋ถ„์„
Daeyong Shin
ย 
PDF
Massive service basic
DaeMyung Kang
ย 
PDF
[์Šค๋งˆํŠธ์Šคํ„ฐ๋””]๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์—์„œ์˜ ๋กœ๊ทธ ์ˆ˜์ง‘๊ณผ ๋ถ„์„
smartstudy_official
ย 
PDF
[OpenInfra Days Korea 2018] Day 2 - CEPH ์šด์˜์ž๋ฅผ ์œ„ํ•œ Object Storage Performance T...
OpenStack Korea Community
ย 
PDF
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]RHEL7/CentOS7 Pacemaker๊ธฐ๋ฐ˜-HA์‹œ์Šคํ…œ๊ตฌ์„ฑ-v1.0
Ji-Woong Choi
ย 
PDF
Redis edu 4
DaeMyung Kang
ย 
PDF
[252] แ„Œแ…ณแ†ผแ„‡แ…ฎแ†ซ แ„Žแ…ฅแ„…แ…ต แ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท cana แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
NAVER D2
ย 
PDF
[142]แ„‘แ…งแ†ซแ„€แ…ชแ†ผแ„‹แ…ณแ†ฏ แ„’แ…ชแ†ฏแ„‹แ…ญแ†ผแ„’แ…กแ†ซ6 dof แ„Œแ…ฅแ†ซแ„’แ…งแ†ซแ„€แ…ต
NAVER D2
ย 
PPTX
Cassandra education material
Youngki Kim
ย 
์ด๊ฒƒ์ด ๋ ˆ๋””์Šค๋‹ค.
Kris Jeong
ย 
[234]แ„†แ…ฅแ†ฏแ„แ…ตแ„แ…ฆแ„‚แ…ฅแ†ซแ„แ…ณ แ„’แ…กแ„ƒแ…ฎแ†ธ แ„แ…ณแ†ฏแ„…แ…ฅแ„‰แ…ณแ„แ…ฅ แ„‹แ…ฎแ†ซแ„‹แ…งแ†ผ แ„€แ…งแ†ผแ„’แ…ฅแ†ทแ„€แ…ต
NAVER D2
ย 
Redis
DaeMyung Kang
ย 
[2B5]nBase-ARC Redis Cluster
NAVER D2
ย 
Redis edu 1
DaeMyung Kang
ย 
How to use redis well
DaeMyung Kang
ย 
Redis on AWS
DaeMyung Kang
ย 
Redis
knight1128
ย 
Node Js์™€ Redis๋ฅผ ์‚ฌ์šฉํ•œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ
jinho park
ย 
Cache governance
DaeMyung Kang
ย 
๋ถ„์‚ฐ์ €์žฅ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ 12๊ฐ€์ง€ ์ด์•ผ๊ธฐ
NAVER D2
ย 
Mongodb ํŠน์ง• ๋ถ„์„
Daeyong Shin
ย 
Massive service basic
DaeMyung Kang
ย 
[์Šค๋งˆํŠธ์Šคํ„ฐ๋””]๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค์—์„œ์˜ ๋กœ๊ทธ ์ˆ˜์ง‘๊ณผ ๋ถ„์„
smartstudy_official
ย 
[OpenInfra Days Korea 2018] Day 2 - CEPH ์šด์˜์ž๋ฅผ ์œ„ํ•œ Object Storage Performance T...
OpenStack Korea Community
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]RHEL7/CentOS7 Pacemaker๊ธฐ๋ฐ˜-HA์‹œ์Šคํ…œ๊ตฌ์„ฑ-v1.0
Ji-Woong Choi
ย 
Redis edu 4
DaeMyung Kang
ย 
[252] แ„Œแ…ณแ†ผแ„‡แ…ฎแ†ซ แ„Žแ…ฅแ„…แ…ต แ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท cana แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
NAVER D2
ย 
[142]แ„‘แ…งแ†ซแ„€แ…ชแ†ผแ„‹แ…ณแ†ฏ แ„’แ…ชแ†ฏแ„‹แ…ญแ†ผแ„’แ…กแ†ซ6 dof แ„Œแ…ฅแ†ซแ„’แ…งแ†ซแ„€แ…ต
NAVER D2
ย 
Cassandra education material
Youngki Kim
ย 

Viewers also liked (6)

PDF
TypeScript์™€ Flow: โ€จ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์— ์ •์  ํƒ€์ดํ•‘ ๋„์ž…ํ•˜๊ธฐ
Heejong Ahn
ย 
PPTX
How to study
DaeMyung Kang
ย 
PDF
์ธํ”„๋Ÿฐ - ์Šคํƒ€ํŠธ์—… ์ธํ”„๋žฉ ์‹œ์ž‘ ์‚ฌ๋ก€
Hyung Lee
ย 
PDF
Soma search
DaeMyung Kang
ย 
PPTX
์†Œํ”„ํŠธ์›จ์–ด ๊ณต๋ถ€ํ•˜๋Š”๋ฒ•
Minsuk Lee
ย 
PDF
[แ„‹แ…ฉแ„‘แ…ณแ†ซแ„‰แ…ฉแ„‰แ…ณแ„แ…ฅแ†ซแ„‰แ…ฅแ†ฏแ„แ…ตแ†ผ]แ„แ…ณแ†ฏแ„…แ…กแ„‹แ…ฎแ„ƒแ…ณแ„€แ…ตแ„‡แ…กแ†ซU2Lแ„†แ…กแ„‹แ…ตแ„€แ…ณแ„…แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ ์ „๋žต ๋ฐ ๊ณ ๋ ค์‚ฌํ•ญ
Ji-Woong Choi
ย 
TypeScript์™€ Flow: โ€จ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์— ์ •์  ํƒ€์ดํ•‘ ๋„์ž…ํ•˜๊ธฐ
Heejong Ahn
ย 
How to study
DaeMyung Kang
ย 
์ธํ”„๋Ÿฐ - ์Šคํƒ€ํŠธ์—… ์ธํ”„๋žฉ ์‹œ์ž‘ ์‚ฌ๋ก€
Hyung Lee
ย 
Soma search
DaeMyung Kang
ย 
์†Œํ”„ํŠธ์›จ์–ด ๊ณต๋ถ€ํ•˜๋Š”๋ฒ•
Minsuk Lee
ย 
[แ„‹แ…ฉแ„‘แ…ณแ†ซแ„‰แ…ฉแ„‰แ…ณแ„แ…ฅแ†ซแ„‰แ…ฅแ†ฏแ„แ…ตแ†ผ]แ„แ…ณแ†ฏแ„…แ…กแ„‹แ…ฎแ„ƒแ…ณแ„€แ…ตแ„‡แ…กแ†ซU2Lแ„†แ…กแ„‹แ…ตแ„€แ…ณแ„…แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ ์ „๋žต ๋ฐ ๊ณ ๋ ค์‚ฌํ•ญ
Ji-Woong Choi
ย 
Ad

Similar to Redis From 2.8 to 4.x (20)

PDF
android stuff1
Jin Jiu
ย 
PDF
[2010 CodeEngn Conference 04] hahah - Defcon 18 CTF ๋ฌธ์ œํ’€์ด
Code Engn
ย 
PDF
[แ„‹แ…ฃแ„‰แ…ขแ†ผแ„‹แ…ด ๋•…: ๋“€๋ž‘๊ณ ] แ„Œแ…ตแ„’แ…งแ†ผ แ„€แ…ชแ†ซแ„…แ…ต แ„‹แ…ชแ†ซแ„Œแ…ฅแ†ซ แ„Œแ…กแ„ƒแ…ฉแ†ผแ„’แ…ช - ์ƒ์ƒํ•œ AWS์™€ Docker ์ฒดํ—˜๊ธฐ
Sumin Byeon
ย 
PDF
Mongo db 2.x to 3.x
InBum Kim
ย 
PDF
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
YoungSu Son
ย 
PDF
Mongo db ์‹œ์ž‘ํ•˜๊ธฐ
OnGameServer
ย 
PDF
XECon+PHPFest2014 ๋ฐœํ‘œ์ž๋ฃŒ - ElasticSearch๋ฅผ ์ด์šฉํ•œ ํ†ตํ•ฉ๊ฒ€์ƒ‰ ๊ตฌ์ถ•๋ฐฉ๋ฒ• - ๊น€ํ›ˆ๋ฏผ
XpressEngine
ย 
PPTX
kgc2014 LINE Rangers/Stage ํฌ๋ž˜์‹œ ๋ฐ ์–ด๋ทฐ์ง• ๋Œ€์‘
sewoon Nam
ย 
PDF
[NDC2017 : ๋ฐ•์ค€์ฒ ] Python แ„€แ…ฆแ„‹แ…ตแ†ท แ„‰แ…ฅแ„‡แ…ฅ แ„‹แ…กแ†ซแ„‚แ…งแ†ผแ„’แ…กแ„‰แ…ตแ†ธแ„‚แ…ตแ„แ…ก - แ„†แ…ฉแ†ซแ„‰แ…ณแ„แ…ฅ แ„‰แ…ฒแ„‘แ…ฅแ„…แ…ตแ„€แ…ณ แ„€แ…ฆแ„‹แ…ตแ†ท แ„‰แ…ฅแ„‡แ…ฅ
์ค€์ฒ  ๋ฐ•
ย 
PDF
๋ฐ๋ธŒ์˜ต์Šค(DevOps)์˜ ํ˜„์žฌ์™€ ๋ฏธ๋ž˜ - ChatOps & VoiceOps (์œค์„์ฐฌ)
Amazon Web Services Korea
ย 
PPTX
Remote-debugging-based-on-notrace32-20130619-1900
Samsung Electronics
ย 
PDF
[OpenTRS-001] Hotel California
Theori
ย 
PDF
Intro KaKao ADT (Almighty Data Transmitter)
I Goo Lee
ย 
PDF
5_spatial analysis(2)
Joonho Lee
ย 
PDF
[225]yarn แ„€แ…ตแ„‡แ…กแ†ซแ„‹แ…ด deep learning application cluster แ„€แ…ฎแ„Žแ…ฎแ†จ แ„€แ…ตแ†ทแ„Œแ…ฆแ„†แ…ตแ†ซ
NAVER D2
ย 
PDF
Yobi-hands-on-lab-at-d2fest
insanehong Kim
ย 
PDF
[D2 fest 2014]yobi hands on lab
NAVER D2
ย 
PDF
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ- 19์žฅ ๋ฐฐํฌ์‹œ์Šคํ…œ
๋ฐ• ๋ฏผ๊ทœ
ย 
PDF
[215]แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅแ„แ…ฉแ†ซแ„แ…ฆแ†ซแ„Žแ…ณแ„แ…ฉแ†ผแ„€แ…จแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„‰แ…ฉแ„€แ…ข แ„€แ…ตแ†ทแ„€แ…ตแ„‹แ…งแ†ผ
NAVER D2
ย 
PDF
[C++ Korea 3rd Seminar] ์ƒˆ C++์€ ์ƒˆ Visual Studio์—, ์ขŒ์ถฉ์šฐ๋Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ด์•ผ๊ธฐ
Chris Ohk
ย 
android stuff1
Jin Jiu
ย 
[2010 CodeEngn Conference 04] hahah - Defcon 18 CTF ๋ฌธ์ œํ’€์ด
Code Engn
ย 
[แ„‹แ…ฃแ„‰แ…ขแ†ผแ„‹แ…ด ๋•…: ๋“€๋ž‘๊ณ ] แ„Œแ…ตแ„’แ…งแ†ผ แ„€แ…ชแ†ซแ„…แ…ต แ„‹แ…ชแ†ซแ„Œแ…ฅแ†ซ แ„Œแ…กแ„ƒแ…ฉแ†ผแ„’แ…ช - ์ƒ์ƒํ•œ AWS์™€ Docker ์ฒดํ—˜๊ธฐ
Sumin Byeon
ย 
Mongo db 2.x to 3.x
InBum Kim
ย 
์ดˆ๋ณด ๊ฐœ๋ฐœ์ž/ํ•™์ƒ๋“ค์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํŠธ๋žœ๋“œ
YoungSu Son
ย 
Mongo db ์‹œ์ž‘ํ•˜๊ธฐ
OnGameServer
ย 
XECon+PHPFest2014 ๋ฐœํ‘œ์ž๋ฃŒ - ElasticSearch๋ฅผ ์ด์šฉํ•œ ํ†ตํ•ฉ๊ฒ€์ƒ‰ ๊ตฌ์ถ•๋ฐฉ๋ฒ• - ๊น€ํ›ˆ๋ฏผ
XpressEngine
ย 
kgc2014 LINE Rangers/Stage ํฌ๋ž˜์‹œ ๋ฐ ์–ด๋ทฐ์ง• ๋Œ€์‘
sewoon Nam
ย 
[NDC2017 : ๋ฐ•์ค€์ฒ ] Python แ„€แ…ฆแ„‹แ…ตแ†ท แ„‰แ…ฅแ„‡แ…ฅ แ„‹แ…กแ†ซแ„‚แ…งแ†ผแ„’แ…กแ„‰แ…ตแ†ธแ„‚แ…ตแ„แ…ก - แ„†แ…ฉแ†ซแ„‰แ…ณแ„แ…ฅ แ„‰แ…ฒแ„‘แ…ฅแ„…แ…ตแ„€แ…ณ แ„€แ…ฆแ„‹แ…ตแ†ท แ„‰แ…ฅแ„‡แ…ฅ
์ค€์ฒ  ๋ฐ•
ย 
๋ฐ๋ธŒ์˜ต์Šค(DevOps)์˜ ํ˜„์žฌ์™€ ๋ฏธ๋ž˜ - ChatOps & VoiceOps (์œค์„์ฐฌ)
Amazon Web Services Korea
ย 
Remote-debugging-based-on-notrace32-20130619-1900
Samsung Electronics
ย 
[OpenTRS-001] Hotel California
Theori
ย 
Intro KaKao ADT (Almighty Data Transmitter)
I Goo Lee
ย 
5_spatial analysis(2)
Joonho Lee
ย 
[225]yarn แ„€แ…ตแ„‡แ…กแ†ซแ„‹แ…ด deep learning application cluster แ„€แ…ฎแ„Žแ…ฎแ†จ แ„€แ…ตแ†ทแ„Œแ…ฆแ„†แ…ตแ†ซ
NAVER D2
ย 
Yobi-hands-on-lab-at-d2fest
insanehong Kim
ย 
[D2 fest 2014]yobi hands on lab
NAVER D2
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ- 19์žฅ ๋ฐฐํฌ์‹œ์Šคํ…œ
๋ฐ• ๋ฏผ๊ทœ
ย 
[215]แ„‚แ…ฆแ„‹แ…ตแ„‡แ…ฅแ„แ…ฉแ†ซแ„แ…ฆแ†ซแ„Žแ…ณแ„แ…ฉแ†ผแ„€แ…จแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„‰แ…ฉแ„€แ…ข แ„€แ…ตแ†ทแ„€แ…ตแ„‹แ…งแ†ผ
NAVER D2
ย 
[C++ Korea 3rd Seminar] ์ƒˆ C++์€ ์ƒˆ Visual Studio์—, ์ขŒ์ถฉ์šฐ๋Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ด์•ผ๊ธฐ
Chris Ohk
ย 
Ad

More from DaeMyung Kang (20)

PPTX
Count min sketch
DaeMyung Kang
ย 
PDF
Ansible
DaeMyung Kang
ย 
PDF
Why GUID is needed
DaeMyung Kang
ย 
PPTX
The easiest consistent hashing
DaeMyung Kang
ย 
PDF
How to name a cache key
DaeMyung Kang
ย 
PDF
Integration between Filebeat and logstash
DaeMyung Kang
ย 
PDF
How to build massive service for advance
DaeMyung Kang
ย 
PDF
Data Engineering 101
DaeMyung Kang
ย 
PDF
How To Become Better Engineer
DaeMyung Kang
ย 
PPTX
Kafka timestamp offset_final
DaeMyung Kang
ย 
PPTX
Kafka timestamp offset
DaeMyung Kang
ย 
PPTX
Data pipeline and data lake
DaeMyung Kang
ย 
PDF
Redis acl
DaeMyung Kang
ย 
PDF
Coffee store
DaeMyung Kang
ย 
PDF
Scalable webservice
DaeMyung Kang
ย 
PDF
Number system
DaeMyung Kang
ย 
PDF
webservice scaling for newbie
DaeMyung Kang
ย 
PDF
Internet Scale Service Arichitecture
DaeMyung Kang
ย 
PDF
Bloomfilter
DaeMyung Kang
ย 
PDF
Using spark data frame for sql
DaeMyung Kang
ย 
Count min sketch
DaeMyung Kang
ย 
Ansible
DaeMyung Kang
ย 
Why GUID is needed
DaeMyung Kang
ย 
The easiest consistent hashing
DaeMyung Kang
ย 
How to name a cache key
DaeMyung Kang
ย 
Integration between Filebeat and logstash
DaeMyung Kang
ย 
How to build massive service for advance
DaeMyung Kang
ย 
Data Engineering 101
DaeMyung Kang
ย 
How To Become Better Engineer
DaeMyung Kang
ย 
Kafka timestamp offset_final
DaeMyung Kang
ย 
Kafka timestamp offset
DaeMyung Kang
ย 
Data pipeline and data lake
DaeMyung Kang
ย 
Redis acl
DaeMyung Kang
ย 
Coffee store
DaeMyung Kang
ย 
Scalable webservice
DaeMyung Kang
ย 
Number system
DaeMyung Kang
ย 
webservice scaling for newbie
DaeMyung Kang
ย 
Internet Scale Service Arichitecture
DaeMyung Kang
ย 
Bloomfilter
DaeMyung Kang
ย 
Using spark data frame for sql
DaeMyung Kang
ย 

Redis From 2.8 to 4.x

  • 1. Redis ๊ธฐ๋Šฅ์˜ ๋ณ€ํ™” - 2.8 ๋ถ€ํ„ฐ ์ตœ๊ทผ๊นŒ์ง€ ๊ธ€๋กœ๋ฒŒ ์˜คํ”ˆ ํ”„๋ก ํ‹ฐ์–ด 4๊ธฐ ํŒŒํŠธ, ๊ฐ•๋Œ€๋ช…
  • 3. ์˜ค๋Š˜ ํ•  ์ด์•ผ๊ธฐ๋“ค โ€ข Redis 3.x ๋ถ€ํ„ฐ ์ตœ๊ทผ๊นŒ์ง€(2.8๋„ ์กฐ๊ธˆ) โ€ข ๊ฐ€๋ณ๊ฒŒ ์‚ดํŽด๋ณด๊ณ  ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ 2.8 HyperLogLog 3.0 Redis Cluster 3.2 GeoHash 4.0 Redis Module
  • 4. HyperLogLog #1 โ€ข From 2.8 โ€ข ์›๋ฆฌ๋Š” ๋…ผ๋ฌธ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋ฐ”๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค. โ€ข ํ™”์žฅํ’ˆ ๊ด‘๊ณ ์˜ ํƒ€์ผ“ ๋‘ ๊ทธ๋ฃน โ€ข A: 20๋Œ€ ํ›„๋ฐ˜ ์—ฌ์„ฑ(50๋งŒ๋ช…) โ€ข B: ์„œ์šธ์˜ ์—ฌ์„ฑ(100๋งŒ๋ช…) โ€ข A+B์˜ Unique ํ•œ ๊ด‘๊ณ  ํƒ€๊ฒŸ์€ ๋ช‡ ๋ช…์ผ๊นŒ? โ€ข 50๋งŒ๋ช… + 100๋งŒ๋ช… = 150๋งŒ๋ช…? โ€ข ์œ ๋‹ˆํฌํ•œ ์œ ์ €๋ฅผ ๋‹ค์‹œ ๊ตฌํ•ด์•ผ ํ• ๊นŒ์š”?
  • 5. HyperLogLog #2 โ€ข ์œ ๋‹ˆํฌ ์œ ์ €๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•ด์•ผ ํ•˜๋‚˜์š”? โ€ข A๊ทธ๋ฃน์„ ๋กœ๋”ฉํ•ด์„œ, B๊ทธ๋ฃน์— ์กด์žฌํ•˜๋Š”์ง€ ์ผ์ผ์ด ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. โ€ข ์œ ์ € ์ˆ˜๊ฐ€ ํด ์ˆ˜๋ก ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. โ€ข ๊ทธ๋ ‡๋‹ค๋ฉด HyperLogLog๋Š”โ€ฆ โ€ข ํ™•๋ฅ ์  ์ž๋ฃŒ๊ตฌ์กฐ โ€ข ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๋Œ€์‹ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒŒ ๋จน๊ณ , ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค. โ€ข ์ฆ‰ ์œ ๋‹ˆํฌํ•œ ์›์†Œ์˜ ์ •ํ™•ํ•œ ๊ฐ’์ด ์•„๋‹Œ ๊ทผ์‚ฌ์น˜ ๊ฐ’์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. โ€ข ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ, 15%์—์„œ 20% ๊นŒ์ง€์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€ข ์ด๋Ÿฌ๋ฉด ์จ์•ผ๋˜? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“œ์‹ค ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๋“ค์–ด๊ฐ€๋Š” ๋น„์šฉ์ด ์ •๋ง ์ž‘์•„์„œโ€ฆ
  • 6. HyperLogLog #3 โ€ข PFADD, PFCOUNT, PFMERGE ์˜ ์„ธ ๊ฐ€์ง€ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ๋‚ด์šฉ PFADD HyperLogLog ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. PFCOUNT HyperLogLog ๋‚ด์˜ Uniqueํ•œ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค. PFMERGE HyperLogLog ๊ทธ๋ฃน์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ค€๋‹ค.
  • 7. HyperLogLog #4 โ€ข PFADD pf1 a b c d e f g โ€ข PFCOUNT pf1 โ€ข 7 โ€ข PFADD pf1 a b c z โ€ข PFCOUNT pf1 โ€ข 8 โ€ข PFADD pf2 e1 e2 e3 e4 a b โ€ข PFCOUNT pf2 โ€ข 6 โ€ข PFMERGE pf3 pf1 pf2 โ€ข PFCOUNT pf3 โ€ข 12
  • 8. Redis Cluster #1 โ€ข From 3.0 โ€ข ๋ชจ๋‘๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋˜ Redis Cluster โ€ข ๊ทธ๋Ÿฐ๋ฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์ข‹์•„ํ•˜๋Š” ๊ณณ๋„ ์žˆ๊ณ , โ€ข ์•„๋‹Œ๊ณณ๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.
  • 9. Redis Cluster #2 โ€ข ๋™์ž‘์›๋ฆฌ โ€ข ๋ฏธ๋ฆฌ 16384 ๊ฐœ์˜ Hash Slot์„ ์ •์˜ํ•ด๋‘๊ณ  ์ฃผ์–ด์ง„ ๋…ธ๋“œ๋“ค์—๊ฒŒ ํ• ๋‹นํ•œ๋‹ค. โ€ข Node #1 : 0 ~ 5461 โ€ข Node #2: 5462 ~ 10922 โ€ข Node #3: 10923 ~ 16384 โ€ข crc16(key) % 16384 = 0 ๋ฉด, 0๊ฐ€ ์†ํ•˜๋Š” ๋…ธ๋“œ์— ์ €์žฅ๋จ. Node #1 Master Node #2 Master Node #3 Master Node #1 Slave Node #2 Slave Node #3 Slave Client crc16(โ€œkosslabโ€) % 16384 = 0 ์ €์žฅ
  • 10. Redis Cluster #3 โ€ข Slave ๋…ธ๋“œ๋Š” ์ž์‹ ์˜ Master์˜ ๋‚ด์šฉ๋งŒ ๋“ค๊ณ  ์žˆ์Œ. โ€ข ์ฆ‰ Node #2์˜ Master, Slave ๊ฐ€ ๋ชจ๋‘ ์žฅ์• ๊ฐ€ ๋‚ฌ์„ ๋•Œ๋Š” ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ ์œ ์‹ค. โ€ข Slot์˜ ์žฌ๋ถ„๋ฐฐ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ด๋™์ด ๊ฐ€๋Šฅํ•จ. โ€ข Migration ์ค‘์ธ Slot์€ ์ž ์‹œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€.
  • 11. Redis Cluster #4 โ€ข Redirection Node #1 Master Node #2 Master Node #3 Master Client set kosslab 123 <- MOVED 0 127.0.0.1:7002
  • 12. Redis Cluster #5 โ€ข No Redirection Node #1 Master Node #2 Master Node #3 Master Client set kosslab 123 ์ €์žฅ
  • 13. Redis Cluster #6 โ€“ no cli cluster mode โ€ข cli> set kosslab 123 โ€ข -> (error) MOVED 0 127.0.0.1:7002 โ€ข cli> set openfrontier 123 โ€ข -> (error) MOVED 13000 located at 127.0.0.1:7000 โ€ข cli> get kosslab โ€ข -> (error) MOVED 0 127.0.0.1:7002 โ€ข cli> get openfrontier โ€ข -> (error) MOVED 0 127.0.0.1:7000
  • 14. Redis Cluster #6 โ€“ cli cluster mode โ€ข cli:7001> set kosslab 123 โ€ข -> Redirected to slot [0] located at 127.0.0.1:7002 โ€ข OK โ€ข cli:7002> set openfrontier 123 โ€ข -> Redirected to slot [0] located at 127.0.0.1:7000 โ€ข OK โ€ข cli:7000> get kosslab โ€ข Redirected to slot [0] located at 127.0.0.1:7002 โ€ข โ€œ123โ€ โ€ข cli:7002> get openfrontier โ€ข Redirected to slot [0] located at 127.0.0.1:7000 โ€ข โ€œ123โ€
  • 15. GeoHash #1 โ€ข From 3.2 โ€ข Redis ๋„ GeoHash๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. โ€ข ์šฐ๋ฒ„ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด? โ€ข ๊ฐ ์šฐ๋ฒ„๋“œ๋ผ์ด๋ฒ„์˜ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์กด์žฌ(์ง€์†์  ์—…๋ฐ์ดํŠธ) โ€ข ์šฐ๋ฒ„์‚ฌ์šฉ์ž์˜ ์œ„์น˜๊ฐ€ ์กด์žฌ โ€ข ํ˜„์žฌ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜์—์„œ ๋ฐ˜๊ฒฝ K ํ‚ฌ๋กœ๋ฏธํ„ฐ์— ์žˆ๋Š” ์šฐ๋ฒ„๋“œ๋ผ์ด๋ฒ„์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค๋ฉด?
  • 16. GeoHash #2 ๋ช…๋ น์–ด ๋‚ด์šฉ GEOADD GEO Location ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. GEOHASH ํ•ด๋‹น ์œ„์น˜ ์ •๋ณด์— ๋Œ€ํ•œ ํ•ด์‹๋ฐง์„ ์ถœ๋ ฅํ•œ๋‹ค. GEOPOS ํ•ด๋‹น ์œ ์ €์˜ ์ง€์—ญ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. GEODIST ๋‘ ์ง€์—ญ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. GEORADIUS ํŠน์ • ์ง€์—ญ ๋ฐ˜๊ฒฝ์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค. GEORADIUSBYMEMBER ํŠน์ • ๊ฐ์ฒด ๋ฐ˜๊ฒฝ์— ์กด์žฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•œ๋‹ค.
  • 17. GeoHash #3 โ€ข cli> GEOADD coex 127.0590198 37.5119854 bugerking 127.0588857 37.5127556 coex_sb 127.0601088 37.5153427 bong_sb โ€ข cli> GEORADIUSBYMEMBER coex bugerking 1 km โ€ข 1) "bugerking" โ€ข 2) "coex_sb" โ€ข 3) "bong_sb" โ€ข cli> GEORADIUSBYMEMBER coex bugerking 100 m โ€ข 1) "bugerking" โ€ข 2) "coex_sb" โ€ข cli> GEORADIUSBYMEMBER coex bugerking 10 m โ€ข 1) "bugerking"
  • 18. Redis Module #1 โ€ข From 4.0 โ€ข Redis๋Š” lua script๋ฅผ ์ง€์›ํ•จ. โ€ข lua script ์‚ฌ์šฉ์˜ ๋‹จ์  โ€ข ์„ฑ๋Šฅ์ด ๋А๋ฆฌ๋‹ค.(๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋Œ์•˜์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.) โ€ข ๊ทธ๋Ÿฌ๋ฉด์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ปค๋ฒ„ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. โ€ข Redis PR์˜ ๋Œ€๋ถ€๋ถ„์€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ โ€ข ๊ธฐ์กด์— ์ž˜ ๋ฐ›์•„๋“ค์—ฌ์ง€์ง€ ์•Š์Œ.(๊ฐ€๋ฒผ์šด(?) ์„œ๋ฒ„๋ฅผ ์ง€ํ–ฅ.)
  • 19. Redis Module #2 โ€ข Redis Module โ€ข Dynamic Loading Library(.so) โ€ข ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ Redis Command๋ฅผ ๋™์ ์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ข ๊ธฐ์กด ๋ช…๋ น์„ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ โ€ข ์ƒˆ๋กœ์šด ๋ช…๋ น์„ ๋“ฑ๋กํ•จ์œผ๋กœ์จ, ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 20. Redis Module #3 โ€ข RedisLabs Module Repository โ€ข https://github.com/RedisLabsModules โ€ข bloomfilter, Full-Text Search ๊ฐ™์€ ๋ชจ๋“ˆ์ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Œ
  • 21. Redis Module #4 โ€ข ๋ชจ๋“ˆ ์ž‘์„ฑ์‹œ ์ฃผ์˜ ์‚ฌํ•ญ โ€ข Redis๋Š” Single Threaded ์ด๋ฏ€๋กœ, ๋ชจ๋“ˆ์—์„œ ๊ธด ์‹œ๊ฐ„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ Redis ์ž์ฒด๊ฐ€ ๋ธ” ๋Ÿญ๋˜์–ด ๋ฒ„๋ฆผ. โ€ข ๋ชจ๋“ˆ์—์„œ ์žฅ์• ๊ฐ€ ๋‚  ๊ฒฝ์šฐ, Redis ์„œ๋ฒ„ ์ž์ฒด๊ฐ€ ์ข…๋ฃŒ๋จ. โ€ข Master/Slave ํ˜•ํƒœ์ผ ๊ฒฝ์šฐ๋Š”, ์žฅ์• ๋ฅผ ๋Œ€๋น„ํ•ด์„œ Slave ๋“ค๋„ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋‹ค ๋กœ๋“œํ•ด์•ผ ํ•จ. โ€ข Redis ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์ต์ˆ™ํ•  ๊ฒฝ์šฐ๋Š” ๋ชจ๋“ˆ ๊ฐœ๋ฐœ์ด ์–ด๋ ต์ง€๋Š” ์•Š์Œ.