Подтвердить что ты не робот

Удалите полный хешсет сразу в redis

У меня есть хэш-набор в именах redis как = "match/123/result"

Я добавляю записи для установки с использованием "HSET" и извлечения всех записей за раз, используя "HGETALL"

теперь, я хочу сбросить этот хеш-набор, но нет команды типа "HDELALL"

поэтому я использую "DEL", чтобы удалить имя самого хэш-набора, в этом случае я запускаю команду как это -

DEL match/123/result

Можно найти только этот подход, чтобы удалить все сразу. Есть ли другое решение?

4b9b3361

Ответ 1

Если вы хотите удалить или очистить хэш "myhash".

Пожалуйста, используйте следующую команду:

redis-cli

redis> del myhash

Надеюсь, что это решит проблему.

Ответ 2

Если у вас есть список ключей, вы можете использовать hdel с несколькими ключами Но я бы рекомендовал не использовать его, поскольку он имеет сложность O (N).

По умолчанию redis не разрешает ясную функцию внутри хэша, поэтому вам придется использовать del

Ответ 3

Здесь рубиновый способ удаления всех ключей в Hash с помощью одного конвейерного запроса:

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

Ответ 4

Это должно работать на Python (из книги "Redis in Action" )

all_keys = list(conn.hgetall('some_hash_name').keys())
conn.hdel('some_hash_name', *all_keys)

Ответ 5

Вы можете использовать hdel *, чтобы удалить все хеш-значения в этом ключе