本文整理汇总了Golang中github.com/rod6/rodis/resp.Array类的典型用法代码示例。如果您正苦于以下问题:Golang Array类的具体用法?Golang Array怎么用?Golang Array使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Array类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Handle
// Handle command
func Handle(v resp.Array, ex *CommandExtras) error {
ex.Buffer.Truncate(0) // Truncate all data in the buffer
if len(v) == 0 {
log6.Debug("Command handler, len of the input array is 0")
return resp.NewError(ErrFmtNoCommand).WriteTo(ex.Buffer)
}
args := v.ToArgs()
//log6.Debug("Command handling:%v", humanArgs(args))
cmd := strings.ToLower(args[0].String())
a, err := findCmdFunc(cmd)
if err != nil {
log6.Debug("Command handler, cannt found command: %v", cmd)
return resp.NewError(ErrFmtUnknownCommand, cmd).WriteTo(ex.Buffer)
}
if a.c != 0 && len(v) != a.c { //a.c = 0 means to check the number in f
return resp.NewError(ErrFmtWrongNumberArgument, cmd).WriteTo(ex.Buffer)
}
if !ex.IsConnAuthed && ex.Password != "" && cmd != "auth" {
return resp.NewError(ErrAuthed).WriteTo(ex.Buffer)
}
return a.f(args[1:], ex)
}
开发者ID:zhangshun2014,项目名称:rodis,代码行数:29,代码来源:command.go
示例2: hmget
func hmget(v resp.CommandArgs, ex *CommandExtras) error {
if len(v) < 2 {
return resp.NewError(ErrFmtWrongNumberArgument, "hmget").WriteTo(ex.Buffer)
}
ex.DB.RLock()
defer ex.DB.RUnlock()
keyExists, tipe, _ := ex.DB.Has(v[0])
if keyExists && tipe != storage.Hash {
return resp.NewError(ErrWrongType).WriteTo(ex.Buffer)
}
fields := [][]byte{}
for _, field := range v[1:] {
fields = append(fields, []byte(field))
}
hash := ex.DB.GetHashFields(v[0], fields)
arr := resp.Array{}
for _, value := range hash {
arr = append(arr, resp.BulkString(value))
}
return arr.WriteTo(ex.Buffer)
}
开发者ID:wshn13,项目名称:rodis,代码行数:25,代码来源:hashes.go
示例3: hgetall
func hgetall(v resp.CommandArgs, ex *CommandExtras) error {
ex.DB.RLock()
defer ex.DB.RUnlock()
keyExists, tipe, _ := ex.DB.Has(v[0])
if !keyExists {
return resp.EmptyArray.WriteTo(ex.Buffer)
}
if keyExists && tipe != storage.Hash {
return resp.NewError(ErrWrongType).WriteTo(ex.Buffer)
}
hash := ex.DB.GetHash(v[0])
arr := resp.Array{}
for field, value := range hash {
arr = append(arr, resp.BulkString([]byte(field)), resp.BulkString(value))
}
return arr.WriteTo(ex.Buffer)
}
开发者ID:rod6,项目名称:rodis,代码行数:20,代码来源:hashes.go
示例4: hkeys
func hkeys(v resp.CommandArgs, ex *CommandExtras) error {
ex.DB.RLock()
defer ex.DB.RUnlock()
keyExists, tipe, _ := ex.DB.Has(v[0])
if !keyExists {
return resp.EmptyArray.WriteTo(ex.Buffer)
}
if keyExists && tipe != storage.Hash {
return resp.NewError(ErrWrongType).WriteTo(ex.Buffer)
}
fields := ex.DB.GetHashFieldNames(v[0])
arr := resp.Array{}
for _, field := range fields {
arr = append(arr, resp.BulkString(field))
}
return arr.WriteTo(ex.Buffer)
}
开发者ID:rod6,项目名称:rodis,代码行数:20,代码来源:hashes.go
注:本文中的github.com/rod6/rodis/resp.Array类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论