Отредактированный ответ в соответствии с примером, добавленным к вопросу:
Что нужно понять о Волдеморте, так это то, что это очень простое хранилище ключей. Насколько я знаю об этом, only вещь, которую вы можете сделать, это сохранить значение под ключом, а затем извлечь эти значения по ключу. Так что для вашего примера, если вы действительно хотите использовать Voldemort, у вас есть несколько вариантов.
Так, например, вы сказали, что храните данные для пользователей. Итак, у вас может быть что-то вроде этого:
Key = user-Chad
Value = Name:Chad Birch, Age:26, Sex:Male
Теперь, если я хочу опубликовать новое сообщение в блоге, вам также нужно сохранить его под ключом. Таким образом, вы можете сделать что-то вроде этого:
Key = blog-Chad1
Value = Here is my very first blog post.
Теперь ваша проблема в том, что вам нужен какой-то способ поиска всех сообщений в блоге, сделанных пользователями с Sex: Male, но нет способа получить эти данные напрямую. На этом этапе вы должны либо:
- Вытащите всех пользователей, проверьте, являются ли они мужчинами, и если они есть, вытащите их сообщения в блоге.
- Начните хранить больше вещей в других парах ключ-значение, чтобы вы могли посмотреть это.
Чтобы реализовать # 2, вы можете добавить еще одну пару, например:
Key = search-Sex:Male
Value = Chad1 Chad2 Steve1 ...
Затем, когда кто-то выполняет поиск по запросу «Пол: мужчина», вы извлекаете значение для этого, разделяете его и затем извлекаете все эти сообщения в блоге.
Это имеет смысл? Использование k-v хранилища несколько отличается от базы данных, потому что вы теряете все эти реляционные способности.