2011-07-11 7 views
0

Redisデータベースを使用してコメントシステムを構築しようとしていますが、現在ハッシュを使用してコメントデータを保存していますが、10または12のコメントの後、ランダムに出現し始めると、誰かが、Redisを使ってコメントシステムを構築するためにどのデータタイプを使用すべきかを知っている人は、現在私のハッシュはフォームのものです。コメントRedisデータベースシステムを使用するシステム

postid:コメントcommentid:ユーザーID "Testcomment"

おかげで、任意の助けが理解されるであろう。

答えて

0

ハッシュは順番にキーではなく、検索により迅速なアクセスのために設定されています。特定の順序でアイテムが必要な場合は、リストまたはソートされたセットを試してください。

最初に動作するように見える理由は、小さなセットの最適化です。少数のアイテムしか持たない場合は、リストが最も効率的な構造であるため、内部でredisが使用するものです。より多くのアイテムを取得すると、効率的なクエリを実行するために実際のハッシュマップが必要になり、データを並べ替えると、挿入順序ではなくハッシュで並べ替えられます。

+0

並べ替えられたリストは本当に助けてくれました – TilalHusain

+0

ハッシュはクイックアクセス用に設定されていると言われました。 – TilalHusain

+1

これはキーによる迅速なアクセスです。キーを知っていれば、単一のアイテムを非常に高速に取得できますが、最初のアイテムが何であるか分かりません。リストを使用すると、一定時間内に最初または最後のアイテムを取得できますが、アイテムリストの中央にあるアイテムを取得するのは非常に遅くなります。 –

0

私のWebアプリケーションでは、このような形式を使用しています。

(appname):(postid):(comment id) - The hash of the posts 
(appname):(postid):count - The latest comment id 

そして私は(appnameの):(postid)照会:)私は(APPNAMEの内容を取得するループを実行する必要が倍の量を取得するには、キーを数える:(postid):(コメントIDを)ハッシュ

サンプルコード

$c = $redis->get('(appname):(postid):count'); 
for($i = 0; $i<$c; $i++) { 
    var_dump($redis->hgetall('(appname):(postid):'.$i)); 
} 
関連する問題