Halo 专业版在 2.16 中新增了集成 Redis 的功能,目前提供将用户登录 Session 存入 Redis 的支持。
配置方式
如果使用 Docker 或者 Docker Compose 部署,需要添加以下启动参数:
- --spring.data.redis.host=localhost # Redis 服务地址
- --spring.data.redis.port=6379 # Redis 服务端口
- --spring.data.redis.database=0 # Redis 数据库
- --spring.data.redis.password= # Redis 密码
- --halo.session.store-type=redis # 声明 session 存储方式为 redis,默认不配置则为 in-memory
- --halo.redis.enabled=true # 启用 Redis 服务
请特别注意 spring.data.redis.host
的指向,在 Docker 容器中,可能并不是 localhost,需要确保 Halo 容器中能够正常访问到你的 Redis 服务。
Docker Compose 配置片段如下:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.16
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
...
# Redis 相关配置开始
- --spring.data.redis.host=localhost # Redis 服务地址
- --spring.data.redis.port=6379 # Redis 服务端口
- --spring.data.redis.database=0 # Redis 数据库
- --spring.data.redis.password= # Redis 密码
- --halo.session.store-type=redis # 声明 session 存储方式为 redis,默认不配置则为 in-memory
- --halo.redis.enabled=true
# Redis 相关配置结束
networks:
halo_network:
如果你是使用的 Docker Compose 部署 Halo,并且希望将 Redis 服务编排在一起,以下是配置示例:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.16
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# Redis 相关配置开始
- --spring.data.redis.host=redis # Redis 服务地址
- --spring.data.redis.port=6379 # Redis 服务端口
- --spring.data.redis.database=0 # Redis 数据库
- --spring.data.redis.password= # Redis 密码
- --halo.session.store-type=redis # 声明 session 存储方式为 redis,默认不配置则为 in-memory
- --halo.redis.enabled=true
# Redis 相关配置结束
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
# 新增的 Redis 编排
redis:
image: redis:7.2.5
networks:
halo_network:
volumes:
- ./redis-data:/data
restart: always
networks:
halo_network: