SSDB Golang client
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
ssdb free recv buffer immediately May 18, 2017
.gitignore init May 29, 2014
Doxyfile init May 29, 2014
LICENSE add LICENSE Jul 23, 2018 add thread-safe notice in Jan 19, 2015
test.go free recv buffer immediately May 18, 2017

SSDB Go API Documentation {#mainpage}

@author: ideawu


All SSDB operations go with ssdb.Client.Do(), it accepts variable arguments. The first argument of Do() is the SSDB command, for example "get", "set", etc. The rest arguments(maybe none) are the arguments of that command.

The Do() method will return an array of string if no error. The first element in that array is the response code, "ok" means the following elements in that array(maybe none) are valid results. The response code may be "not_found" if you are calling "get" on an non-exist key.

Refer to the PHP documentation to checkout a complete list of all avilable commands and corresponding responses.

gossdb is not thread-safe(goroutine-safe)

Never use one connection(returned by ssdb.Connect()) through multi goroutines, because the connection is not thread-safe.


package main

import (
func main(){
	ip := "";
	port := 8888;
	db, err := ssdb.Connect(ip, port);
	if(err != nil){
	var val interface{};
	db.Set("a", "xxx");
	val, err = db.Get("a");
	fmt.Printf("%s\n", val);
	val, err = db.Get("a");
	fmt.Printf("%s\n", val);
	db.Do("zset", "z", "a", 3);
	db.Do("multi_zset", "z", "b", -2, "c", 5, "d", 3);
	resp, err := db.Do("zrange", "z", 0, 10);
	if err != nil{
	if len(resp) % 2 != 1{
		fmt.Printf("bad response");
	fmt.Printf("Status: %s\n", resp[0]);
	for i:=1; i<len(resp); i+=2{
		fmt.Printf("  %s : %3s\n", resp[i], resp[i+1]);