Вам не нужно определять конкретное пространство имен для этого. С Redis вы можете использовать команду EXPIRE , чтобы установить тайм-аут для каждого ключа.
Общая политика в отношении срока действия ключа определена в файле конфигурации:
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached? You can select among five behavior:
#
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys->random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
#
Для вашей цели должна быть установлена политика volatile-lru.
Вам просто нужно вызвать EXPIRE на те клавиши, которые вы хотите сохранить, и позволить Redis их выселить. Однако обратите внимание, что трудно гарантировать, что самые старые ключи будут выселены первыми после срабатывания тайм-аута. Больше объяснений здесь .
Однако для вашего конкретного случая использования я бы не использовал срок действия ключа, а скорее попытался бы имитировать ограниченные коллекции. Если фид активности для данного пользователя представлен в виде списка объектов, легко выполнить LPUSH для объектов деятельности и использовать LTRIM , чтобы ограничить размер списка. Вы получаете поведение FIFO и бесплатно контролируете потребление памяти.
UPDATE:
Теперь, если вам действительно нужно изолировать данные, у вас есть две основные возможности с Redis:
с использованием двух разных баз данных. База данных Redis идентифицируется целым числом, и вы можете иметь несколько из них на экземпляр. Используйте команду select для переключения между базами данных. Базы данных можно использовать для изоляции данных, но не для присвоения им различных свойств (например, политики истечения срока действия).
с использованием двух разных экземпляров. Пустой экземпляр Redis - очень легкий процесс. Таким образом, некоторые из них могут быть запущены без проблем. На самом деле это лучший и более масштабируемый способ изолировать данные с помощью Redis. Каждый экземпляр может иметь свою собственную политику (включая политику выселения). Клиенты должны открыть столько соединений, сколько экземпляров.
Но опять же, вам не нужно изолировать данные для реализации требований вашей политики выселения.