作者:alexye
项目:ghos
// get command
func getValue(c *client.GhostClient, args []string) (string, error) {
if len(args) != 1 {
return "", errors.New(fmt.Sprintf("wrong number of arguments to GET: need 1, get %d", len(args)))
}
return c.Get(args[0])
}
作者:alexye
项目:ghos
// del command
func delValue(c *client.GhostClient, args []string) error {
if len(args) != 1 {
return errors.New(fmt.Sprintf("wrong number of arguments to DEL: need 1, get %d", len(args)))
}
c.Del(args[0])
return nil
}
作者:alexye
项目:ghos
// set command
func setValue(c *client.GhostClient, args []string) error {
if len(args) != 2 {
return errors.New(fmt.Sprintf("wrong number of arguments to SET: need 2, get %d", len(args)))
}
c.Set(args[0], args[1])
return nil
}
作者:alexye
项目:ghos
// ping command
func pingServer(c *client.GhostClient, args []string) (string, error) {
if len(args) != 0 {
return "", errors.New(fmt.Sprintf("wrong number of arguments to PING: need 0, get %d", len(args)))
}
reply, err := c.Ping()
return reply.Values[0], err
}
作者:alexye
项目:ghos
// get collection command
func getColl(c *client.GhostClient, args []string) error {
if len(args) != 1 {
return errors.New(fmt.Sprintf("wrong number of arguments to CGET: need 1, get %d", len(args)))
}
if _, err := c.CGet(args[0]); err != nil {
return err
}
return nil
}
作者:alexye
项目:ghos
func populateTestDataServer(c *client.GhostClient, keys, vals []string) {
var wg sync.WaitGroup
for i := 0; i < requests; i++ {
wg.Add(1)
go func(i int) {
c.Set(keys[i], vals[i])
wg.Done()
}(i)
}
wg.Wait()
return
}
作者:alexye
项目:ghos
func benchmarkServerDel(c *client.GhostClient) result {
var wg sync.WaitGroup
keys, vals := initTestData("get", requests, size, keyrange)
populateTestDataServer(c, keys, vals)
start := time.Now()
for i := 0; i < requests; i++ {
wg.Add(1)
go func(i int) {
c.Del(keys[i])
wg.Done()
}(i)
}
wg.Wait()
latency := time.Since(start)
return result{
totTime: latency,
reqSec: float64(requests) / latency.Seconds(),
}
}