Awesome
redisbloom-go
Go client for RedisBloom (https://github.com/RedisBloom/redisbloom), based on redigo.
Installing
$ go get github.com/RedisBloom/redisbloom-go
Running tests
A simple test suite is provided, and can be run with:
$ go test
The tests expect a Redis server with the RedisBloom module loaded to be available at localhost:6379. You can easily launch RedisBloom with Docker in the following manner:
docker run -d -p 6379:6379 --name redis-redisbloom redis/redis-stack-server:latest
Example Code
Make sure to check the full list of examples at Pkg.go.dev.
package main
import (
"fmt"
redisbloom "github.com/RedisBloom/redisbloom-go"
)
func main() {
// Connect to localhost with no password
var client = redisbloom.NewClient("localhost:6379", "nohelp", nil)
// BF.ADD mytest item
_, err := client.Add("mytest", "myItem")
if err != nil {
fmt.Println("Error:", err)
}
exists, err := client.Exists("mytest", "myItem")
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println("myItem exists in mytest: ", exists)
}
Supported RedisBloom Commands
Make sure to check the full command reference at redisbloom.io.
Bloom Filter
Command | Recommended API and godoc |
---|---|
BF.RESERVE | Reserve |
BF.ADD | Add |
BF.MADD | BfAddMulti |
BF.INSERT | BfInsert |
BF.EXISTS | Exists |
BF.MEXISTS | BfExistsMulti |
BF.SCANDUMP | BfScanDump |
BF.LOADCHUNK | BfLoadChunk |
BF.INFO | Info |
Cuckoo Filter
Count-Min Sketch
Command | Recommended API and godoc |
---|---|
CMS.INITBYDIM | CmsInitByDim |
CMS.INITBYPROB | CmsInitByProb |
CMS.INCRBY | CmsIncrBy |
CMS.QUERY | CmsQuery |
CMS.MERGE | CmsMerge |
CMS.INFO | CmsInfo |
TopK Filter
Command | Recommended API and godoc |
---|---|
TOPK.RESERVE | TopkReserve |
TOPK.ADD | TopkAdd |
TOPK.INCRBY | TopkIncrby |
TOPK.QUERY | TopkQuery |
TOPK.COUNT | TopkCount |
TOPK.LIST | TopkList |
TOPK.INFO | TopkInfo |
License
redisbloom-go is distributed under the BSD 3-Clause license - see LICENSE