2012-03-02 3 views
1

私はユーザーのリストを格納するためにredis Listを使用しています。私は、そのリストにユーザーがいるかどうかを確認したい。redisでリストに値が存在することを確認する方法はありますか?

例えば:私のリストは、私はNAME3がリストに存在するかどうかを確認したい

user: {name1,name2,name3} 

です。どのようにして赤目を使用することが可能ですか?

答えて

2

値をセットとして保存すると、セットメンバーシップをチェックできます。 phpredisページhttps://github.com/nicolasff/phpredisには、sAddコマンド(指定されたキーのセットにアイテムを追加する)とsIsMemberコマンド(指定されたキーのセットのメンバーであるかどうかを確認する)の例があります。

そうしないと、PHPでメンバーシップチェックをやり直す必要があります。

3

メンバーシップをチェックする必要がある場合、レディリストはおそらく最良のデータ構造ではありません。 msgmash.comが言っているように、この目的のためにセットが優れています。もしそれがユーザリストであれば、私は各要素がユニークであると推測していますか?その場合、セットはあなたが望むものです。

何らかの理由でリストが必要な場合は、リスト全体を取り出してそれを反復する(次善となる)以外は、LINSERTの値の前または後に新しい値を設定するか、値が存在しない場合は-1を返します。ただし、値が存在する場合は、挿入したばかりの要素を削除する必要があります。同様の方法でLREMを使用することもできます。

もう一度やり直してみてください。

いつものように、私はあなたがthe documentation for Redis commandsを読むことをお勧めします - それは非常に良いと明確なドキュメントです。

1

あなたがどうにかしてユーザーを何らかの方法で並べ替えたいと思えば、実際にはソートされたセットを使用して各要素にスコアがあり、リストは、アクセスはほぼO(1)

関連する問題