Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
ゆるかわPhp | KEY
[go: Go Back, main page]

ゆるかわPHP
  @polidog
自己紹介

望月涼太

@polidog

Exquad Inc. CTO

好きなPHPの関数はrunkit系の関数

PHP歴6年
本題に入る前に
Exquadのご紹介

読み方 : エクスクウェイド

ソーシャルアプリをつくっています

平均年齢27歳ぐらい

エンジニアは7名ぐらい?

PHPer募集してます
さて本題に入りましょう
ゆるかわPHPとは?
真夜中、神様は僕の耳元
  で囁きました。
PHPってゆるくて可愛
    くね?
ゆるかわ目的

webを取り巻く開発のノウハウを
みんなで共有したい

まったりと、いろいろな人と話が
したい
ということで
みんなで語り合いましょ
     う!
今日のアジェンダ

1. PHPの開発環境のご説明

2. TestRunkitのご案内

3. 高速化しようぜ!

4. 夢のあるお話
1. PHPの開発環境のご
      説明
よく使う実行環境
apache2
mysql5.5
           php5.3



                    memcached

           Redis
ごくごく一般的です。
開発する環境は?
昔の開発環境はこんな感
  じです(´・ω・`)
PC
     samba            svn
             development
PC
                server
              vhost
      ssh
PC
案件によっては・・・
PC
     ftp         svn
           development
PC
              server

PC
こんな開発環境じゃ
死んじゃう...
今の基本的な開発環境
    は?
vm
      PC        git push     git

           vm                      auto deploy
      PC

           vm
      PC                   sandbox
                            server


m/g local api
                                     m/g api
ソースコードの管理
git意外に選択肢ありま
      す?
gitにして良かった事

ブランチ切りやすい

gitflowは本当に美しいモデルである

pull requestとかいいよね

gitlabを導入してみました

.svnディレクトリの苦い思いをしなくてすむ
エディタは?
基本的には自由です


vim, NetBeans, Eclipse, emacsなんで
も自由


ただし僕はNetBeansを愛してます
まあ結論として
新しく入ったエンジニアに
この開発
環境まじぱ
ねぇぜぇぇ
 ええ!
って言わせる事!
2. TestRunkitのご案
        内
TestRunkitとは
メソッドや関数を一時的に変更するのに便利
なPHPライブラリ

時限公開の処理や、テスト中に乱数を固定さ
せたい場合などetc..

githubに公開してます!
https://github.com/polidog/
TestRunkit
具体的な使用例をお見せ
   しましょう
3. 高速化しようぜ!
まあそこまで大きな
SAPでもないので、
たいした話は出来ませ
    ん。
DBとのつきあい方


delete文は遅いからパーティショニング

共通データはキャッシュへ

マスタ系データは基本memcachedへ
DB           memcahed


             ① tcp
     ③ tcp


               web
とはいえ、TCPのコネ
クション数とか考えると
DB           memcahed


             ② tcp
     ③ tcp               APC


               web
                        ① no tcp
ちなみに
Mobageを支える技術
    によると
DB           memcahed


             ② tcp
     ③ tcp              memcached

                            unix
               web
                         ① domain
                           socket
joinは避ける!
※もちろんJoinした方がいい場合もある
アイテムマスタ
アイテムID    アイテム名     効果


  1      綺麗なパンツ    綿100%

                   親父の香り
  2      ステテコパンツ
                    100%



                   ユーザーアイテム
                   ユーザーID   アイテムID   個数
 1対nな関係
                     1        1      1


                     1        2      20
キャッシュからマスタ
データとれないよね...
水平分割もできなくなる
     し...
アクセラレータ



APC使ってます

速いです。だいたい3倍以上早くなります
APCはかなり重要
もちろんapc_statは0
弊社のAPCの設定例
extension = apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.num_files_hint = 300
apc.user_entries_hint = 640000
apc.stat=0
apc.include_once_override=1
apc.write_lock=1
デプロイ時に無理矢理
 キャッシュクリア
#web server list
WEB_SERVERS=./list/servers.list

# select server list
i=0
while read LINE; do
  SERVER_LIST[i]=$LINE
  i=`expr $i+1`

done < $WEB_SERVERS

for SERVER in ${SERVER_LIST[@]}
do
   echo "clear server"$SERVER
   wget -q -O /dev/null "http://"$SERVER"/apc_clear.php?
apc_clear=1"
done
APCの詳しい説明は


http://www.php.net/manual/ja/
apc.configuration.php#ini.apc.include-once-override
メッセージキュー


PHPで非同期処理てきな感じで使いたいとき
便利かもしれない

アイテム付与系の処理とか役立ちそう

待ちリクエストが少しでも減らせる
弊社では活用していませ
   ん\(^o^)/
導入しようと思って、こ
 んなの作りました。
Zend_Queue_Adapt
   er_Phpredis
githubで公開してます
   https://github.com/polidog/
 Zend_Queue_Adapter_Phpredis
Zf2...どんまい

    
ちなみに
MySQLで非同期処理し
    たいなら
mysqli_pollがある
      よ!
いや、async_mysql
https://github.com/yuya-takeyama/
            async_mysql
ちょっとMySQLのお話
   なんですが
EXPLAINはしよう
でも直接で実行するのが
    だるい...
4. 夢のあるお話
フレームワーク
作ります!!!
Saradaフレームワーク
作る理由



既存のフレームワークじゃ重い

DietCakeはちょっとガリガリすぎる・・
夢のある機能
自動でモデルがロードされる

遅延的なデータベース保存

豊富なデータキャッシュ

PHPUnitでDBスキーマの更新がいらない

その他ソーシャルアプリよりな機能盛りだく
さん!
もちろんgithubに公
    開!
お楽しみに!!
ご清聴ありがとうござい
    ました

ゆるかわPhp

Editor's Notes

  • #2 &amp;#x306F;&amp;#x3044;&amp;#x3067;&amp;#x306F;&amp;#x3001;&amp;#x65E9;&amp;#x901F;&amp;#x3086;&amp;#x308B;&amp;#x304B;&amp;#x308F;PHP&amp;#x306E;&amp;#x65B9;&amp;#x3092;&amp;#x59CB;&amp;#x3081;&amp;#x3066;&amp;#x884C;&amp;#x304D;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  • #3 &amp;#x307E;&amp;#x305A;&amp;#x306F;&amp;#x81EA;&amp;#x5DF1;&amp;#x7D39;&amp;#x4ECB;&amp;#x304B;&amp;#x3089;&amp;#x3002;\n&amp;#x672C;&amp;#x540D;&amp;#x306F;&amp;#x3082;&amp;#x3061;&amp;#x3065;&amp;#x304D;&amp;#x308A;&amp;#x3087;&amp;#x3046;&amp;#x305F;&amp;#x3068;&amp;#x3044;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\ntwitter&amp;#x3068;&amp;#x304B;&amp;#x3060;&amp;#x3044;&amp;#x305F;&amp;#x3044;&amp;#x306E;web&amp;#x30B5;&amp;#x30FC;&amp;#x30D3;&amp;#x30B9;&amp;#x306F;polidog&amp;#x3067;&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x3088;&amp;#x304B;&amp;#x3063;&amp;#x305F;&amp;#x3089;&amp;#x30D5;&amp;#x30A9;&amp;#x30ED;&amp;#x30FC;&amp;#x3057;&amp;#x3066;&amp;#x304F;&amp;#x3060;&amp;#x3055;&amp;#x3044;&amp;#x3002;\n&amp;#x4ECA;&amp;#x65E5;&amp;#x306E;&amp;#x3053;&amp;#x306E;&amp;#x4F1A;&amp;#x5834;&amp;#x3067;&amp;#x3082;&amp;#x3042;&amp;#x308B;&amp;#x3001;&amp;#x30A8;&amp;#x30AF;&amp;#x30B9;&amp;#x30AF;&amp;#x30A6;&amp;#x30A7;&amp;#x30A4;&amp;#x30C9;&amp;#x3067;CTO&amp;#x3084;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  • #4 \n
  • #5 &amp;#x307E;&amp;#x305A;&amp;#x306F;&amp;#x3053;&amp;#x306E;&amp;#x4F1A;&amp;#x793E;&amp;#x3001;&amp;#x30A8;&amp;#x30AF;&amp;#x30B9;&amp;#x30AF;&amp;#x30A6;&amp;#x30A7;&amp;#x30A4;&amp;#x30C9;&amp;#x306E;&amp;#x7D39;&amp;#x4ECB;&amp;#x3092;&amp;#x3057;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n&amp;#x8AAD;&amp;#x307F;&amp;#x65B9;&amp;#x306F;&amp;#x300C;&amp;#x30A8;&amp;#x30AF;&amp;#x30B9;&amp;#x30AF;&amp;#x30A6;&amp;#x30A7;&amp;#x30A4;&amp;#x30C9;&amp;#x300D;&amp;#x3068;&amp;#x3044;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x975E;&amp;#x5E38;&amp;#x306B;&amp;#x8A00;&amp;#x3044;&amp;#x306B;&amp;#x304F;&amp;#x3044;&amp;#x540D;&amp;#x524D;&amp;#x3067;&amp;#x3059;&amp;#x306D;w\n\n&amp;#x30A8;&amp;#x30AF;&amp;#x30B9;&amp;#x30AF;&amp;#x30A6;&amp;#x30A7;&amp;#x30A4;&amp;#x30C9;&amp;#x306F;&amp;#x3001;&amp;#x4EE3;&amp;#x8868;&amp;#x306E;&amp;#x5408;&amp;#x539F;&amp;#x304C;&amp;#x5B66;&amp;#x751F;&amp;#x306E;&amp;#x3053;&amp;#x308D;&amp;#x306B;&amp;#x3001;&amp;#x8D77;&amp;#x696D;&amp;#x3057;&amp;#x305F;&amp;#x4F1A;&amp;#x793E;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x50D5;&amp;#x3082;&amp;#x3001;&amp;#x6700;&amp;#x521D;&amp;#x30D5;&amp;#x30EA;&amp;#x30FC;&amp;#x30E9;&amp;#x30F3;&amp;#x30B9;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x53C2;&amp;#x52A0;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x304C;&amp;#x3001;&amp;#x6C17;&amp;#x3065;&amp;#x3044;&amp;#x305F;&amp;#x3089;CTO&amp;#x306B;&amp;#x306A;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3057;&amp;#x305F;w\n\n&amp;#x5E73;&amp;#x5747;&amp;#x5E74;&amp;#x9F62;&amp;#x304C;27&amp;#x6B73;&amp;#x3050;&amp;#x3089;&amp;#x3044;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x6BD4;&amp;#x8F03;&amp;#x7684;&amp;#x82E5;&amp;#x304F;&amp;#x3066;&amp;#x3074;&amp;#x3061;&amp;#x3074;&amp;#x3061;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x4F1A;&amp;#x793E;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n\n&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2;&amp;#x306F;&amp;#x3060;&amp;#x3044;&amp;#x305F;&amp;#x3044;&amp;#xFF17;&amp;#x540D;&amp;#x3050;&amp;#x3089;&amp;#x3044;+&amp;#x30A2;&amp;#x30EB;&amp;#x30D5;&amp;#x30A1;&amp;#x3067;&amp;#x30D5;&amp;#x30EA;&amp;#x30FC;&amp;#x30E9;&amp;#x30F3;&amp;#x30B9;&amp;#x306E;&amp;#x65B9;&amp;#x3082;&amp;#x4F55;&amp;#x540D;&amp;#x304B;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x73FE;&amp;#x5728;&amp;#x5F0A;&amp;#x793E;&amp;#x3067;&amp;#x306F;PHPer&amp;#x52DF;&amp;#x96C6;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;PHP&amp;#x304B;&amp;#x671F;&amp;#x5F85;&amp;#x4EBA;&amp;#x306F;&amp;#x305C;&amp;#x3072;&amp;#xFF01;&amp;#x76F4;&amp;#x63A5;&amp;#x3067;&amp;#x3082;&amp;#x3044;&amp;#x3044;&amp;#x3057;&amp;#x3001;twitter&amp;#x3067;&amp;#x3082;&amp;#x3044;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x9023;&amp;#x7D61;&amp;#x3044;&amp;#x305F;&amp;#x3060;&amp;#x3051;&amp;#x308B;&amp;#x3068;&amp;#x3046;&amp;#x308C;&amp;#x3057;&amp;#x3044;&amp;#x3067;&amp;#x3059;ww\n\n\n
  • #6 &amp;#x3061;&amp;#x306A;&amp;#x307F;&amp;#x306B;&amp;#x5F0A;&amp;#x793E;&amp;#x306E;&amp;#x30ED;&amp;#x30FC;&amp;#x30AB;&amp;#x30EB;&amp;#x306B;&amp;#x3042;&amp;#x308B;&amp;#x958B;&amp;#x767A;&amp;#x30B5;&amp;#x30FC;&amp;#x30D0;&amp;#x306B;&amp;#x30ED;&amp;#x30B0;&amp;#x30A4;&amp;#x30F3;&amp;#x3059;&amp;#x308B;&amp;#x3068;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x30E1;&amp;#x30C3;&amp;#x30BB;&amp;#x30FC;&amp;#x30B8;&amp;#x8868;&amp;#x793A;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;www\n
  • #7 \n
  • #8 \n
  • #9 \n
  • #10 \n
  • #11 &amp;#x3086;&amp;#x308B;&amp;#x304F;&amp;#x3066;&amp;#x53EF;&amp;#x611B;&amp;#x3044;PHP&amp;#x304B;&amp;#x3089;&amp;#x5E83;&amp;#x304C;&amp;#x308B;web&amp;#x306E;&amp;#x8A71;&amp;#x3092;&amp;#x305F;&amp;#x304F;&amp;#x3055;&amp;#x3093;&amp;#x3059;&amp;#x308B;&amp;#x5834;&amp;#x3092;&amp;#x63D0;&amp;#x4F9B;&amp;#x3057;&amp;#x305F;&amp;#x3044;&amp;#x3002;\n&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3001;&amp;#x601D;&amp;#x3044;&amp;#x3064;&amp;#x304D;&amp;#x3067;atnd&amp;#x7ACB;&amp;#x3066;&amp;#x3066;&amp;#x307F;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n\n&amp;#x4ECA;&amp;#x65E5;&amp;#x3053;&amp;#x306E;&amp;#x5834;&amp;#x306B;&amp;#x53C2;&amp;#x52A0;&amp;#x3057;&amp;#x3066;&amp;#x304F;&amp;#x308C;&amp;#x305F;&amp;#x4EBA;&amp;#x304C;&amp;#x3001;&amp;#x4ECA;&amp;#x65E5;&amp;#x53C2;&amp;#x52A0;&amp;#x3057;&amp;#x305F;&amp;#x4E8B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x5C11;&amp;#x3057;&amp;#x3067;&amp;#x3082;&amp;#x6210;&amp;#x9577;&amp;#x3057;&amp;#x3066;&amp;#x3082;&amp;#x3089;&amp;#x3048;&amp;#x308C;&amp;#x3070;&amp;#x3046;&amp;#x308C;&amp;#x3057;&amp;#x3044;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  • #12 \n
  • #13 \n
  • #14 \n
  • #15 \n
  • #16 \n
  • #17 mysql5.5&amp;#x3001;php&amp;#x306F;5.3&amp;#x3001;&amp;#x4ECA;&amp;#x3060;&amp;#x3068;php5.4&amp;#x7CFB;&amp;#x3067;&amp;#x3082;&amp;#x958B;&amp;#x767A;&amp;#x9032;&amp;#x3081;&amp;#x3066;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3067;&amp;#x3082;&amp;#x3063;&amp;#x3066;&amp;#x3001;apache&amp;#x306F;2.2&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;\n&amp;#x305D;&amp;#x308C;&amp;#x306B;&amp;#x52A0;&amp;#x3048;&amp;#x3066;memcached&amp;#x3084;Redis&amp;#x3082;&amp;#x4F7F;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;\n\n\n
  • #18 &amp;#x3068;&amp;#x307E;&amp;#x3042;&amp;#x3054;&amp;#x304F;&amp;#x3054;&amp;#x304F;&amp;#x4E00;&amp;#x822C;&amp;#x7684;&amp;#x306A;&amp;#x30B9;&amp;#x30BF;&amp;#x30C3;&amp;#x30AF;&amp;#x304B;&amp;#x3068;&amp;#x306F;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  • #19 &amp;#x3058;&amp;#x3083;&amp;#x3042;&amp;#x3053;&amp;#x306E;&amp;#x6280;&amp;#x8853;&amp;#x3092;&amp;#x5229;&amp;#x7528;&amp;#x3059;&amp;#x308B;&amp;#x305F;&amp;#x3081;&amp;#x306E;&amp;#x958B;&amp;#x767A;&amp;#x74B0;&amp;#x5883;&amp;#x306F;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3068;\n
  • #20 &amp;#x6614;&amp;#x306E;&amp;#x958B;&amp;#x767A;&amp;#x958B;&amp;#x767A;&amp;#x74B0;&amp;#x5883;&amp;#x306F;&amp;#x3053;&amp;#x3093;&amp;#x306A;&amp;#x611F;&amp;#x3058;&amp;#x3067;&amp;#x3057;&amp;#x305F;&amp;#x3002;\n
  • #21 \n
  • #22 \n
  • #23 \n
  • #24 \n
  • #25 \n
  • #26 &amp;#x30FB;&amp;#x5404;&amp;#x30DE;&amp;#x30B7;&amp;#x30F3;&amp;#x306B;VM&amp;#x3092;&amp;#x8981;&amp;#x3057;&amp;#x3066;&amp;#x305D;&amp;#x3053;&amp;#x3067;&amp;#x3001;&amp;#x958B;&amp;#x767A;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x958B;&amp;#x767A;&amp;#x304C;&amp;#x7D42;&amp;#x3063;&amp;#x3066;&amp;#x4E00;&amp;#x901A;&amp;#x308A;&amp;#x52D5;&amp;#x4F5C;&amp;#x78BA;&amp;#x8A8D;&amp;#x3057;&amp;#x305F;&amp;#x3089;git push&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x30EA;&amp;#x30E2;&amp;#x30FC;&amp;#x30C8;&amp;#x30D6;&amp;#x30E9;&amp;#x30F3;&amp;#x30C1;&amp;#x306B;&amp;#x6DF7;&amp;#x305C;&amp;#x307E;&amp;#x3059;\n&amp;#x30FB;&amp;#x30EA;&amp;#x30E2;&amp;#x30FC;&amp;#x30C8;&amp;#x30D6;&amp;#x30E9;&amp;#x30F3;&amp;#x30C1;&amp;#x306B;&amp;#x6DF7;&amp;#x305C;&amp;#x308B;&amp;#x3068;&amp;#x81EA;&amp;#x52D5;&amp;#x7684;&amp;#x306B;sandbox&amp;#x30B5;&amp;#x30FC;&amp;#x30D0;&amp;#x3068;&amp;#x547C;&amp;#x3070;&amp;#x308C;&amp;#x308B;&amp;#x30C6;&amp;#x30B9;&amp;#x30C8;&amp;#x74B0;&amp;#x5883;&amp;#x306B;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x304C;&amp;#x53CD;&amp;#x6620;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x30FB;&amp;#x305D;&amp;#x308C;&amp;#x3092;&amp;#x30D7;&amp;#x30E9;&amp;#x30F3;&amp;#x30CA;&amp;#x30FC;&amp;#x3084;&amp;#x30C7;&amp;#x30A3;&amp;#x30EC;&amp;#x30AF;&amp;#x30BF;&amp;#x30FC;&amp;#x3084;&amp;#x30C6;&amp;#x30B9;&amp;#x30BF;&amp;#x30FC;&amp;#x306A;&amp;#x3069;&amp;#x975E;&amp;#x30A8;&amp;#x30F3;&amp;#x30B8;&amp;#x30CB;&amp;#x30A2;&amp;#x304C;&amp;#x78BA;&amp;#x8A8D;&amp;#x3059;&amp;#x308B;&amp;#x3063;&amp;#x3066;&amp;#x611F;&amp;#x3058;&amp;#x306E;&amp;#x30D5;&amp;#x30ED;&amp;#x30FC;&amp;#x3067;&amp;#x3059;\n&amp;#x30FB;1&amp;#x5E74;&amp;#x904B;&amp;#x7528;&amp;#x3057;&amp;#x3066;&amp;#x307F;&amp;#x3066;&amp;#x3053;&amp;#x306E;&amp;#x30B9;&amp;#x30BF;&amp;#x30A4;&amp;#x30EB;&amp;#x304C;&amp;#x7D50;&amp;#x69CB;&amp;#x3079;&amp;#x3093;&amp;#x308A;&amp;#x304B;&amp;#x3082;&amp;#x3057;&amp;#x308C;&amp;#x306A;&amp;#x3044;&amp;#x3068;&amp;#x306F;&amp;#x601D;&amp;#x3046;\n
  • #27 \n
  • #28 \n
  • #29 \n
  • #30 \n
  • #31 \n
  • #32 \n
  • #33 \n
  • #34 \n
  • #35 \n
  • #36 \n
  • #37 \n
  • #38 \n
  • #39 \n
  • #40 &amp;#x3053;&amp;#x306E;&amp;#x3064;&amp;#x304E;&amp;#x3067;github&amp;#x3092;&amp;#x8868;&amp;#x793A;\n\n
  • #41 \n
  • #42 \n
  • #43 \n
  • #44 \n
  • #45 \n
  • #46 \n
  • #47 \n
  • #48 \n
  • #49 \n
  • #50 \n
  • #51 web&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x304B;&amp;#x30A2;&amp;#x30D7;&amp;#x30EA;&amp;#x30B1;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3;&amp;#x30B5;&amp;#x30FC;&amp;#x30D0;&amp;#x306E;&amp;#x4E2D;&amp;#x306B;memached&amp;#x3092;&amp;#x540C;&amp;#x5C45;&amp;#x3055;&amp;#x305B;&amp;#x3066;&amp;#x3001;&amp;#x30E6;&amp;#x30CB;&amp;#x30C3;&amp;#x30AF;&amp;#x30B9;&amp;#x30C9;&amp;#x30E1;&amp;#x30A4;&amp;#x30F3;&amp;#x30BD;&amp;#x30B1;&amp;#x30C3;&amp;#x30C8;&amp;#x3067;memcaehd&amp;#x304B;&amp;#x3089;&amp;#x30C7;&amp;#x30FC;&amp;#x30BF;&amp;#x53D6;&amp;#x5F97;&amp;#x3057;&amp;#x3066;&amp;#x308B;&amp;#x3089;&amp;#x3057;&amp;#x3044;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n\n&amp;#x672C;&amp;#x3092;&amp;#x8AAD;&amp;#x307F;&amp;#x8FD4;&amp;#x305D;&amp;#x3046;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x305F;&amp;#x3093;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;&amp;#x5F15;&amp;#x3063;&amp;#x8D8A;&amp;#x3057;&amp;#x305F;&amp;#x3070;&amp;#x304B;&amp;#x308A;&amp;#x3067;&amp;#x66F8;&amp;#x7C4D;&amp;#x3069;&amp;#x306E;&amp;#x6BB5;&amp;#x30DC;&amp;#x30FC;&amp;#x30EB;&amp;#x306B;&amp;#x306F;&amp;#x3044;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x306E;&amp;#x304B;&amp;#x308F;&amp;#x304B;&amp;#x3089;&amp;#x306A;&amp;#x3044;&amp;#x306E;&amp;#x3067;&amp;#x3042;&amp;#x304D;&amp;#x3089;&amp;#x3081;&amp;#x307E;&amp;#x3057;&amp;#x305F;w\n
  • #52 \n
  • #53 \n
  • #54 \n
  • #55 \n
  • #56 \n
  • #57 \n
  • #58 \n
  • #59 apc.stat=0&amp;#x306B;&amp;#x3059;&amp;#x308B;&amp;#x3068;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x66F4;&amp;#x65B0;&amp;#x6642;&amp;#x306B;apc&amp;#x306E;&amp;#x30AD;&amp;#x30E3;&amp;#x30C3;&amp;#x30B7;&amp;#x30E5;&amp;#x89E3;&amp;#x653E;&amp;#x3055;&amp;#x308C;&amp;#x306A;&amp;#x304F;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\nwrite_lock&amp;#x306F;apc&amp;#x30AD;&amp;#x30E3;&amp;#x30C3;&amp;#x30B7;&amp;#x30E5;&amp;#x304C;&amp;#x306A;&amp;#x3044;&amp;#x5834;&amp;#x5408;&amp;#x306B;&amp;#x3001;&amp;#x8907;&amp;#x6570;&amp;#x540C;&amp;#x6642;&amp;#x306B;&amp;#x30EA;&amp;#x30AF;&amp;#x30A8;&amp;#x30B9;&amp;#x30C8;&amp;#x304C;&amp;#x6765;&amp;#x305F;&amp;#x5834;&amp;#x5408;&amp;#x306B;&amp;#x3001;&amp;#x8907;&amp;#x6570;&amp;#x306E;apc&amp;#x30AD;&amp;#x30E3;&amp;#x30C3;&amp;#x30B7;&amp;#x30E5;&amp;#x3092;&amp;#x751F;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x3063;&amp;#x3066;&amp;#x306E;&amp;#x3092;&amp;#x306A;&amp;#x304F;&amp;#x3057;&amp;#x3066;&amp;#x304F;&amp;#x308C;&amp;#x308B;\n
  • #60 \n
  • #61 \n
  • #62 \n
  • #63 \n
  • #64 \n
  • #65 \n
  • #66 \n
  • #67 \n
  • #68 \n
  • #69 \n
  • #70 \n
  • #71 \n
  • #72 \n
  • #73 \n
  • #74 \n
  • #75 \n
  • #76 \n
  • #77 \n
  • #78 \n
  • #79 \n
  • #80 \n
  • #81 \n
  • #82 \n
  • #83 \n
  • #84 \n
  • #85 \n