ssdb

package module
v0.0.0-...-94c60b7 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2014 License: MIT Imports: 9 Imported by: 0

README

ssdb

ssdb client for go

sample

package main
import (
	"fmt"
	"time"
	"github.com/jiecao-fm/ssdb"
)

var (
	conn_timeout  time.Duration = 15 * time.Second
	read_timeout  time.Duration = 180 * time.Second
	write_timeout time.Duration = 0
)

func main(){
  db, err := ssdb.Connect("jiecao-tucao", 8888, conn_timeout, read_timeout, write_timeout)
	if err != nil {
		fmt.Printf("connect to server failed:\n%v", err)
		return
	}
	db.Set("key1", "value1")
	ex, _ := db.Exists("key1")
	value,_:=db.Get("key1")
	fmt.Printf("%s\n",value)
  db.Close()

}

pool sample

package main
import (
	"fmt"
	"sync"
	"testing"
)
func main(){
count := 3
	g := sync.WaitGroup{}
	g.Add(count)
	poolconf := PoolConfig{Host: "jiecao-tucao", Port: 8888, Initial_conn_count: 1, Max_idle_count: 3, Max_conn_count: 8}
	pool, err := NewPool(poolconf)
	if err != nil {
		return
	}
	defer pool.Close()

	for i := 0; i < count; i++ {
		k := i
		go func() {
			db, _ := pool.GetDB()

			name := "branch_" + fmt.Sprintf("%d", k)
			defer func() {
				pool.ReturnDB(db)
				fmt.Printf("idle count:%d\n", pool.IdleCount())
				g.Done()
			}()

			for j := 0; j < 20; j++ {
				key := name + "lxy" + fmt.Sprintf("%d", j)
				db.Set(key, "value"+fmt.Sprintf("%d", j))
				value, _ := db.Get(key)
				fmt.Printf("%s %s\n", name, value)
				db.Del(key)
			}

		}()
	}
	g.Wait()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BoolValue

func BoolValue(rsp []bytes.Buffer) (bool, error)

func Int64

func Int64(rsp []bytes.Buffer) (int64, error)

func Int64Map

func Int64Map(rsp []bytes.Buffer) (map[string]int64, error)

func IntValue

func IntValue(rsp []bytes.Buffer) (int, error)

func StringArray

func StringArray(rsp []bytes.Buffer) ([]string, error)

func StringMap

func StringMap(rsp []bytes.Buffer) (map[string]string, error)

func StringValue

func StringValue(rsp []bytes.Buffer) (string, error)

Types

type Client

type Client interface {
	Set(key string, value string) error
	Get(key string) (result string, err error)
	Del(key string) (bool, error)
	Exists(key string) (bool, error)
	//  key_start<key<=key_end
	Keys(key_start, key_end string, limit int) ([]string, error)
	// key_start<key<=key_end
	Scan(key_start, key_end string, limit int) (map[string]string, error)
	// key_end<=key<key_start
	RScan(key_start, key_end string, limit int) (map[string]string, error)
	Incr(key string, by int64) (value int64, err error)
	MultiSet(kvs []string) (bool, error)
	MultiGet(keys []string) (map[string]string, error)
	MultiDel(keys []string) (bool, error)

	ZSet(setname, key string, score int64) error
	ZGet(setname, key string) (int64, error)
	ZIncr(setname, key string, by int64) (value int64, err error)
	ZDel(sentname, key string) (bool, error)
	ZSize(setname string) (int64, error)
	ZScan(setname, keystart string, score_start, score_end int64, limit int) (map[string]int64, error)
	// name_start<name<=name_end
	ZList(name_start, name_end string, limit int) ([]string, error)
	ZClear(setname string) error
	ZCount(setname string, score_start, score_end int64) (int, error)
	ZExists(setname, key string) (bool, error)
	// key_start<key   score_start<=score<=score_end
	ZKeys(setname, key_start string, score_start, score_end int64, limit int) ([]string, error)
	MultiZGet(setname string, keys []string) (map[string]int64, error)
	MultiZset(setname string, kvs map[string]int64) error

	HSet(name, key, value string) (bool, error)
	HGet(name, key string) (string, error)
	HDel(name, key string) (bool, error)
	HIncr(name, key string, by int64) (int64, error)
	HExists(name, key string) (bool, error)
	HSize(name string) (int64, error)
	//      name_start<name<=name_end
	HList(name_start, name_end string, limit int) ([]string, error)
	HRlist(name_start, name_end string, limit int) ([]string, error)
	HKeys(name, key_start, key_end string, limit int) ([]string, error)
	HGetAll(name string) (map[string]string, error)
	HScan(name, key_start, key_end string, limit int) (map[string]string, error)
	HRscan(name, key_start, key_end string, limit int) (map[string]string, error)
	HClear(name string) (bool, error)
	MultiHSet(name string, kvs []string) (bool, error)
	MultiHGet(name string, keys []string) (map[string]string, error)
	MultiHDel(name string, keys []string) (bool, error)

	QPushFront(name, value string) (int64, error)
	QPushBack(name, value string) (int64, error)
	QPopFront(name string) (string, error)
	QPopBack(name string) (string, error)
	QSize(name string) (int64, error)
	QList(name_start, name_end string, limit int) ([]string, error)
	QRlist(name_start, name_end string, limit int) ([]string, error)
	QClear(name string) (bool, error)
	QFront(name string) (string, error)
	QBack(name string) (string, error)
	QGet(name string, index int64) (string, error)
	//  begin< index <=end
	QSlice(name string, begin, end int64) ([]string, error)
}

type Conn

type Conn interface {
	//close the tcp connection
	Close() error
	//return non-nil value if the connection is broken
	Err() error
	//sends a command to the server and returns the received response
	Do(cmd string, args []interface{}) (rsp []bytes.Buffer, err error)
	//sends a command to the server
	Send(cmd string, args []interface{}) error
	//flushes the output buffer to the server
	Flush() error
	//receives a single reply from server
	Receive() (rsp []bytes.Buffer, err error)
}

type DBWrapper

type DBWrapper struct {
	*SSDB
	// contains filtered or unexported fields
}

type Error

type Error string

type PoolConfig

type PoolConfig struct {
	Host               string
	Port               int
	Initial_conn_count int
	Max_idle_count     int
	Max_conn_count     int
	CheckOnGet         bool
}

type SSDB

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

func Connect

func Connect(host string, port int, conntimeout, readtimeout, writetimeout time.Duration) (*SSDB, error)

func New

func New(host string, port int, conntimeout, readtimeout, writetimeout time.Duration) (*SSDB, error)

func (*SSDB) Close

func (db *SSDB) Close()

func (*SSDB) Connect

func (db *SSDB) Connect() error

func (*SSDB) Del

func (db *SSDB) Del(key string) (bool, error)

func (*SSDB) Err

func (db *SSDB) Err() error

func (*SSDB) Exists

func (db *SSDB) Exists(key string) (bool, error)

func (*SSDB) Get

func (db *SSDB) Get(key string) (string, error)

func (*SSDB) HClear

func (db *SSDB) HClear(name string) (bool, error)

func (*SSDB) HDel

func (db *SSDB) HDel(name, key string) (bool, error)

func (*SSDB) HExists

func (db *SSDB) HExists(name, key string) (bool, error)

func (*SSDB) HGet

func (db *SSDB) HGet(name, key string) (string, error)

func (*SSDB) HGetAll

func (db *SSDB) HGetAll(name string) (map[string]string, error)

func (*SSDB) HIncr

func (db *SSDB) HIncr(name, key string, by int64) (int64, error)

func (*SSDB) HKeys

func (db *SSDB) HKeys(name, key_start, key_end string, limit int) ([]string, error)

func (*SSDB) HList

func (db *SSDB) HList(name_start, name_end string, limit int) ([]string, error)

func (*SSDB) HRlist

func (db *SSDB) HRlist(name_start, name_end string, limit int) ([]string, error)

func (*SSDB) HRscan

func (db *SSDB) HRscan(name, key_start, key_end string, limit int) (map[string]string, error)

func (*SSDB) HScan

func (db *SSDB) HScan(name, key_start, key_end string, limit int) (map[string]string, error)

func (*SSDB) HSet

func (db *SSDB) HSet(name, key, value string) (bool, error)

func (*SSDB) HSize

func (db *SSDB) HSize(name string) (int64, error)

func (*SSDB) Incr

func (db *SSDB) Incr(key string, by int64) (int64, error)

func (*SSDB) Keys

func (db *SSDB) Keys(key_start, key_end string, limit int) ([]string, error)

func (*SSDB) MultiDel

func (db *SSDB) MultiDel(keys []string) (bool, error)

func (*SSDB) MultiGet

func (db *SSDB) MultiGet(keys []string) (map[string]string, error)

func (*SSDB) MultiHDel

func (db *SSDB) MultiHDel(name string, keys []string) (bool, error)

func (*SSDB) MultiHGet

func (db *SSDB) MultiHGet(name string, keys []string) (map[string]string, error)

func (*SSDB) MultiHSet

func (db *SSDB) MultiHSet(name string, kvs []string) (bool, error)

func (*SSDB) MultiSet

func (db *SSDB) MultiSet(kvs []string) (bool, error)

func (*SSDB) MultiZGet

func (db *SSDB) MultiZGet(setname string, keys []string) (map[string]int64, error)

func (*SSDB) MultiZset

func (db *SSDB) MultiZset(setname string, kvs map[string]int64) error

func (*SSDB) QBack

func (db *SSDB) QBack(name string) (string, error)

func (*SSDB) QClear

func (db *SSDB) QClear(name string) (bool, error)

func (*SSDB) QFront

func (db *SSDB) QFront(name string) (string, error)

func (*SSDB) QGet

func (db *SSDB) QGet(name string, index int64) (string, error)

func (*SSDB) QList

func (db *SSDB) QList(name_start, name_end string, limit int) ([]string, error)

func (*SSDB) QPopBack

func (db *SSDB) QPopBack(name string) (string, error)

func (*SSDB) QPopFront

func (db *SSDB) QPopFront(name string) (string, error)

func (*SSDB) QPushBack

func (db *SSDB) QPushBack(name, value string) (int64, error)

func (*SSDB) QPushFront

func (db *SSDB) QPushFront(name, value string) (int64, error)

func (*SSDB) QRlist

func (db *SSDB) QRlist(name_start, name_end string, limit int) ([]string, error)

func (*SSDB) QSize

func (db *SSDB) QSize(name string) (int64, error)

func (*SSDB) QSlice

func (db *SSDB) QSlice(name string, begin, end int64) ([]string, error)

func (*SSDB) RScan

func (db *SSDB) RScan(key_start, key_end string, limit int) (map[string]string, error)

func (*SSDB) Scan

func (db *SSDB) Scan(key_start, key_end string, limit int) (map[string]string, error)

func (*SSDB) Set

func (db *SSDB) Set(key string, value string) error

func (*SSDB) ZClear

func (db *SSDB) ZClear(setname string) error

func (*SSDB) ZCount

func (db *SSDB) ZCount(setname string, score_start, score_end int64) (int, error)

func (*SSDB) ZDel

func (db *SSDB) ZDel(setname, key string) (bool, error)

func (*SSDB) ZExists

func (db *SSDB) ZExists(setname, key string) (bool, error)

func (*SSDB) ZGet

func (db *SSDB) ZGet(setname, key string) (int64, error)

func (*SSDB) ZIncr

func (db *SSDB) ZIncr(setname, key string, by int64) (int64, error)

func (*SSDB) ZKeys

func (db *SSDB) ZKeys(setname, key_start string, score_start, score_end int64, limit int) ([]string, error)

func (*SSDB) ZList

func (db *SSDB) ZList(name_start, name_end string, limit int) ([]string, error)

func (*SSDB) ZScan

func (db *SSDB) ZScan(setname, key_start string, score_start, score_end int64, limit int) (map[string]int64, error)

func (*SSDB) ZSet

func (db *SSDB) ZSet(setname, key string, score int64) error

func (*SSDB) ZSize

func (db *SSDB) ZSize(setname string) (int64, error)

type SSDBPool

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

func NewPool

func NewPool(pc PoolConfig) (*SSDBPool, error)

func (*SSDBPool) Close

func (pool *SSDBPool) Close()

func (*SSDBPool) GetDB

func (pool *SSDBPool) GetDB() (*DBWrapper, error)

func (*SSDBPool) IdleCount

func (pool *SSDBPool) IdleCount() int

func (*SSDBPool) ReturnDB

func (pool *SSDBPool) ReturnDB(db *DBWrapper) error

func (*SSDBPool) TotalCount

func (pool *SSDBPool) TotalCount() int

func (*SSDBPool) UsedCount

func (pool *SSDBPool) UsedCount() int

Jump to

Keyboard shortcuts

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