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}