Требования: Некоторые данные необходимо экспортировать из кэша Redis через дикие карты для устранения неполадок. NET/C# использует клиент StackExchange.Redis для обработки кэша Redis и экспорта его как txt-файла на локальный диск. Принцип заключается в том, чтобы фильтровать все ключи через команду SCAN, а затем запрашивать значение каждого ключа.
Команда KEYS в Redis возвращает все совпадающие ключи сразу, при многом ключей в Redis это скрытая угроза для использования памяти и сервера Redis, а для версий Redis 2.8 и выше она даёт нам более удобную команду для сканирования ключей.
SCAN возвращает лишь небольшое количество элементов за выполнение, поэтому его можно использовать в производственных средах без проблем, которые могут блокировать сервер, такие как команды KEYS или SMEMBERS.
Команда SCAN — это итератор на основе курсора. Это означает, что каждый раз при вызове команды необходимо использовать курсор, вернутый предыдущим вызовом, в качестве аргумента для следующего вызова, чтобы продолжить предыдущий процесс итерации
Когда параметр курсора (то есть курсора) команды SCAN установлен в 0, сервер начинает новую итерацию, и когда сервер возвращает пользователю курсор со значением 0, итерация заканчивается.
Обзор:
Сначала мы вставляем 100 000 полосий в RedisUser:GUID 格式Данные, показанные на рисунке ниже:
.NET/C# использует StackExchange.Redis для нечеткого запроса данных "User:*" и вывода их на ваш локальный диск в виде txt-файла, исходный код выглядит следующим образом:
Визуализации следующие:
(Конец)
|