2017-11-17 9 views
0

Memcachedを使用している場合、値配列内の1つの要素のみを更新できますか?どのように私は唯一の新しいデータをretriveする必要がありMemcachedは値配列の単一の要素のみを更新します

(key)boots => 
(value)[ 
    [ 
     'id' => 1, 
     'type' => 'winter boots' 
    ], 
    [ 
     'id' => 2, 
     'type' => 'summer boots' 
    ], 
    [ 
     'id' => 3, 
     'type' => 'spring boots' 
    ] 
] 

そして私の更新は、(「夏のブーツは、」「すべてのシーズンはブーツ」になると言うことができます)場合:私は、キーbootsを設定し、このキーの値があると言うことができます更新された製品をMySQLデータベーステーブルから削除し、その特定の製品のみを更新し、すべての製品データを取得せずに値全体を更新しないでください(これは、memcachedが正しく機能する方法ですか? merge sortquicksortなどの並べ替えアルゴリズムを使用する必要がありますか、別のキャッシングシステムを使用する必要がありますか?私は私が何を求めているのかを説明したいと思う。前もって感謝します!

答えて

0

私が考えている唯一の方法は、memcacheに格納されているオブジェクト全体を取得し、それを変更して保存することです。

また、別の方法があります。 memcacheに格納する要素の更新頻度と格納する要素のサイズを調べます。

非常に大きな配列の場合、オブジェクト全体をmemcacheに格納する意味がありません。 そして、それは次のようになります異なるキーとして各エントリを保存するために、より良い電子う:

(キー)boots_1 =>(値)冬のブーツ

(キー)boots_2 =>(値)夏ブーツ

(キー)boots_3 =>(値)春ブーツ

これは、あなたが独立したキーを変更することができるようになると、あなたはすべてのキーを取得するためにmemcacheのからmultigetを行うことができます。

関連する問題