本文使用的是vmware+centos7。
一、准备工作
1.建立目录,用于存放redis数据与配置文件,也可以自行设置目录。
[root@localhost 6380]# pwd
/usr/local/software/redis/6380
2.6380指本次配置redis的端口号,如果采用默认的6379可创建为6379。在6380下创建data与conf目录,分别用于存放redis数据与配置文件。
[root@localhost 6380]# mkdir data
[root@localhost 6380]# mkdir conf
[root@localhost 6380]# ls
conf data
3.在conf中上传redis配置文件,这里自行获取
[root@localhost conf]# ls
redis.conf
至此完成安装redis的准备工作。
二、安装redis
1.创建容器
[root@localhost conf]# docker run -it \
> --name redis_6380 \
> --privileged \
> -p 6380:6379 \
> --network [你的网络连接名称] \
> --ip 172.18.12.10 \
> --sysctl net.core.somaxconn=1024 \
> -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" \
> -v /usr/local/software/redis/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf \
> -v /usr/local/software/redis/6380/data/:/data \
> -d redis \
> /usr/local/etc/redis/redis.conf
1075c6ba017c95b4a677fa612c1746d199ebe47319a3ebd4ca4c6e05c520b42b
2.查看日志
[root@localhost conf]# docker logs redis_6380
1:C 18 Jan 2024 19:54:08.818 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 18 Jan 2024 19:54:08.818 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 18 Jan 2024 19:54:08.818 # Configuration loaded
1:M 18 Jan 2024 19:54:08.818 * monotonic clock: POSIX clock_gettime
1:M 18 Jan 2024 19:54:08.819 # Warning: Could not create server TCP listening socket ::1:6379: bind: Cannot assign requested address
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.2.6 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
1:M 18 Jan 2024 19:54:08.819 # Server initialized
至此安装完成。
三、安装插件
1.下载插件
[root@localhost 6380]# wget https://github.com/RedisBloom/RedisBloom/archive/v2.2.4.tar.gz
--2024-01-18 19:59:49-- https://github.com/RedisBloom/RedisBloom/archive/v2.2.4.tar.gz
正在解析主机 github.com (github.com)... 20.205.243.166
正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://codeload.github.com/RedisBloom/RedisBloom/tar.gz/refs/tags/v2.2.4 [跟随至新的 URL]
--2024-01-18 19:59:50-- https://codeload.github.com/RedisBloom/RedisBloom/tar.gz/refs/tags/v2.2.4
正在解析主机 codeload.github.com (codeload.github.com)... 20.205.243.165
正在连接 codeload.github.com (codeload.github.com)|20.205.243.165|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [application/x-gzip]
正在保存至: “v2.2.4.tar.gz”
[ <=> ] 84,680 369KB/s 用时 0.2s
2024-01-18 19:59:51 (369 KB/s) - “v2.2.4.tar.gz” 已保存 [84680]
[root@localhost 6380]# ls
conf data v2.2.4.tar.gz
2.解压
[root@localhost 6380]# tar -zxvf v2.2.4.tar.gz
RedisBloom-2.2.4/
RedisBloom-2.2.4/.circleci/
RedisBloom-2.2.4/.circleci/codecov.yml
RedisBloom-2.2.4/.circleci/config.yml
RedisBloom-2.2.4/.clang-format
RedisBloom-2.2.4/.github/
RedisBloom-2.2.4/.github/workflows/
RedisBloom-2.2.4/.github/workflows/deploy-docs.yaml
RedisBloom-2.2.4/.gitignore
RedisBloom-2.2.4/Dockerfile
RedisBloom-2.2.4/LICENSE
RedisBloom-2.2.4/Makefile
RedisBloom-2.2.4/README.md
RedisBloom-2.2.4/changelog
RedisBloom-2.2.4/contrib/
RedisBloom-2.2.4/contrib/MurmurHash2.c
RedisBloom-2.2.4/contrib/bloom.c
RedisBloom-2.2.4/contrib/bloom.h
RedisBloom-2.2.4/contrib/murmurhash2.h
RedisBloom-2.2.4/docs/
RedisBloom-2.2.4/docs/Bloom_Commands.md
RedisBloom-2.2.4/docs/Configuration.md
RedisBloom-2.2.4/docs/CountMinSketch_Commands.md
RedisBloom-2.2.4/docs/Cuckoo_Commands.md
RedisBloom-2.2.4/docs/Quick_Start.md
RedisBloom-2.2.4/docs/TopK_Commands.md
RedisBloom-2.2.4/docs/contrib.md
RedisBloom-2.2.4/docs/images/
RedisBloom-2.2.4/docs/images/favicon.png
RedisBloom-2.2.4/docs/images/logo.svg
RedisBloom-2.2.4/docs/images/logo_small.png
RedisBloom-2.2.4/docs/index.md
RedisBloom-2.2.4/docs/requirements.txt
RedisBloom-2.2.4/mkdocs.yml
RedisBloom-2.2.4/ramp.yml
RedisBloom-2.2.4/rmutil/
RedisBloom-2.2.4/rmutil/util.c
RedisBloom-2.2.4/rmutil/util.h
RedisBloom-2.2.4/src/
RedisBloom-2.2.4/src/.clang-format
RedisBloom-2.2.4/src/cf.c
RedisBloom-2.2.4/src/cf.h
RedisBloom-2.2.4/src/cms.c
RedisBloom-2.2.4/src/cms.h
RedisBloom-2.2.4/src/cuckoo.c
RedisBloom-2.2.4/src/cuckoo.h
RedisBloom-2.2.4/src/print_version.c
RedisBloom-2.2.4/src/rebloom.c
RedisBloom-2.2.4/src/redismodule.h
RedisBloom-2.2.4/src/rm_cms.c
RedisBloom-2.2.4/src/rm_cms.h
RedisBloom-2.2.4/src/rm_topk.c
RedisBloom-2.2.4/src/rm_topk.h
RedisBloom-2.2.4/src/sb.c
RedisBloom-2.2.4/src/sb.h
RedisBloom-2.2.4/src/study.c
RedisBloom-2.2.4/src/studybloomcms.c
RedisBloom-2.2.4/src/topk.c
RedisBloom-2.2.4/src/topk.h
RedisBloom-2.2.4/src/version.h
RedisBloom-2.2.4/tests/
RedisBloom-2.2.4/tests/Makefile
RedisBloom-2.2.4/tests/benchmark.py
RedisBloom-2.2.4/tests/cf_compact.py
RedisBloom-2.2.4/tests/cms.py
RedisBloom-2.2.4/tests/cuckoo.py
RedisBloom-2.2.4/tests/init_test.py
RedisBloom-2.2.4/tests/pytests.py
RedisBloom-2.2.4/tests/test-basic.c
RedisBloom-2.2.4/tests/test-bf-error-rate.py
RedisBloom-2.2.4/tests/test-cuckoo.c
RedisBloom-2.2.4/tests/test-perf.c
RedisBloom-2.2.4/tests/test.h
RedisBloom-2.2.4/tests/test_cms.c
RedisBloom-2.2.4/tests/test_topk.c
RedisBloom-2.2.4/tests/topk.py
3.安装gcc(如果已安装则跳过)
[root@localhost 6380]# yum -y install gcc
4.构建项目
[root@localhost 6380]# ls
conf data RedisBloom-2.2.4 v2.2.4.tar.gz
[root@localhost 6380]# cd RedisBloom-2.2.4/
[root@localhost RedisBloom-2.2.4]# make
gcc -Wall -Wno-unused-function -g -ggdb -O2 -fPIC -std=gnu99 -D_GNU_SOURCE -I/usr/local/software/redis/6380/RedisBloom-2.2.4 -I/usr/local/software/redis/6380/RedisBloom-2.2.4/contrib -c -o /usr/local/software/redis/6380/RedisBloom-2.2.4/src/rebloom.o /usr/local/software/redis/6380/RedisBloom-2.2.4/src/rebloom.c
gcc -Wall -Wno-unused-function -g -ggdb -O2 -fPIC -std=gnu99 -D_GNU_SOURCE -I/usr/local/software/redis/6380/RedisBloom-2.2.4 -I/usr/local/software/redis/6380/RedisBloom-2.2.4/contrib -c -o /usr/local/software/redis/6380/RedisBloom-2.2.4/contrib/MurmurHash2.o /usr/local/software/redis/6380/RedisBloom-2.2.4/contrib/MurmurHash2.c
gcc -Wall -Wno-unused-function -g -ggdb -O2 -fPIC -std=gnu99 -D_GNU_SOURCE -I/usr/local/software/redis/6380/RedisBloom-2.2.4 -I/usr/local/software/redis/6380/RedisBloom-2.2.4/contrib -c -o /usr/local/software/redis/6380/RedisBloom-2.2.4/rmutil/util.o /usr/local/software/redis/6380/RedisBloom-2.2.4/rmutil/util.c
gcc -Wall -Wno-unused-function -g -ggdb -O2 -fPIC -std=gnu99 -D_GNU_SOURCE -I/usr/local/software/redis/6380/RedisBloom-2.2.4 -I/usr/local/software/redis/6380/RedisBloom-2.2.4/contrib -c -o /usr/local/software/redis/6380/RedisBloom-2.2.4/src/sb.o /usr/local/software/redis/6380/RedisBloom-2.2.4/src/sb.c
5.将redisbloom.so拷贝到容器
[root@localhost RedisBloom-2.2.4]# docker cp redisbloom.so redis_6380:/usr/local/etc/redis
Successfully copied 334kB to redis_6380:/usr/local/etc/redis
6.添加redisbloom.so到MODULES模块
[root@localhost RedisBloom-2.2.4]# cd ..
[root@localhost 6380]# cd conf
[root@localhost conf]# ls
redis.conf
[root@localhost conf]# vim redis.conf
在图示位置添加一行代码:
################################## MODULES #####################################
# Load modules at startup. If the server is not able to load modules
# it will abort. It is possible to use multiple loadmodule directives.
#
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so
loadmodule /usr/local/etc/redis/redisbloom.so
7.允许远程访问redis,继续往下翻,找到这行代码:
修改为:
bind 0.0.0.0
保存并退出
8.重启redis,并查看日志:
[root@localhost conf]# docker restart redis_6380
redis_6380
[root@localhost conf]# docker logs redis_6380
可以看到日志结尾多了以下内容,证明插件安装完毕:
1:M 18 Jan 2024 20:18:24.684 * Module 'bf' loaded from /usr/local/etc/redis/redisbloom.so
1:M 18 Jan 2024 20:18:24.684 * Loading RDB produced by version 6.2.6
1:M 18 Jan 2024 20:18:24.684 * RDB age 0 seconds
1:M 18 Jan 2024 20:18:24.684 * RDB memory usage when created 0.77 Mb
1:M 18 Jan 2024 20:18:24.684 # Done loading RDB, keys loaded: 0, keys expired: 0.
1:M 18 Jan 2024 20:18:24.684 * DB loaded from disk: 0.000 seconds
1:M 18 Jan 2024 20:18:24.684 * Ready to accept connections