Docker版本CentOS 7.6 Docker CE 19.03.9
由于我已经安装了redis-7.0.0,但是没有redisbloom,所以docker重新安装带redisbloom filter的redis
自己试了很多遍了,直接复制以下命令到docker
docker run -p 6378:6379 \
--name redis-redisbloom \
-d --restart=always \
-e TZ="Asia/Shanghai" \
-v /opt/dockers/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /opt/dockers/redis/data:/var/lib/redis \
-v /opt/dockers/redis/log:/var/log/redis \
redislabs/rebloom:latest \
/usr/local/bin/redis-server /usr/local/etc/redis/redis.conf \
--appendonly yes \
--requirepass '{设置的密码}' \
--loadmodule '/usr/lib/redis/modules/redisbloom.so' INITIAL_SIZE 10000000 ERROR_RATE 0.0001
进入容器,进入redis命令行
docker exec -it redis-redisbloom bash
redis-cli
测试使用布隆过滤器命令
BF.ADD key1 "hello redisbloom filter"
BF.EXISTS key1 "hello redisbloom filter"
注意如果你用get key1命令会报错:(error) WRONGTYPE Operation against a key holding the wrong kind of value,因为key1在redis服务器中存储数据的类型是MBbloom,get命令只针对string类型的key。 例如:
redis 127.0.0.1:6379>type key
显示出该key存储在现在redis服务器中的类型是hash:
redis 127.0.0.1:6379>hash
则表示key为以hash类型存储在redis服务器里的,此时操作这个数据就必须使用hset、hget等操作方法。 如果是zset:
redis 127.0.0.1:6379>zset
则表示数据类型为Sorted Sets的。此时就需要使用zadd、zrange等操作方法,否则就会报上面这个错误
参考:docker redis 安装布隆过滤器插件 redBloom filter
注意:本文归作者所有,未经作者允许,不得转载