Есть ли способ удалить все клиентские соединения Redis?
Есть ли способ удалить все клиентские соединения Redis с помощью одной команды?
Я знаю, что его можно удалить по IP: PORT
CLIENT KILL addr:port
Также я обнаружил, что это можно сделать с Redis 2.8.12.
Но
Я ничего не мог найти.
Ответ 1
CLIENT KILL может принимать аргумент TYPE, который может быть одним из трех типов соединений; normal, slave и pubsub.
Вы можете убить все открытые соединения, отправив следующие три команды:
CLIENT KILL TYPE normal
CLIENT KILL TYPE slave
CLIENT KILL TYPE pubsub
Обратите внимание, что вы можете пропустить последние два, если вы не используете их (подчиненные и pubsub-соединения).
Вы также можете добавить SKIPME no для убийцы соединений kamikaze.
Ответ 2
Итак, SHUTDOWN - это, безусловно, самый простой способ, особенно в dev.
Однако, хотя у Redis нет варианта CLIENT KILL *, вы можете script его. AFAIR вы могли бы даже сделать это в Lua, но сейчас я проверил и CLIENT LIST заблуждался, поэтому я предполагаю, что это изменилось. Тем не менее, это довольно легко сделать с помощью CLI - это, похоже, делает трюк: