想修改支持duplicatekey，还是有点复杂