Можно ли истечь каждое значение в Redis? - PullRequest
0 голосов
/ 19 апреля 2019

Я хотел бы использовать redis для обработки статьи (пост). Я хочу хранить idex каждой статьи, прочитанной каждым пользователем, в redis.

Таким образом, ключ - это userId, а значение (может быть списком) - список указателей статей. Я хочу установить время истечения для каждого значения индекса.

Возможно ли это? и я хочу знать, команды redis.

- дополнительная информация

Я хочу ввести ключ - значение (список) и истечь каждое значение в списке. Если истекает ключ, я не хочу, чтобы все значения были потеряны. Я хочу удалить конкретный ключ.

данные показывают под, Сонгкей - [1,2,3,4,5] истекает 1: 100мс, 2: 200мс, 3: 30мс ... вот так.

Было бы неплохо, если бы вы могли порекомендовать соответствующую команду redis.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Дизайн и реализация списка redis не поддерживают эту операцию. Но есть и другой способ реализовать это.

написать:

zadd user_id article_id expired_time

читать:

zrange user_id 0 -1 WITHSCORES  

Когда будет прочитано требование req, извлеките все article_id, прочитанные этим пользователем, и удалите весь просроченный элемент:

for i in res:
  if i.score < time.now()
    zrem user_id i.article_id
0 голосов
/ 19 апреля 2019

Да, это возможно возможно

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> 

Вы можете установить TTL (время жизни) на ключ, срок действия которого истекает через заданное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...