Я видел этот пример при удалении ключа из шаблона redis usign
You can delete multiple keys with just one DEL command
DEL key1 key2 key3......
You can also delete all keys matching an expression this way
redis-cli KEYS "temp_cart:user*" | xargs redis-cli DEL
Скажем, у меня есть ключи: key1a, key2b, key7a,.... и я бы хотел удалить все, что начинается с ключа *
как я могу сказать, что для книжного дела это нужно? когда я передаю строку в свою функцию invalidate с помощью "keys *", похоже, это не трюк.
У Redis нет операции "удалить по шаблону". Также обратите внимание, что вы никогда не должны использовать KEYS
на производстве. В худшем случае вы должны использовать SCAN
. К счастью, BookSleeve и SE.Redis автоматически используют SCAN
когда они доступны. Для этого вам придется выполнять итерацию (через SCAN
) и выдавать многопрофильные команды DEL
. Что, в частности, именно то, что xargs
делает в вашем примере.
SCAN
когда он доступен; вы должны быть в порядке, используя Find
, но вы можете проверить через MONITOR
что он использует SCAN
а не KEYS
.