2012-02-18 15 views
0

私は、Cでlibmemcached経由でmemcachedにMYSQLの結果全体を保存したいと思います。これは可能ですか、それともmemcachedに各行要素を別々に保存する必要がありますか?libmemcached mysqlの結果を格納

+0

シリアル化ライブラリを使用する代わりに、私自身の抽象化レイヤーを作成して、残りのプログラムでmemcache/sql固有のデータ構造の代わりに使用するようにしてください。これはまさにそれを行う最も簡単な方法ではありませんが、私のプロジェクトにうまく対応します。 –

答えて

1

結果セットが常に1MBより小さい場合は、結果セット全体を保存することができます。それ以外の場合(結果が1MBを超える場合)、別の解決策を見つける必要があります。 memcacheの各行をあなたのために保存すると、それはおそらく良い解決策です。

値サイズの1MBの制限は、memcacheにコード化されたハード制限です。その周りの唯一の方法は、ソースコードの制限を変更し、memcacheを再コンパイルすることです。

いくつかの説明については、http://groups.google.com/group/memcached/browse_thread/thread/d32434ce77131e48を参照してください。

(注:これはすべて結果を文字列にシリアル化することができると仮定しており、実行できない場合は配列が制限要因ではないため個々の行も格納できません直列化能力。)

はここで間違いなくあなたがそれを行うことができますどのようにSerialize Data Structures in C

+0

結果セット全体を格納するためにどのような関数を使うべきかわかりません。ライブラリ内のset関数はchar *を入力として受け取るだけなので、 –

+0

@ SlavaMarkeyev、はい。結果セットが文字列としてシリアライズ可能な場合のみ、結果セットを格納できます。シリアル化する方法はアプリケーション固有のものです。 –

+0

@ SlavaMarkeyev、私は私の答えにシリアライズに関するノートを追加しました。とにかく、あなたの個々の行をシリアル化することができれば、結果セット全体をシリアライズすることは間違いありません。 –

0

を議論ポストです。すべての回答をまとめる方法を見つける必要があります。とにかくそれをやりたいのはなぜなのでしょうか?

関連する問題