pool

package
v3.5.2+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2016 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrClosed = errors.New("redis: client is closed")

	ErrPoolTimeout = errors.New("redis: connection pool timeout")
)
View Source
var Logger *log.Logger

Functions

This section is empty.

Types

type Conn

type Conn struct {
	NetConn net.Conn
	Rd      *bufio.Reader
	Buf     []byte

	UsedAt       time.Time
	ReadTimeout  time.Duration
	WriteTimeout time.Duration
	// contains filtered or unexported fields
}

func NewConn

func NewConn(netConn net.Conn) *Conn

func (*Conn) Close

func (cn *Conn) Close() int

func (*Conn) Index

func (cn *Conn) Index() int

func (*Conn) IsStale

func (cn *Conn) IsStale(timeout time.Duration) bool

func (*Conn) Read

func (cn *Conn) Read(b []byte) (int, error)

func (*Conn) RemoteAddr

func (cn *Conn) RemoteAddr() net.Addr

func (*Conn) SetIndex

func (cn *Conn) SetIndex(idx int)

func (*Conn) Write

func (cn *Conn) Write(b []byte) (int, error)

type ConnPool

type ConnPool struct {
	DialLimiter *ratelimit.RateLimiter
	// contains filtered or unexported fields
}

func NewConnPool

func NewConnPool(dial dialer, poolSize int, poolTimeout, idleTimeout time.Duration) *ConnPool

func (*ConnPool) Add

func (p *ConnPool) Add(cn *Conn) bool

func (*ConnPool) Close

func (p *ConnPool) Close() (retErr error)

func (*ConnPool) Closed

func (p *ConnPool) Closed() bool

func (*ConnPool) First

func (p *ConnPool) First() *Conn

First returns first non-idle connection from the pool or nil if there are no connections.

func (*ConnPool) FreeLen

func (p *ConnPool) FreeLen() int

FreeLen returns number of free connections.

func (*ConnPool) Get

func (p *ConnPool) Get() (cn *Conn, isNew bool, err error)

Get returns existed connection from the pool or creates a new one.

func (*ConnPool) Len

func (p *ConnPool) Len() int

Len returns total number of connections.

func (*ConnPool) Put

func (p *ConnPool) Put(cn *Conn) error

func (*ConnPool) ReapStaleConns

func (p *ConnPool) ReapStaleConns() (n int, err error)

func (*ConnPool) Remove

func (p *ConnPool) Remove(cn *Conn, reason error) error

func (*ConnPool) Replace

func (p *ConnPool) Replace(cn *Conn, reason error) error

func (*ConnPool) Stats

func (p *ConnPool) Stats() *PoolStats

type PoolStats

type PoolStats struct {
	Requests uint32 // number of times a connection was requested by the pool
	Hits     uint32 // number of times free connection was found in the pool
	Waits    uint32 // number of times the pool had to wait for a connection
	Timeouts uint32 // number of times a wait timeout occurred

	TotalConns uint32 // the number of total connections in the pool
	FreeConns  uint32 // the number of free connections in the pool
}

PoolStats contains pool state information and accumulated stats.

type Pooler

type Pooler interface {
	First() *Conn
	Get() (*Conn, bool, error)
	Put(*Conn) error
	Replace(*Conn, error) error
	Len() int
	FreeLen() int
	Stats() *PoolStats
	Close() error
	Closed() bool
}

type SingleConnPool

type SingleConnPool struct {
	// contains filtered or unexported fields
}

func NewSingleConnPool

func NewSingleConnPool(cn *Conn) *SingleConnPool

func (*SingleConnPool) Close

func (p *SingleConnPool) Close() error

func (*SingleConnPool) Closed

func (p *SingleConnPool) Closed() bool

func (*SingleConnPool) First

func (p *SingleConnPool) First() *Conn

func (*SingleConnPool) FreeLen

func (p *SingleConnPool) FreeLen() int

func (*SingleConnPool) Get

func (p *SingleConnPool) Get() (*Conn, bool, error)

func (*SingleConnPool) Len

func (p *SingleConnPool) Len() int

func (*SingleConnPool) Put

func (p *SingleConnPool) Put(cn *Conn) error

func (*SingleConnPool) Replace

func (p *SingleConnPool) Replace(cn *Conn, _ error) error

func (*SingleConnPool) Stats

func (p *SingleConnPool) Stats() *PoolStats

type StickyConnPool

type StickyConnPool struct {
	// contains filtered or unexported fields
}

func NewStickyConnPool

func NewStickyConnPool(pool *ConnPool, reusable bool) *StickyConnPool

func (*StickyConnPool) Close

func (p *StickyConnPool) Close() error

func (*StickyConnPool) Closed

func (p *StickyConnPool) Closed() bool

func (*StickyConnPool) First

func (p *StickyConnPool) First() *Conn

func (*StickyConnPool) FreeLen

func (p *StickyConnPool) FreeLen() int

func (*StickyConnPool) Get

func (p *StickyConnPool) Get() (cn *Conn, isNew bool, err error)

func (*StickyConnPool) Len

func (p *StickyConnPool) Len() int

func (*StickyConnPool) Put

func (p *StickyConnPool) Put(cn *Conn) error

func (*StickyConnPool) Replace

func (p *StickyConnPool) Replace(cn *Conn, reason error) error

func (*StickyConnPool) Stats

func (p *StickyConnPool) Stats() *PoolStats

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL