Laravel Redis / Как у вас грипп sh только конкретная c база данных redis? - PullRequest
1 голос
/ 07 августа 2020

Как вы знаете, Redis может иметь несколько баз данных, в моей laravel настройке я определил 3 из них и использовал как минимум 2

'0' (default)
'1' (cache)
'2' (queue)

Это то, что я установил в config / database. php

Кроме того, из-за определенной необходимости я очищаю весь кеш, используя метод flushall():

@Cache::flush();
@Redis::flushall();

Однако он также очищает задания очереди, которые я не хочу . Так есть ли способ использовать только flu sh базу данных 0 и базу данных 1, а не базу данных 2?

1 Ответ

2 голосов
/ 07 августа 2020

Вы можете использовать команды select и flushdb вместе для flu sh only selected database.

Выберите логическую базу данных Redis с указанным нулем на основе numeri c index. Новые соединения всегда используют базу данных 0.

Удалить все ключи текущей выбранной БД.

Следующее будет выбирать базу данных 1 первой и flu sh только 1.

Redis::select(1);
Redis::flushdb();

Он будет выполнять следующие команды в redis:

1596794331.068032 [0 127.0.0.1:55088] "SELECT" "1"
1596794331.071332 [1 127.0.0.1:55088] "FLUSHDB"
...