如何删除redis的hash结构中第一个域?
PHP中文网
PHP中文网 2017-04-24 09:12:30
0
3
778

例如:

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中文网

认证高级PHP讲师

全員に返信(3)
大家讲道理

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

いいねを押す +0
PHPzhong

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

いいねを押す +0
大家讲道理

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

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート