Documentation
¶
Index ¶
- Constants
- func AppendArg(b []byte, v interface{}) []byte
- func GetAddr(addr string) string
- func ReplaceSpaces(s string) string
- func RetryBackoff(retry int, minBackoff, maxBackoff time.Duration) time.Duration
- func Sleep(ctx context.Context, dur time.Duration) error
- func ToFloat(val interface{}) float64
- func ToInteger(val interface{}) int
- func ToLower(s string) string
- func ToString(val interface{}) string
- func ToStringSlice(val interface{}) []string
- type DefaultLogger
- type FIFOSemaphore
- type FastSemaphore
- type LogLevelT
- type Logging
- type Once
Constants ¶
const RedisNull = "<nil>"
Variables ¶
This section is empty.
Functions ¶
func ReplaceSpaces ¶ added in v9.5.1
func RetryBackoff ¶
func ToStringSlice ¶ added in v9.5.4
func ToStringSlice(val interface{}) []string
Types ¶
type DefaultLogger ¶ added in v9.15.0
type DefaultLogger struct {
// contains filtered or unexported fields
}
type FIFOSemaphore ¶ added in v9.17.0
type FIFOSemaphore struct {
// contains filtered or unexported fields
}
FIFOSemaphore is a channel-based semaphore with strict FIFO ordering. Unlike FastSemaphore, this guarantees that threads are served in the exact order they call Acquire(). The channel is pre-filled with tokens: Acquire = receive, Release = send. Closing the semaphore unblocks all waiting goroutines.
Performance: ~115 ns/op with zero allocations (slower than FastSemaphore due to timer allocation). Fairness: Strict FIFO ordering guaranteed by Go runtime.
func NewFIFOSemaphore ¶ added in v9.17.0
func NewFIFOSemaphore(capacity int32) *FIFOSemaphore
NewFIFOSemaphore creates a new FIFO semaphore with the given capacity.
func (*FIFOSemaphore) Acquire ¶ added in v9.17.0
Acquire acquires a token, blocking if necessary until one is available. Returns an error if the context is cancelled or the timeout expires. Always uses timer to guarantee FIFO ordering (no fast path).
func (*FIFOSemaphore) AcquireBlocking ¶ added in v9.17.0
func (s *FIFOSemaphore) AcquireBlocking()
AcquireBlocking acquires a token, blocking indefinitely until one is available.
func (*FIFOSemaphore) Close ¶ added in v9.17.0
func (s *FIFOSemaphore) Close()
Close closes the semaphore, unblocking all waiting goroutines. After close, all Acquire calls will receive a closed channel signal.
func (*FIFOSemaphore) Len ¶ added in v9.17.0
func (s *FIFOSemaphore) Len() int32
Len returns the current number of acquired tokens.
func (*FIFOSemaphore) Release ¶ added in v9.17.0
func (s *FIFOSemaphore) Release()
Release releases a token back to the semaphore.
func (*FIFOSemaphore) TryAcquire ¶ added in v9.17.0
func (s *FIFOSemaphore) TryAcquire() bool
TryAcquire attempts to acquire a token without blocking. Returns true if successful, false if no tokens available.
type FastSemaphore ¶ added in v9.17.0
type FastSemaphore struct {
// contains filtered or unexported fields
}
FastSemaphore is a channel-based semaphore optimized for performance. It uses a fast path that avoids timer allocation when tokens are available. The channel is pre-filled with tokens: Acquire = receive, Release = send. Closing the semaphore unblocks all waiting goroutines.
Performance: ~30 ns/op with zero allocations on fast path. Fairness: Eventual fairness (no starvation) but not strict FIFO.
func NewFastSemaphore ¶ added in v9.17.0
func NewFastSemaphore(capacity int32) *FastSemaphore
NewFastSemaphore creates a new fast semaphore with the given capacity.
func (*FastSemaphore) Acquire ¶ added in v9.17.0
Acquire acquires a token, blocking if necessary until one is available. Returns an error if the context is cancelled or the timeout expires. Uses a fast path to avoid timer allocation when tokens are immediately available.
func (*FastSemaphore) AcquireBlocking ¶ added in v9.17.0
func (s *FastSemaphore) AcquireBlocking()
AcquireBlocking acquires a token, blocking indefinitely until one is available.
func (*FastSemaphore) Close ¶ added in v9.17.0
func (s *FastSemaphore) Close()
Close closes the semaphore, unblocking all waiting goroutines. After close, all Acquire calls will receive a closed channel signal.
func (*FastSemaphore) Len ¶ added in v9.17.0
func (s *FastSemaphore) Len() int32
Len returns the current number of acquired tokens.
func (*FastSemaphore) Release ¶ added in v9.17.0
func (s *FastSemaphore) Release()
Release releases a token back to the semaphore.
func (*FastSemaphore) TryAcquire ¶ added in v9.17.0
func (s *FastSemaphore) TryAcquire() bool
TryAcquire attempts to acquire a token without blocking. Returns true if successful, false if no tokens available.
type LogLevelT ¶ added in v9.15.0
type LogLevelT int
LogLevelT represents the logging level
const ( LogLevelError LogLevelT = iota // 0 - errors only LogLevelWarn // 1 - warnings and errors LogLevelInfo // 2 - info, warnings, and errors LogLevelDebug // 3 - debug, info, warnings, and errors )
Log level constants for the entire go-redis library
var LogLevel LogLevelT = LogLevelError
func (LogLevelT) DebugOrAbove ¶ added in v9.15.0
func (LogLevelT) InfoOrAbove ¶ added in v9.15.0
func (LogLevelT) String ¶ added in v9.15.0
String returns the string representation of the log level
func (LogLevelT) WarnOrAbove ¶ added in v9.15.0
type Logging ¶
var Logger Logging = NewDefaultLogger()
Logger calls Output to print to the stderr. Arguments are handled in the manner of fmt.Print.
func NewDefaultLogger ¶ added in v9.15.0
func NewDefaultLogger() Logging
type Once ¶
type Once struct {
// contains filtered or unexported fields
}
A Once will perform a successful action exactly once.
Unlike a sync.Once, this Once's func returns an error and is re-armed on failure.
func (*Once) Do ¶
Do calls the function f if and only if Do has not been invoked without error for this instance of Once. In other words, given
var once Once
if once.Do(f) is called multiple times, only the first call will invoke f, even if f has a different value in each invocation unless f returns an error. A new instance of Once is required for each function to execute.
Do is intended for initialization that must be run exactly once. Since f is niladic, it may be necessary to use a function literal to capture the arguments to a function to be invoked by Do:
err := config.once.Do(func() error { return config.init(filename) })
Directories
¶
| Path | Synopsis |
|---|---|
|
auth
|
|
|
Package interfaces provides shared interfaces used by both the main redis package and the maintnotifications upgrade package to avoid circular dependencies.
|
Package interfaces provides shared interfaces used by both the main redis package and the maintnotifications upgrade package to avoid circular dependencies. |
|
maintnotifications
|
|
|
Package pool implements the pool management
|
Package pool implements the pool management |