Я очень рекомендую Redis . Это хранилище ключей / значений с операциями set и list. Он также поддерживает атомарные операции для счетчиков. Существует клиент для Redis для Node.js, доступный на github . Вот как бы я реализовал ваши возможности:
Хранение голосов
INCR votes:option:<option>
Подведение итогов голосования
MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>
Предотвращение нескольких голосов (создать ключ блокировки с истекающим сроком действия для IP-адреса клиента)
EXPIRE lock:<encoded ip> 60