64

= "match/123/result" として redis 名にハッシュを設定しています

「HSET」を使用してセットにエントリを追加し、「HGETALL」を使用して一度にすべてのエントリを取得しています

今、このハッシュセットをフラッシュしたいのですが、「HDELALL」のようなコマンドがありません

したがって、「DEL」を使用してハッシュセット名自体を削除しています。この場合、次のようにコマンドを起動します-

DEL match/123/result

一度にすべてを削除するには、このアプローチしか見つかりませんでした。他の解決策はありますか?

4

5 に答える 5

123

「myhash」ハッシュを削除またはフラッシュする場合。

以下のコマンドを使用してください。

redis-cli

redis> del myhash

問題が解決することを願っています。

于 2015-12-01T13:45:57.820 に答える
4

Here's a ruby-based way to remove all the keys in a Hash via a single, pipelined request:

def hdelall(key)
  r = Redis.new
  keys = r.hgetall(key).keys
  r.pipelined do
    keys.each do |k|
      r.hdel key, k
    end
  end
end
于 2015-08-13T22:08:20.957 に答える
4

キーのリストがある場合は、複数のキーで hdel を使用できますが、O(N) の複雑さがあるため、使用しないことを お勧めします。

デフォルトでは、redis は hashet 内で clear 関数を使用できないため、del を使用する必要があります

于 2015-08-15T15:16:09.090 に答える