|<----timestamp---->|<-----ExtraID----->| layout: [-------------------|----|------|-------] 64 32 0 |<InstID>|<-DataID->|<---NextID--->| ExtraID: [--------|----------|--------------] 32 24 14 0 InstID: Machine Instance ID, like IP, 8bit. DataID: Data ID, like Mysql table ID Or UserID, 10bit. NextId: A Increment Number in the same second, 14bit. import "github.com/HaroldHoo/id_generator" // Set the cacheFile id_generator.SetDefaultCacheFile("/dev/shm/id_generator") // Machine Instance ID, like IP, 8bit id_generator.DefaultInstanceId = 154 // Data ID, like Mysql table ID, 10bit var dataID = uint64(256) // generate id,_ := id_generator.NextId(dataID)