1つのバグの歴史、またはPHPだけでなく知っておくべき理由

それはすべて、memekeshが落ち始めたという事実、またはmemekeshdbから始まりました。 そして、彼はどういうわけかunning落した。 memkesh + memkeshdb + BerkeleyDbを再インストールしても何も得られませんでした。 いくつかの経験的な計算の後、MultiGetメソッドに当てはまることが明らかになりましたが、ドロップはキーの順序とキーの数に依存するという事実は非常に興味深いものです。


クラッシュエラー:#16-不完全なデータ受信。 ええ、それは中毒を意味します。 ログに登り、その場でログを分析し、大切なENDを確認します。つまり、コンテンツ全体がログから返されます。 交換プロトコルの詳細については、ここで開示する必要があります。
通信プロトコルには、バイナリとテキストの2つのタイプがあります。 テキストプロトコルによると、メッセージは
ヘッダーと本文自体。 デバッグ時に誰もが必要とする可能性のある2つの主要なコマンド、setおよびgetを検討してください。

set < > [noreply]\r\n
.... length

noreply, STORED\r\n ERROR\r\n
flags -
expiraton - ,
length -
length

get <>


: VALUE < > .... length
END

:

gets <1> <2> <3> ...


: VALUE \r\n
.... length
VALUE \r\n
.... length
VALUE \r\n
.... length
END

protokol.txt doc memcached

:
telnet localhost 11211


( END), . : " ?". . - , . , . - Ok!

# 2. , . :
memcached BerkeleyDb ( memcachedb ) libmemcache (c-) memcached pecl PHP.
PHP 10 , memcached :
-
- : "gets <1> <2> <3>"
- ( \r\n)
- , ,
- n-
- 3.

:
VALUE key_1 67 678 178468
VALUE key_2 67 526 178468
VALUE key_3 67 349 178468
END


1000 ( )
, , .

#3.
memcached . . , . . libmemcached.

#4 .
libmemcached. test . . Sigmentation fault. . . , , libmemcached, , ...

, ... , .
set < > [noreply]\r\n
.... length

noreply, STORED\r\n ERROR\r\n
flags -
expiraton - ,
length -
length

get <>


: VALUE < > .... length
END

:

gets <1> <2> <3> ...


: VALUE \r\n
.... length
VALUE \r\n
.... length
VALUE \r\n
.... length
END

protokol.txt doc memcached

:
telnet localhost 11211


( END), . : " ?". . - , . , . - Ok!

# 2. , . :
memcached BerkeleyDb ( memcachedb ) libmemcache (c-) memcached pecl PHP.
PHP 10 , memcached :
-
- : "gets <1> <2> <3>"
- ( \r\n)
- , ,
- n-
- 3.

:
VALUE key_1 67 678 178468
VALUE key_2 67 526 178468
VALUE key_3 67 349 178468
END


1000 ( )
, , .

#3.
memcached . . , . . libmemcached.

#4 .
libmemcached. test . . Sigmentation fault. . . , , libmemcached, , ...

, ... , .


Source: https://habr.com/ru/post/J74643/


All Articles