Я хочу удалить ключи, соответствующие «пользователю».В redis, как мне удалить ключи?
как это сделать в redis командной строки?
Я хочу удалить ключи, соответствующие «пользователю».В redis, как мне удалить ключи?
как это сделать в redis командной строки?
Это функция не здесь, чтобы сделать это за один снимок (комментарии к DEL
documentation). К сожалению, вы остаетесь только с использованием KEYS
, обводя результаты, а затем используя DEL
, чтобы удалить их.
Как насчет использования bash для помощи?
for key in `echo 'KEYS user*' | redis-cli | awk '{print $1}'`
do echo DEL $key
done | redis-cli
Активизировать через него:
echo 'KEYS user*' | redis-cli | awk '{print $1}'
- получить все ключи и вырезать дополнительный текст, который вы не хотите с AWK.echo DEL $key
- для каждого из них создайте оператор эха, чтобы удалить его.| redis-cli
- принять DEL заявления и передать их обратно в cli.Не предлагая, чтобы это был наилучший подход (у вас могут быть некоторые проблемы, если некоторые из ваших имен пользователей имеют пробелы в них, но, надеюсь, вы получите точку).
В дополнение к ответу orangeoctopus вам не нужны echo
и труба, вы можете передавать команды в качестве аргументов в redis-cli
. Это означает, что вы можете сделать
for key in `redis-cli "KEYS" "user*" | awk '{print $1}'`
do redis-cli "DEL" "$key"
done
Другой компактный один вкладыш я использую, чтобы сделать то, что вы хотите:
redis-cli KEYS "user*" | xargs redis-cli DEL
Это замечательно, спасибо. Печально, что Redis не имеет этой функциональности изначально. – snapfractalpop
Если у вас есть множественные базы данных (области ключей), то это трюк: Предположим, вам нужно удалить ключи в db3: префикс 'redis-cli -n 3 KEYS: *" | xargs redis-cli -n 3 DEL' – Christoffer
Есть ли один лайнер, если вам нужно предоставить AUTH (то есть логин) до выполнения команды delete? – thames
Я знаю, что это старый, но для тех из вас сюда образуют Google:
Я только что опубликовал утилиту интерфейса командной строки для npm и github, которая позволяет вам удалять ключи, соответствующие заданному шаблону (даже , или как вы спрашивали пользователя) из базы данных Redis.
Вы можете найти утилиту здесь:
Использование awk
, найти все совпадающие ключи от Redis с помощью redis-cli KEYS
команды и трубу redis-cli DEL
команды.
redis-cli KEYS "user*" | awk '{ system("redis-cli DEL " $1) }'
При использовании oneliner вы можете отредактировать шаблон в случае, если он ускользает от определенных символов. Например, чтобы удалить образцы, как «\ тест б \ б» использования:
redis-cli --raw KEYS '\\b*' | sed 's/\\b/\\\\b/g' | xargs redis-cli del
Используйте это, чтобы удалить REDIS ключи, имеющие обратные слэши, кавычки, двойные кавычки или пробелы:
redis-cli KEYS "user*" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | sed "s/'/\\\\'/g" | sed 's/ /\\ /g' | xargs redis-cli DEL
в Redis вы не удаляйте ключи, но ключи удаляются. –