2.2 KiB
2.2 KiB
Redis 剪切板同步说明
本文档与当前代码版本一一对应。
版本对应
v1.1.0(当前)- 主机 -> 从机、从机 -> 主机均使用 AES-256-GCM 传输加密
- 从机
master_to_slave.log启用按条目 TTL 清理(默认 30 秒) - 主从均写统一结构化日志:
direction/source/target
v1.0.0- 仅双向日志同步,不包含传输加密和按条目 TTL 清理
当前运行逻辑
- 主机监听本地剪切板变化,发布到
master.target.channels的多个频道。 - 从机订阅自己的
slave.listen.channel,收到消息后写master_to_slave.log。 - 从机监听本地剪切板变化,上传到
global_clip_upload。 - 主机订阅
global_clip_upload,收到后写slave_to_master.log。
安全与保留策略
crypto.enabled=true时启用加密。crypto.key必须是 Base64 编码,解码后 32 字节(AES-256)。- 从机仅对
master_to_slave.log做 TTL 清理,不影响slave_to_master.log。
核心配置项
# 基础
role=MASTER|SLAVE
redis.host=127.0.0.1
redis.port=6379
redis.password=
# 主机
master.target.channels=machine_a,machine_b
master.id=master
# 从机
slave.listen.channel=machine_a
slave.id=slave-01
# 日志目录
log.save.dir=./clipboard_logs/
# 加密
crypto.enabled=true
crypto.key=REPLACE_WITH_BASE64_32_BYTE_KEY
# 从机日志TTL(仅 master_to_slave.log)
slave.log.ttl.seconds=30
slave.log.prune.interval.seconds=5
1主2从样例
- 主机:
master.target.channels=machine_a,machine_b - 从机1:
slave.listen.channel=machine_a - 从机2:
slave.listen.channel=machine_b - 三端
crypto.key保持一致
发布与安装(Linux)
- 主机执行
./linux/build-slave-release.sh生成从机发布包。 - 将
dist/redis-clip-sync-slave-<version>.tar.gz传到从机。 - 从机解压后修改
conf/config.properties。 - 从机执行
sudo ./bin/install-slave.sh,自动启动并设置开机自启。
一键验收(从机):
bash -c 'set -e; systemctl is-enabled redis-clip-sync >/dev/null; systemctl is-active redis-clip-sync >/dev/null; test -f /opt/redis-clip-sync/lib/redis-clip-sync.jar; echo "[PASS] redis-clip-sync deployed"'