Как атомарно удалить ключи, соответствующие шаблону, используя Redis

В приведенном ниже коде отображаются только первые ключевые слова в базе данных!

"SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')"

Попробуйте это, если вы хотите найти все ключевые слова из базы данных

"SELECT wrd FROM tablename WHERE wrd LIKE :partial";
$stmt->execute(array(':partial'=>'%'.$YourVarHere.'%'));
528
задан pistacchio 31 January 2014 в 11:22
поделиться

4 ответа

Я попробовал большинство упомянутых выше методов, но они не работали на меня после некоторых поисков, я нашел эти точки:

  • , если у Вас есть больше чем один дб на советах, необходимо определить базу данных с помощью -n [number]
  • , если у Вас есть несколько использования ключей del, но если существуют тысячи или миллионы ключей, которые лучше использовать unlink, потому что удаляют связь, не блокируется , в то время как del блокируется, для получения дополнительной информации посетите эту страницу , удаляют связь по сравнению с del
  • также keys, похожи на del, и блокируется

, таким образом, я использовал этот код к клавишам Delete шаблоном:

 redis-cli -n 2 --scan --pattern '[your pattern]' | xargs redis-cli -n 2 unlink 
1
ответ дан mahdi yousefi 4 November 2019 в 07:58
поделиться
  • 1
    @stuckj это doesn' t решают OP' s проблема. setToValue позволяет Вам блокировать метод, который берет аргумент указателя. Обычно метод присваивал бы некоторое значение тому указателю. setToValue позволяет Вам присваивать значение, когда тупик прерывает вызов. OP пытается сделать свободное соответствие примитивного аргумента. @Andrew_Park имеет (теперь) корректный ответ, для использования ignoringNonObjectArgs. – Christopher Pickslay 5 December 2013 в 07:02

Ниже команды, работавшей для меня.

redis-cli -h redis_host_url KEYS "*abcd*" | xargs redis-cli -h redis_host_url DEL
-1
ответ дан 22 November 2019 в 22:20
поделиться

Реклама теперь, можно использовать клиент советов и выполнить, первое СКАНИРОВАНИЕ (поддерживает сопоставление с образцом), и затем DEL каждый ключ индивидуально.

Однако существует проблема об официальных советах GitHub для создания patter-matching-del здесь , пойдите, показывают ему некоторую любовь, если Вы находите это полезным!

0
ответ дан 22 November 2019 в 22:20
поделиться

Другие ответы не могут работать, если Ваш ключ содержит специальные символы - Guide$CLASSMETADATA][1], например. Обертывание каждого ключа в кавычки гарантирует, что они правильно удалены:

redis-cli --scan --pattern sf_* | awk '{print $1}' | sed "s/^/'/;s/$/'/" | xargs redis-cli del
-1
ответ дан 22 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: