Redis хранит IP и список идентификаторов для каждого IP - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь сохранить IP-адрес пользователей, которые публикуют контент в течение 24 часов, поэтому в инструменте модерации число сообщений, созданных каждым IP-адресом, и эти идентификаторы сообщений доступны для просмотра, чтобы предотвратить спам. В Node.js у меня есть что-то вроде этого:

let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
rclient.set(`ip:${ip}:${id}`, 1, 'EX', 86400);

Оттуда я могу сделать это, чтобы проверить IP содержимого id

rclient.keys(`ip:*:${id}`, (err, reply) => console.log(reply));

, и я могу запустить это чтобы найти все сообщения, созданные с данного IP-адреса

rclient.keys(`ip:${ip}:*`, (err, reply) => console.log(reply));

Что мне интересно, так это то, есть ли способ также получить обе эти данные в нужное время прямо из redis: список IP-адресов и для каждый - список id сообщений, созданных с этого IP-адреса, например GROUP BY из SQL. Или есть ли лучший способ хранения информации так, как я хочу?

...