Я пытаюсь сохранить некоторые данные в Redis.
Рассмотрим следующий пример.
У человека разные автомобили в разные годы.
В настоящее время я храню такие ключи -
cars:johndoe:1991:mercedes model s1 engine v1
cars:johndoe:1992:mercedes model s1 engine v1
cars:jane:1992:BMW model s2 engine v2
cars:foobar:1991:honda model s3 engine v3
Преимущество этого в том, что я могу использовать подстановочный знак с ключом для получения разных данных. например
1. all cars bought in 1991
keys cars:*:1991:*
2. all cars owned by johndoe
keys cars:johndoe:*
и т.п.
Но согласно документации Redis, команда keys
с подстановочным знаком неэффективна, так как она ищет все ключи.
Поэтому я решил использовать наборы для этих данных. Но для достижения тех же результатов, что и выше, мне нужно много разных наборов типов, например
1. sadd cars cars:johndoe:1991:mercedes cars:johndoe:1992:mercedes cars:jane:1992:BMW cars:foobar:1991:honda
2. sadd cars:johndoe cars:johndoe:1991:mercedes cars:johndoe:1992:mercedes
3. sadd cars:jane cars:jane:1992:BMW
4. sadd cars:foobar cars:foobar:1991:honda
5. sadd cars:1991 cars cars:johndoe:1991:mercedes cars:foobar:1991:honda
Таким образом, мне нужно добавить и удалить много ключей для одной операции.
Это единственный способ? Пожалуйста, дайте мне знать, есть ли более эффективное решение для этой проблемы.
Заранее спасибо.