guid.go 499 B

12345678910111213141516171819202122232425
  1. package guid
  2. import (
  3. "context"
  4. csnowflake "github.com/mhaya/extend/snowflake"
  5. "github.com/mhaya/game/game_cluster/internal/mdb"
  6. )
  7. // Next 生成唯一id
  8. // 以下几种方式仅供参考:
  9. // snowflake
  10. // redis
  11. func Next() string {
  12. node, _ := csnowflake.NewNode(1)
  13. var sid string
  14. for {
  15. id := node.Generate()
  16. sid = id.Base58()
  17. if mdb.RDB.HExists(context.Background(), "PlayerID", sid).Val() {
  18. continue
  19. }
  20. mdb.RDB.HSet(context.Background(), "PlayerID", sid, 1)
  21. return sid
  22. }
  23. }