代码拉取完成,页面将自动刷新
package level
import (
"encoding/binary"
"gitee.com/xuender/oils/u32"
)
// NextSequence 序列.
func (p *Service) NextSequence(key []byte) uint32 {
mu := p.getMutex(key)
mu.Lock()
defer mu.Unlock()
seq := uint32(0)
seqKey := []byte{ByteSeq}
seqKey = append(seqKey, key...)
if bs, err := p.DB.Get(seqKey, nil); err == nil {
seq = binary.BigEndian.Uint32(bs)
}
seq++
if err := p.DB.Put(seqKey, u32.Bytes(seq), nil); err != nil {
panic(err)
}
return seq
}
// NextSequenceASC 下一个顺序Key.
func (p *Service) NextSequenceASC(key []byte) []byte {
return KeyASCByUint32(key, p.NextSequence(key))
}
// NextSequenceDESC 下一个倒序Key.
func (p *Service) NextSequenceDESC(key []byte) []byte {
return KeyDESCByUint32(key, p.NextSequence(key))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。