8 ответов:
это не функция прямо сейчас, чтобы иметь возможность сделать в одном кадре (см. комментарии в
DELдокументация). К сожалению, вы остались только с помощьюKEYSпробегаем по результатам, а затем с помощьюDELдля удаления каждого из них.как насчет использования bash немного, чтобы помочь?
for key in `echo 'KEYS user*' | redis-cli | awk '{print }'` do echo DEL $key done | redis-cliчтобы пройти через него:
echo 'KEYS user*' | redis-cli | awk '{print }'-- получить все ключи и удалить лишний текст, который вы не хотите с на awk.echo DEL $key-- для каждого из них создайте оператор echo, чтобы удалить его.| redis-cli-- возьмите операторы DEL и передайте их обратно в cli.не предполагая, что это лучший подход (у вас могут быть некоторые проблемы, если некоторые из ваших имен пользователей имеют пробелы в них, но, надеюсь, вы получите точку).
еще один компактный однострочный я использую, чтобы сделать то, что вы хотите:
redis-cli KEYS "user*" | xargs redis-cli DEL
далее к ответу orangeoctopus, вам не нужно
echoи pipe, вы можете передавать команды в качестве аргументов вredis-cli. Это означает, что вы можете сделатьfor key in `redis-cli "KEYS" "user*" | awk '{print }'` do redis-cli "DEL" "$key" done
используя
awk, найти все соответствующие ключи от redis с помощьюredis-cli KEYSкоманда и труба к .redis-cli KEYS "user*" | awk '{ system("redis-cli DEL " ) }'
Я знаю, что это старый, но для тех из вас, кто приходит сюда форма Google:
Я только что опубликовал утилиту интерфейса командной строки для npm и github, которая позволяет удалять ключи, соответствующие заданному шаблону (даже , или, как вы просили пользователей) из базы данных Redis для.
вы можете найти здесь, утилита:
при использовании oneliner, вы можете редактировать шаблон в случае, если он экранирует определенные символы. Например, чтобы удалить шаблоны типа '\B test \b ' используйте:
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
Comments