docker 下的 redis.cnf
version: "3"
services:
redis:
container_name: rebloom
image: redislabs/rebloom:latest
ports:
- "6379:6379"
volumes:
- ./volumes:/data # /usr/local/redis/data 是你宿主機的路徑;/data 是容器內的路徑,容器內的 redis 會把需要持久化的資料都儲存到 /data 目錄下
- ./redis.conf:/etc/redis/redis.conf # redis.conf 這個檔案已經準備好了,可以放到這個路徑,也可以自己修改,比如放到專案路徑中
restart: always
# 這個檔案的地址,和你的 docker-compose.yaml 中的 /usr/local/redis/redis.conf:/etc/redis/redis.conf 冒號左邊的要對應起來
# redis 支援兩者持久化機制:RDB&AOF
# https://juejin.cn/post/6844903716290576392
appendonly yes
#default: 持久化檔案
appendfilename "appendonly.aof"
#default: 每秒同步一次
appendfsync everysec
port 6379
# 繫結埠,不指定外網可能連不上伺服器
bind 0.0.0.0
復刻到 k8s 中卻跑不通,會報錯
解決辦法:
apiVersion: v1
kind: ConfigMap
metadata:
name: crawler-bloom-redis-config
namespace: xxxxx
data:
redis-config: |
maxmemory 100mb
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
loadmodule "/usr/lib/redis/modules/redisbloom.so"
加入 loadmodule "/usr/lib/redis/modules/redisbloom.so"
即可,至於為什麼 docker 下不用加,k8s 中卻要加,我就不知道了。知道的人可以貼到評論區