Мы хотели бы, чтобы RPUSH/LPUSH ключ с пустым списком.
Это по соображениям непротиворечивости: когда ключ считывается с LRANGE, чем пустой список или нет, остальная часть кода ведет себя одинаково.
Почему факт, что если ключ имеет пустой список, он является проблемой?
Поскольку мы используем Redis в качестве кеша и хотели бы отличить 2 ситуации:
1. Конкретный ключ с соответствующими значениями еще не был кэширован. В этом случае мы хотим рассчитать значения (занимает много времени) и кэшировать их. Результатом вычисления может быть пустой список.
2. Ключ с пустым списком уже был кеширован. В этом случае мы хотели бы не выполнять вычисления и возвращать пустой список.
Redis - как к RPUSH/LPUSH пустым списком
Следующие параметры не работают:
1. Клавиша rpush -> не найдено значение списка с «неправильным количеством аргументов».
2. Клавиша rpush [] -> добавляет '[]' Item
The (некрасиво) решение, которое мы в настоящее время используют в сохранении одного пункта списка с "EMPTY-ITEM" пункта, и проверяя это, когда читаем список.
Любые идеи?
Спасибо