Я использую Redis в качестве базы данных nosql (и действительно наслаждаюсь этим), но в некоторых случаях это не очень удобно (я знаю, что не каждая модель данных может использоваться с nosql, но все же ...).
Я хотел бы знать, есть ли правильный способ выполнить следующие действия в Redis или мне определенно нужно вместо этого использовать RDMS.
Допустим, у меня есть 2 объекта:
- User
- Asset
Актив может быть «квартирой», «зданием» или «домом».
Я использую список повторного ввода с именем «assets», который собирает активы, например:
assets = [asset:1, asset:2, ....]
Каждый актив представляет собой хеш-код:
asset:1 = {type: flat, value: 150000$}
Как получить список всех активов типа «квартира»?
Самым простым способом было бы перебрать список активов и проверить тип каждого из них, он линейный, что выглядит довольно неплохо.
Есть ли лучшее решение?
Может быть полезно иметь новый список: "квартиры", который будет содержать ссылки на активы с типом "квартира", но этот список новостей будет вызывать издержки, так как мы должны быть уверены, что он синхронизирован.
flats = [asset:1, asset:5, ...]
Но это приводит к репликации данных ... что плохо ... Это все еще способ использовать nosql?
Есть ли другие предложения?