Docker安装布隆过滤器redisbloom filter

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


已有 0 条评论

    感谢参与互动!