На моем веб-сайте пользователям разрешено хранить одни и те же имена пользователей. Более того, в любой момент времени пользователь входит в систему, я временно сохраняю свое имя пользователя в ключе redis с ttl
10 минут.Поиск коллизий значений из изменяющейся коллекции ключей Redis
Вопрос: Есть ли способ - используя Redis - найти все интернет-пользователи за последние 10 минут, воспользовавшись тем же именем пользователя?
В настоящее время я извлекаю все значения ключей и нахожу коллизии в Python - что действительно не помогает, так как мне нужно делать это несколько раз во время выполнения (и есть много пользовательского трафика).
Я предполагаю, что я мог бы создать наборы с уникальным именем пользователя в качестве ключа и сохранить все идентификаторы пользователя в наборе, чтобы дать мне O (1) поиск пользователей, использующих одни и те же имена пользователей. Но тогда мне придется пожертвовать условием 10 минут ttl (которое мне нужно для каждого имени пользователя отдельно).
Btw Redis/Lua начинающий здесь, отсюда вопрос noob (если есть).
Круто! Это выглядит хорошо и, наконец, заставит меня написать свой первый правильный сценарий Lua. Я думал, что я буду хранить 'usernames.lua' локально, а затем называть его в python. Должен ли я использовать https://labix.org/lunatic-python, или я могу просто импортировать файл lua в качестве модуля, такого как обычные файлы py? –
Это еще один вопрос Hassan :) Следуйте этому примеру - https://pypi.python.org/pypi/redis#lua-scripting –
Gotcha! Как всегда, спасибо за то, что вы показали дорогу. –