本文摘自网络,作者,侵删。
为什么需要Bitmap
bitmap的主要应用场景为低空间的去重业务场景,比如活跃用户统计和用户行为统计。
Golang如何操作
func main() { rdb := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379", Password: "123456", // no password set DB: 0, // use default DB }) // scmd := rdb.GetRange("mybitmap", 0, 1480) // 同样可以 // bs, _ := scmd.Bytes() scmd := rdb.Get("mybitmap") bs, _ := scmd.Bytes() ss := BytesToBinaryBytes(bs) fmt.Println(string(ss), len(ss)) } func appendBinaryBytes(bs []byte, b byte) []byte { var a byte for i := 0; i < 8; i++ { a = b b <<= 1 b >>= 1 switch a { case b: bs = append(bs, '0') default: bs = append(bs, '1') } b <<= 1 } return bs } func BytesToBinaryBytes(bs []byte) []byte { l := len(bs) bl := l*8 + l + 1 buf := make([]byte, 0, bl) for _, b := range bs { buf = appendBinaryBytes(buf, b) } return buf }
本文来自:51CTO博客
感谢作者:mb601ce0d29b15f
查看原文:Redis的bitmap如何在Golang中使用
相关阅读 >>
利用Golang反射机制(reflect)搭建本地leetcode调试器
更多相关阅读请进入《Go》频道 >>
Go语言101
一个与时俱进的Go编程知识库。