idgen(distributed unique ID generator)
Distributed unique ID generation using Redis as the coordination backend, suitable for high-concurrency scenarios.
The idgen module provides distributed unique ID generation using Redis as the coordination backend, suitable for high-concurrency scenarios.
Features
- Distributed unique ID generation
- Redis-based coordination
- Batch ID generation support
- Time-based ID structure
- Collision avoidance mechanisms
Basic Usage
1package main
2
3import (
4 "context"
5 "fmt"
6
7 "github.com/redis/go-redis/v9"
8
9 "github.com/crazyfrankie/frx/idgen"
10)
11
12func main() {
13 // Initialize Redis client
14 rdb := redis.NewClient(&redis.Options{
15 Addr: "localhost:6379",
16 })
17
18 // Create ID generator
19 generator, err := idgen.New(rdb)
20 if err != nil {
21 panic(err)
22 }
23
24 ctx := context.Background()
25
26 // Generate single ID
27 id, err := generator.GenID(ctx)
28 if err != nil {
29 panic(err)
30 }
31 fmt.Printf("Generated ID: %d\n", id)
32
33 // Generate multiple IDs (batch)
34 ids, err := generator.GenMultiIDs(ctx, 10)
35 if err != nil {
36 panic(err)
37 }
38 fmt.Printf("Generated IDs: %v\n", ids)
39}