Я использую Redis для восстановления местоположения для указанного c IP в указанный c день.
Используйте ключ Redis: geoip.zset
для хранения следующих данных:
row | value | score
--- | ------------------------- | -----
1 | 2020-02-20:100.100.101.2 | 18312
2 | 2020-02-20:110.81.152.217 | 18312
- Счет означает дни с 1970-01-01. например: для '2020-02-20' будет 18312
- Значение до ":" - это дата, когда я получил IP (после ":")
Позднее задача разрешит местоположение по IP, я сохраню их обратно в redis, как это:
row | value | score
--- | -------------------------------------------------- | -----
1 | 2020-02-20:100.100.101.2@Taiwan/Taiwan/Taipei City | 18312
2 | 2020-02-20:110.81.152.217@China/Fujian/Fuzhou | 18312
Я нашел ключевое слово в Google redis update zset
, но большинство статей сосредоточено на наборе отсортированных обновлений.
Знаю, я использую глупый метод:
- Получить все значения по счету
- Удалить по счету
- Для-l oop, чтобы определить местоположение, и объедините результат
- For-l oop для восстановления в redis
Любая хорошая идея или более разумный рабочий процесс будут благодарны.