Если вам нужны вторичные индексы, как вы описываете, то вы не можете просто использовать любую нереляционную базу данных.Базы данных BigTable, такие как Cassandra (и, возможно, другие), допускают вторичные индексы.
Если вам нужно искать вещи в хранилище Key-Value, основываясь на значениях , вам нужно получитьтворческий.Вы можете:
1) Создать свои собственные ключи, которые указывают на оригинальные ключи, а затем поддерживать эти пары при новых вставках, обновлениях и удалениях исходных пар.
2) Просто посмотрите на каждое значение, грубую силу,в автономном режиме, один раз в день и сохранить ответ где-нибудь.Понятно, что это не сработает, если вам нужны новые данные сразу.
Сортировка данных, вероятно, потребуется выполнить на прикладном уровне или с использованием пользовательских отсортированных наборов, если вы используете метод (1) и Redis.