- UserViewEvent
- UserSearchEvent< /li>
UserOrderEvent
В настоящее время я использую отсортированные наборы Redis (zset) для хранения каждого типа событий. событие, отсортированное по временной метке. Хотя этот подход работает хорошо, для чтения данных для каждого типа событий требуется три отдельных вызова Redis. Я хочу оптимизировать эти вызовы Redis.
Вот несколько возможных подходов, которые я рассмотрел:
[*]
Использование хешей Redis:
Хеши Redis не поддерживают вложенные наборы или списки в качестве значений. Это означает, что мне нужно будет сериализовать входные данные перед сохранением и выполнить атомарные операции, читая, десериализовывая и затем обновляя данные. Это может быть неэффективно, поскольку перед каждой записью необходимо выполнить вызов чтения.
[*]Использование хэшей Redis со сценариями Lua:
Хотя использование хэши со сценариями Lua потенциально могут сократить количество сетевых обращений, но для этого все равно требуются дополнительные вызовы Redis
[*]Использование сценариев Lua для чтения всех связанных отсортированных наборов:
Сохранение текущей архитектуры с zset, но использование сценариев Lua для чтения всех связанных отсортированных наборов за один вызов. Этот подход может минимизировать количество сетевых обращений за счет получения данных из нескольких отсортированных наборов за один раз, но все же внутри, я думаю, будет несколько вызовов Redis
Есть ли у вас какие-либо рекомендации или дополнительные подходы для оптимизации этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/788 ... t-in-redis