Slide 1

Slide 1 text

4)08300.ͷ%#ෛՙʹର͢Δ Ωϟογϡӡ༻ͷΧΫΧΫγΧδΧ 4)08300.5FDI4UVEJP ࢤਫཧ࠸

Slide 2

Slide 2 text

ࣗݾ঺հ ࢤਫཧ࠸ ͠Έͣ·͞΍  ུྺ ֶੜ࣌୅͸ιϑτ΢ΣΞ޻ֶΛઐ߈ ೥%F/"ʹ৽ଔೖࣾɺιʔγϟϧήʔϜ΍ΩϡϨʔγϣϯϝσΟΞʹैࣄ ೥4)08300.ʹग़޲ ޷͖ͳݴ༿ ʮ๻͸δμϯ΍ϥ΢ϧͷΑ͏ͳඒ͠͞͸ͳ͍͔Βɺ͕ͨͩΉ͠ΌΒʹؤுΔ͚ͩ͞ʯ
 CZ1BWFM/FEWⒿE ʮటषͪ͘ΌͩΊͰ͔͢ʁʯCZ4BSJOB4PEB ʮແྉνΣΩձʯ

Slide 3

Slide 3 text

࠷ۙͷొஃͷ঺հ 4USFBNJOH$POGFSFODF 4)08300.ͷz࠷ۙͷzෛՙରࡦ IUUQTTQFBLFSEFDLDPNPUUPTIPXSPPNGBMTF[VJKJOGBMTFGVIF EVJDF Φʔτεέʔϧͷؒʹ߹Θͳ͍ಥൃతͳෛՙʹରͯ͋͠Β͔͡ΊαʔόʔΛ૿΍ͯ͠଴ͪ ߏ͑Δ ௿஗Ԇ͕ͦ͜·ͰٻΊΒΕͳ͍഑৴Ͱ͸ੵۃతʹ$%/Λར༻

Slide 4

Slide 4 text

%#ෛՙʹର͢Δ Ωϟογϡӡ༻ͷΧΫΧΫγΧδΧ

Slide 5

Slide 5 text

ΧΫΧΫγΧδΧͱ͸ ๭ंϝʔΧʔͷ$.ΩϟϥΫλʔ ๭ΞΠυϧͷָۂ ࿩Λলུͨ͠ࡍʹ۩ମతͳ಺༰ͷ୅༻ͱͯ͠༻͍ΒΕΔදݱ 4)08300.Ͱ͸%#ͷෛՙΛΧΫΧΫγΧδΧͳΩϟογϡͷ࢖͍ํͰରࡦ ͍ͯ͠·͢ɻ ࠓ೔͸۩ମతͳ಺༰Λ঺հ͠·͢

Slide 6

Slide 6 text

4)08300.Ͱར༻͍ͯ͠ΔΩϟογϡػߏ NFNDBDIFEαʔόʔ ϑΝΠϧΩϟογϡ ϓϩηεΩϟογϡ શͯͷαʔόʔɺશͯͷϓϩηεͰڞ௨ͷ஋ΛࢀরͰ͖Δɻ
 ωοτϫʔΫ*0͕͋Δɻ ಉ͡αʔόʔ಺ͷϓϩηεͰ஋Λڞ༗Ͱ͖Δɻ ωοτϫʔΫ*0͸ͳ͍͕ɺϑΝΠϧ*0͕͋Δɻ ࠷଎ɻ
 ϓϩηε͝ͱʹΩϟογϡ͞ΕΔɻ ֎෦͔Βͷૢ࡞͕ࠔ೉ɻ 1 1 1 1 1 1 'JMF$BDIF .FNDBDIFE 1SPDFTT$BDIF

Slide 7

Slide 7 text

๻ͷߟ͑ΔΦεεϝͷΩϟογϡػߏ࢖͍෼͚ ϙΠϯτ ߋ৽ස౓ɾλΠϛϯάΛߟྀ͢Δ w ϑΝΠϧΩϟογϡ ϓϩηεΩϟογϡ ͷଟஈΩϟογϡ w ͱʹ͔͘.Z42-αʔόʔʹϦΫΤετΛ ૹΒͤͳ͍ w ߋ৽ͷλΠϛϯάͰద੾ͳέΞΛ w NFNDBDIFE w ϦΫΤετස౓͕௿͍΋ͷ͸Ωϟογϡ͠ ͳ͍ w ద੾ͳFYQJSF࣌ؒ w ߋ৽ͷλΠϛϯάͰDBDIFͷ࡟আPSߋ৽ Ϛελʔσʔλܥ Ϣʔβʔσʔλܥ ଟগͷ஗ԆɺζϨ͕ڐ༰͞ΕΔ৔߹ ஗Ԇ΍ζϨΛڐ༰ͨ͘͠ͳ͍৔߹

Slide 8

Slide 8 text

NFNDBDIFEͷӡ༻ςΫχοΫ

Slide 9

Slide 9 text

Ωϟογϡ͞ΕͯΕ͹ར༻ɺͳ͚Ε͹औಘͯ͠อଘ ϙΠϯτ ༻్͝ͱʹFYQJSFΛௐ੔͢Δ ελϯμʔυͳར༻ํ๏ɻ .Z42-ͳͲͷ%#ʹอଘ͞Ε͍ͯΔσʔλͱဃ཭ ஗Ԇ ͕ൃੜ͢Δ͜ͱ͕͋Δɻ ஗Ԇ͕໰୊ʹͳΒͳ͍Α͏ʹFYQJSFΛௐ੔͢Δ my $memd = Cache::Memcached::Fast->new(); my $value = $memd->get($cache_key); unless (defined($value)) { $value = _get_value(); $memd->set($cache_key, $value, 30); } print $value; ྫ ϥΠϒҰཡͷऔಘͳͲ ऴྃࡁΈͷϥΠϒ͕Ϧετʹؚ·ΕΔ৔߹͕͋ΔͷͰͦΕ͸ϑΟϧλͯ͠ϨεϙϯεΛฦ͢

Slide 10

Slide 10 text

σʔλ͕ߋ৽͞ΕͨΒΩϟογϡΛ࡟আ PSߋ৽ ࢖͍ॴ ΩϟογϡʹΑΔ஗ԆΛճආ͍ͨ͠৔߹ Ϣʔβʔͷૢ࡞͕ଈ࣌൓ө͞Εͳ͍69͸ྑ͘ͳ͍ɻ NFNDBDIFE͚ͩͰͷอଘ͸شൃϦεΫ͕͋Δ σʔλͷߋ৽࣌ʹΩϟογϡͷσʔλΛ࡟আ͢Δ͜ͱͰ࣍ճͷࢀর͕%#ʹ޲͘Α͏ʹ͢Δ $teng->update('update table_a set hoge = 2 where id = 1'); $memd->delete($cache_key); # or $memd->set($cache_key, $new_obj, 30); ྫ ϧʔϜ৘ใͷऔಘͳͲ ϧʔϜ໊ͱ͔ߋ৽ͨ͠Βଈ࣌ʹ൓ө͞Εͯ΄ ͍͠

Slide 11

Slide 11 text

ಉ͡σʔλΛෳ਺Ωϟογϡͯ͠ෛՙ෼ࢄͰ͖ΔΑ͏ʹ͢Δ ࢖͍ॴ ಛఆͷLFZ΁ͷΞΫηε͕ूதͯ͠ෛՙ෼ࢄͰ͖͹͍৔߹ NFNDBDIFEͷϊʔυΛෳ਺༻ҙͯ͠΋ಛఆͷLFZʹϦΫΤετ͕ूத͢Δͱҙਤ௨Γʹ෼ࢄ ͞Εͳ͍ͷͰ޻෉͕ඞཁ my $cache_key = join(':', ('room', int(rand(3)))); my $value = $memd->get($cache_key); unless (defined($value)) { $value = _get_value(); $memd->set($cache_key, $value, 30); } $teng->update('update table_a set hoge = 2 where id = 1'); for my $i (0..2) { my $cache_key = join(':', ('room', $i)); $memd->delete($cache_key); } ਓؾԋऀʹ ϦΫΤετ͕ภΔ

Slide 12

Slide 12 text

ෳ਺ͷΩϟογϡػߏΛ૊Έ߹Θͤͯར༻ ϙΠϯτ ෳࡶ͞ͱརศੑͷτϨʔυΦϑ 1 1 1 .FNDBDIFE 1SPDFTT$BDIF .Z42- 1 1 1 1 1 1 ϓϩηεΩϟογϡ͚ͩͷ৔ ߹ɺϓϩηεͷ਺͚ͩ.Z42- ʹϦΫΤετ͕͘Δ NFNDBDIFE΋ෛՙʹΑͬ ͯμ΢ϯ͢Δ͜ͱ͕͋Δ ଟஈΩϟογϡͷ֤૚ͰϦΫ ΤετΛϑΟϧλ͠ɺωοτ ϫʔΫ*0ͳͲ΋ܰݮ͢Δ Ωϟογϡ͕ෳ਺ͷ૚ʹ อଘ͞ΕΔͷͰɺҰ੪ߋ ৽ɺ࡟আ͸ۃΊͯࠔ೉ɻ ΩϟογϡΩʔΛมߋ͠ ࣮࣭ͯϦηοτ͕ݱ࣮త

Slide 13

Slide 13 text

·ͱΊ

Slide 14

Slide 14 text

·ͱΊ w 4)08300.Ͱར༻͍ͯ͠ΔΩϟογϡػߏΛ͝঺հ w NFNDBDIFE w ϑΝΠϧΩϟογϡ w ϓϩηεΩϟογϡ w ࢖͍ํͷྫΛ4)08300.ͷࣄྫΛަ͑ͯ঺հ w ߋ৽࣌ʹΩϟογϡ࡟আͰ஗ԆΛճආ w ಉ͡σʔλΛෳ਺Ωϟογϡͯ͠ෛՙ෼ࢄ w ଟஈΩϟογϡͷར༻ 4)08300.ɺϥΠϒετϦʔϛ ϯάʹݶΒͣ൚༻తʹ࢖͑Δٕͩͱ ࢥ͏ͷͰɺ͝ࢀߟʹ͍͖ͯͨͩͭ͠ ͭɺ΋ͬͱ͍͍ํ๏͋Ε͹ڭ͑ͯ͘ ͍ͩ͞ʂҰॹʹษڧͤͯͩ͘͞͞ ͍ʂʂ

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

ϥΠϒετϦʔϛϯά 4)08300. ͳΒͰ͸ͷେม͞ w ͍͖ͳΓਓؾ഑৴͕͸͡·Δ w ͍͖ͳΓେ͖ͳऔΓ૊Έ͕ܾ·Δ w ͍͖ͳΓ"1*ϦΫΤετ਺͕εύΠΫ͢Δ ίϯςϯπʹΑΔӨڹ͕େ͖͍ ߴෛՙͳίϯςϯπͷ৔߹ɺχϡʔεϝσΟΞ ʹऔΓ্͛ΒΕΔ͜ͱ΋ଟʑ͋ΓɺͦΜͳίϯ ςϯπͱ޲͖߹͑Δͷ͸΍Γ͕͍ϙΠϯτɻ ഑৴։࢝લʹʮαʔόʔམͪΔͷͰ͸ʁʯͱ͍ͬ ͨͭͿ΍͖Λݟ͚ͭΔͱzෛ͚ͣݏ͍z΍αʔόʔ Λzࢧ͑ͳ͖Όײz͕ൃಈͯ͠ΑΓ΍ΔؾͰΔɻ 8&#αʔόʔʹؔͯ͠΋഑৴αʔόʔಉ༷ʹ Φʔτεέʔϧ͕ؒʹ߹Θͳ͍ಥൃతͳߴෛՙ ͕ൃੜ͢ΔͷͰɺࣄલ४උɾ৺ߏ͕͑ඞཁ

Slide 17

Slide 17 text

ऴΘΓ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 4)08300.͸೔ʑ੒௕͍ͯ͠·͢ɻ ͦΜͳαʔϏεͱҰॹʹ੒௕͍ͨ͠ෛ͚ͣݏ͍ ͳΤϯδχΞΛืू͍ͯ͠·͢ʂ