ホームページ  >  に質問  >  本文

如何删除redis的hash结构中第一个域?

例如:

user:1 name "zhangsan"
user:1 num "001"

user:2 name "lisi"
user:2 num "002"

user:3 name "wang"
user:3 num "003"

在不指定user:1的情况下删除第一条域user:1。
其实需求类似list中的lpop,但是还是现在需要hash这种数据结构来记录id。

PHP中文网PHP中文网2736日前718

全員に返信(3)返信します

  • 大家讲道理

    大家讲道理2017-04-24 09:14:30

    ハッシュ構造には順序がないので、最初の項目をどうやって削除しましたか? 最初の項目は、挿入した順序の最初の項目にすぎないと思いますが、申し訳ありません。ハッシュは挿入順序に従って並べ替えられないため、ハッシュを走査しても、必要な結果が得られない可能性があります。
    走査順序と挿入順序の一貫性を維持したい場合は、リストを使用できます。
    2 つの構造を通じてニーズを実現できます。1 つのリストはコレクションの順序を維持するために使用され、もう 1 つのハッシュは削除時にリストからデータを取り出し、キーに従って削除します。ハッシュで。

    返事
    0
  • PHPz

    PHPz2017-04-24 09:14:30

    そうですね、hKeys を使用してすべてのキー値を取得し、次にアプリケーション層で最初のキーを取得し、次に hget と hdel を同時に使用することしかできません

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-24 09:14:30

    ハッシュリンクリスト、//単一エンティティを削除
    $redis->hDel('hashkey', 'key1');

    //ハッシュ全体を削除
    $redis->del('hashkey');

    Redisキーを削除するには、文字列、ハッシュ、リスト、セットなど、RPOPでも同様に取り出すことができます。

    返事
    0
  • キャンセル返事