Closed zut closed 4 years ago
因为这块没有完成测试,所以暂时关掉了
@seefan 好的, 位值算是这种数据库的特色了. 重要功能
因为这块没有完成测试,所以暂时关掉了
我已测试,发现是ok的. Setbit/Getbit/Bitcount 都正常
好的,多谢,那我在下个版本开放这块
@seefan 基于你的来封装了一个给自己用, 由于太多个性化的东西, 所以我就不pull了, 请看我改了一点的代码
/设置字符串内指定位置的位值(BIT), 字符串的长度会自动扩展.
//
// key 键值
// offset 位偏移
// bit 0 或 1
// 返回 val,原来的位值
// 返回 err,可能的错误,操作成功返回 nil
func (s *Client) Setbit(key string, offset int64, bit int) (int64, error) {
resp, err := s.Do("setbit", key, offset, bit)
if err != nil {
return 255, goerr.Errorf(err, "Setbit %s error", key)
}
if len(resp) == 2 && resp[0] == oK {
return Value(resp[1]).Int64(), nil
}
return 0, makeError(resp, key)
}
//获取字符串内指定位置的位值(BIT).
//
// key 键值
// offset 位偏移
// 返回 val,位值
// 返回 err,可能的错误,操作成功返回 nil
func (s *Client) Getbit(key string, offset int64) (int64, error) {
resp, err := s.Do("getbit", key, offset)
if err != nil {
return 255, goerr.Errorf(err, "Getbit %s error", key)
}
if len(resp) == 2 && resp[0] == oK {
return Value(resp[1]).Int64(), nil
}
return 0, makeError(resp, key)
}
func (s *Client) BitCount(key string, start int64, end int64, ) (int64, error) {
resp, err := s.Do("bitcount", key, start, end)
if err != nil {
return 255, goerr.Errorf(err, "BitCount %s error", key)
}
if len(resp) == 2 && resp[0] == oK {
//fmt.Println(Value(resp[1]).String())
return Value(resp[1]).Int64(), nil
}
return 0, makeError(resp, key)
}
能否告知是 测试中发现什么问题吗?