Files
redis-go/lib/utils/rand_string.go
finley bf7f628810 raft cluster
wip: raft does not care about migrating

wip: optimize code

wip: raft election

wip

wip: fix raft leader missing log entries

wip

fix a dead lock

batch set slot route

wip: raft persist

wip

refactor cluster suite

remove relay

rename relay2

refactor: allow customizing client factory

test raft

refactor re-balance

avoid errors caused by inconsistent status on follower nodes during raft commits

test raft election
2023-06-10 22:48:24 +08:00

41 lines
855 B
Go

package utils
import (
"math/rand"
"time"
)
var r = rand.New(rand.NewSource(time.Now().UnixNano()))
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
// RandString create a random string no longer than n
func RandString(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = letters[r.Intn(len(letters))]
}
return string(b)
}
var hexLetters = []rune("0123456789abcdef")
func RandHexString(n int) string {
b := make([]rune, n)
for i := range b {
b[i] = hexLetters[r.Intn(len(hexLetters))]
}
return string(b)
}
// RandIndex returns random indexes to random pick elements from slice
func RandIndex(size int) []int {
result := make([]int, size)
for i := range result {
result[i] = i
}
rand.Shuffle(size, func(i, j int) {
result[i], result[j] = result[j], result[i]
})
return result
}