Например Redis — nosql, C, open/free, масштабируется, клиенты для многих популярных языков (в т.ч. java), простой протокол взаимодействия (напоминает memcache). Не уверен, но проверки на дубли в нем нет. Я структуру вижу так: {id:{md5:attach1}:{md5:attach2}:{md5:attachN}}