самый быстрый nosql для одного счетчика - PullRequest
1 голос
/ 24 ноября 2011

Mongodb имеет objectid в качестве первичного ключа по умолчанию. Это обеспечивает хорошую масштабируемость, но URL-адреса ужасны. Я предпочитаю простые идентификаторы в URL-адресе.Кроме того, гораздо надежнее поместить int () в тот самый случай, когда должен быть получен самый идентификатор чего-либо

Таким образом, идея заключается в следующем: перед тем, как любой объект, сохраненный через mongodb, будет сделан вызов другому nosql для получения глобального счетчикадолжно быть атомарным и возвращать int

INC Redis точно соответствует требованию. Вопрос в том ... действительно ли Redis - лучшее решение?Может быть, какой-нибудь другой nosql сделает простые приращения на один счетчик из умноженных клиентов быстрее, чем redis?

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Вы можете сохранить этот увеличивающийся числовой ключ в самой MongoDB, в одной коллекции документов, как что-то вроде { "_id": 1, "currentKey": 99 }.

. Используйте команду findAndModify для атомарного увеличения и извлечения currentKey value.

Лучше всего сохранить значение ObjectId MongoDB как _id и сохранить этот числовой ключ в отдельном уникально проиндексированном поле для использования при поиске URL.Таким образом, если вы хотите уменьшить масштаб, вы будете лучше подготовлены.

0 голосов
/ 24 ноября 2011

Вы можете создать свои собственные идентификаторы для mongodb, есть такая опция.Но тогда вам придется иметь дело с уникальностью.Почему вы хотите использовать другой nosql для этого?Я считаю, что это бессмысленно, если вы можете использовать собственные уникальные ключи и использовать их с mongo.

Redis INC используется для счетчиков. Если вы посмотрите на эту функциональность, у mongodb также есть оператор $ inc., что вы можете использовать в качестве счетчика.Но это не цель этого оператора.В основном они используются для аналитики и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...