http://www.infoq.com/presentations/newport-evolving-key-value-programming-model - это видео о магазинах KV, и вся эта посылка заключается в том, что redis поддерживает стиль на основе столбцов для хранения атрибутов объекта под отдельными ключами, а не сериализации объекта и хранения его под один ключ.хранилища ключевых значений для расширяемых объектов
(Этот вопрос не Redis-специфичен, но более общий стиль и лучшая практика для КВ магазинов в целом.)
Вместо сгустка, скажем, «лицо», Redis поощряет основанный на столбцах, где атрибуты в объекте хранятся как отдельный ключ, например
R.set("U:123:firstname","Billy")
R.set("U:123:surname","Newport")
...
Мне любопытно, если это лучшая практика, и если люди принимают разные подходы.
E.g. вы можете «расчешите» объект под одним ключом. Это имеет преимущество быть неправдоподобным или установить в одном запросе
Или человек может стать список с первым пунктом является индексом имя поля или такой?
Это заставило меня задуматься - я хотел бы хранить иерархический ключ, например.
R.set(["U:123","firstname"],"Billy")
R.set(["U:123","surname"],"Newport")
R.get(["U:123"]) returns [("firstname","Billy"),("surname","Newport")]
А потом добавить в транзакциях:
with(R.get(["U:132"]) as user):
user.set("firstname","Paul")
user.set("lastname","Simon")
С точки зрения масштабирования, группирования получает и устанавливает будет иметь важное значение?
Существуют ли ключевые магазины, которые имеют поддержку для этого или имеют другие применимые подходы?