本文整理汇总了Golang中github.com/guileen/ferrydb/pkg/engine.Batch类的典型用法代码示例。如果您正苦于以下问题:Golang Batch类的具体用法?Golang Batch怎么用?Golang Batch使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Batch类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: storeObject
func (o *stringRow) storeObject(s *Store, bt *engine.Batch, expireat int64, obj interface{}) error {
value, ok := obj.(rdb.String)
if !ok || len(value) == 0 {
return errors.Trace(ErrObjectValue)
}
o.ExpireAt, o.Value = expireat, value
bt.Set(o.DataKey(), o.DataValue())
bt.Set(o.MetaKey(), o.MetaValue())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:11,代码来源:string.go
示例2: deleteObject
func (o *hashRow) deleteObject(s *Store, bt *engine.Batch) error {
it := s.getIterator()
defer s.putIterator(it)
for pfx := it.SeekTo(o.DataKeyPrefix()); it.Valid(); it.Next() {
key := it.Key()
if !bytes.HasPrefix(key, pfx) {
break
}
bt.Del(key)
}
bt.Del(o.MetaKey())
return it.Error()
}
开发者ID:guileen,项目名称:ferrydb,代码行数:13,代码来源:hash.go
示例3: storeObject
func (o *listRow) storeObject(s *Store, bt *engine.Batch, expireat int64, obj interface{}) error {
list, ok := obj.(rdb.List)
if !ok || len(list) == 0 {
return errors.Trace(ErrObjectValue)
}
for i, e := range list {
if len(e) != 0 {
continue
}
return errArguments("list[%d], len(value) = %d", i, len(e))
}
for i, value := range list {
o.Index, o.Value = int64(i), value
bt.Set(o.DataKey(), o.DataValue())
}
o.Lindex, o.Rindex = 0, int64(len(list))
o.ExpireAt = expireat
bt.Set(o.MetaKey(), o.MetaValue())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:21,代码来源:list.go
示例4: storeObject
func (o *setRow) storeObject(s *Store, bt *engine.Batch, expireat int64, obj interface{}) error {
set, ok := obj.(rdb.Set)
if !ok || len(set) == 0 {
return errors.Trace(ErrObjectValue)
}
for i, m := range set {
if len(m) != 0 {
continue
}
return errArguments("set[%d], len(member) = %d", i, len(m))
}
ms := &markSet{}
for _, o.Member = range set {
ms.Set(o.Member)
bt.Set(o.DataKey(), o.DataValue())
}
o.Size, o.ExpireAt = ms.Len(), expireat
bt.Set(o.MetaKey(), o.MetaValue())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:21,代码来源:set.go
示例5: commit
func (s *Store) commit(bt *engine.Batch, fw *Forward) error {
if bt.Len() == 0 {
return nil
}
s.travelPreCommitHandlers(fw)
if err := s.db.Commit(bt); err != nil {
log.Warningf("store commit failed - %s", err)
return errors.Trace(err)
}
for i := s.itlist.Len(); i != 0; i-- {
v := s.itlist.Remove(s.itlist.Front()).(*storeIterator)
v.Close()
}
s.serial++
s.travelPostCommitHandlers(fw)
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:21,代码来源:store.go
示例6: storeObject
func (o *zsetRow) storeObject(s *Store, bt *engine.Batch, expireat int64, obj interface{}) error {
zset, ok := obj.(rdb.ZSet)
if !ok || len(zset) == 0 {
return errors.Trace(ErrObjectValue)
}
for i, e := range zset {
if e == nil {
return errArguments("zset[%d] is nil", i)
}
if len(e.Member) == 0 {
return errArguments("zset[%d], len(member) = %d", i, len(e.Member))
}
}
ms := &markSet{}
for _, e := range zset {
o.Member, o.Score = e.Member, e.Score
if math.IsNaN(o.Score) {
return errors.Errorf("invalid nan score")
}
ms.Set(o.Member)
bt.Set(o.DataKey(), o.DataValue())
bt.Set(o.IndexKey(), o.IndexValue())
}
o.Size, o.ExpireAt = ms.Len(), expireat
bt.Set(o.MetaKey(), o.MetaValue())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:29,代码来源:zset.go
示例7: storeObject
func (o *hashRow) storeObject(s *Store, bt *engine.Batch, expireat int64, obj interface{}) error {
hash, ok := obj.(rdb.Hash)
if !ok || len(hash) == 0 {
return errors.Trace(ErrObjectValue)
}
for i, e := range hash {
if e == nil {
return errArguments("hash[%d] is nil", i)
}
if len(e.Field) == 0 || len(e.Value) == 0 {
return errArguments("hash[%d], len(field) = %d, len(value) = %d", i, len(e.Field), len(e.Value))
}
}
ms := &markSet{}
for _, e := range hash {
o.Field, o.Value = e.Field, e.Value
ms.Set(o.Field)
bt.Set(o.DataKey(), o.DataValue())
}
o.Size, o.ExpireAt = ms.Len(), expireat
bt.Set(o.MetaKey(), o.MetaValue())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:24,代码来源:hash.go
示例8: deleteObject
func (o *stringRow) deleteObject(s *Store, bt *engine.Batch) error {
bt.Del(o.DataKey())
bt.Del(o.MetaKey())
return nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:5,代码来源:string.go
注:本文中的github.com/guileen/ferrydb/pkg/engine.Batch类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论