网信办前厅 Redis 6.2.7 安装与运维
仅在新服务器 10.10.235.2 执行。用于两套前厅 PHP,不替换食安、达梦、Nginx或已有Redis。
已确认的部署约定
- 旧服务器 INFO server 确认 Redis Server 6.2.7;PHP Redis扩展5.3.7是客户端扩展版本,两者不同。
- 程序 /opt/zhct-redis627;配置 /opt/zhct-redis627/etc/redis.conf。
- 服务 zhct-redis627;独立系统账号 zhctredis;数据 /data/redis/zhct。
- 仅监听127.0.0.1:6379,不开放防火墙6379,不依赖IPv6。
- 第一套前厅Redis DB8,第二套DB9。仅为逻辑空间,不是ACL安全隔离。
- 前厅网站仍用8080/8081;PHP-FPM内部127.0.0.1:9073。
- 与旧本机访问保持一致,不配置密码;禁止把bind改成0.0.0.0。
- AOF每秒刷盘并启用RDB快照;maxmemory 1GB / noeviction,到限额拒绝写入而不是自动丢业务键,需监控。
- 日志输出systemd journal,不新建无限增长的redis.log;食安7天清理脚本不清Redis数据。
1. 校验和解压(root)
将tar.gz及同名.sha256上传/workspace/front-runtime-packages/后:
cd /workspace/front-runtime-packages
sha256sum -c zhct-redis627-kylin-x64-20261027.tar.gz.sha256
确认成功后,仅在解压目录不存在时:
(
set -e
cd /workspace/front-runtime-packages
if [ -e zhct-redis627-kylin-x64-20261027 ] || [ -L zhct-redis627-kylin-x64-20261027 ]; then
echo '解压目录已存在,停止,不覆盖'
exit 1
fi
tar -xzf zhct-redis627-kylin-x64-20261027.tar.gz
cd zhct-redis627-kylin-x64-20261027
sha256sum -c PAYLOAD.sha256
)
2. 安装,不启动(root)
cd /workspace/front-runtime-packages/zhct-redis627-kylin-x64-20261027
bash install.sh
没有交互提问,没有密码提示。检查x86_64/glibc2.28、包内校验、依赖、专用目录与6379占用;目标或用户已存在就停止,不覆盖、不删除。安装失败保留现场,先发输出再按已完成阶段续办,不盲目重跑。
安装只创建独立运行目录/数据目录/系统账号和服务文件,并daemon-reload;不start、不enable,不停止已有服务,不复制旧RDB/AOF,不修改两套食安或前厅源码。
3. 启动与检查(安装通过后单独执行)
systemctl start zhct-redis627
systemctl status zhct-redis627 --no-pager -l
ss -lntp | grep -E ':6379[[:space:]]'
/opt/zhct-redis627/bin/redis-cli -h 127.0.0.1 -p 6379 PING
/opt/zhct-redis627/bin/redis-cli -h 127.0.0.1 -p 6379 INFO server | grep -E '^(redis_version|process_id|tcp_port|config_file):'
预期PONG、6.2.7、config_file为本包独立配置,仅127.0.0.1监听。
使用已经验收的PHP做小范围真实读写:
runuser -u zhctfront -- /opt/zhct-php73/bin/php /opt/zhct-redis627/scripts/check-php-client.php
先核对Redis版本及config_file,再用随机专用键验DB8/9中文、TTL,finally仅删测试自己的键。绝不FLUSHDB/FLUSHALL,不写前厅业务键。通过后:
systemctl enable zhct-redis627
systemctl is-enabled zhct-redis627
4. 日常命令
systemctl status zhct-redis627 --no-pager -l
journalctl -u zhct-redis627 -n 80 --no-pager
/opt/zhct-redis627/bin/redis-cli INFO memory
/opt/zhct-redis627/bin/redis-cli INFO persistence
/opt/zhct-redis627/bin/redis-cli INFO keyspace
维护窗口中才执行停止/重启,会影响两套前厅的缓存、队列和会话:
systemctl stop zhct-redis627
systemctl start zhct-redis627
systemctl restart zhct-redis627
优雅停止会刷持久化;不要kill -9,不删除/data/redis/zhct下的RDB/AOF。AOF每秒策略不等于零数据丢失备份,也不替代独立恢复方案。journal保留由服务器journald策略决定,本包不更改全局日志保留。
5. 应用切换前待办
旧两套Redis配置均指向旧DB8;新两套按DB8/9区分。数据库SQL冻结不代表Redis队列/会话/去重状态可直接丢弃。应用启用前要按旧业务前缀和类型核对队列、锁、会话及幂等状态;不整体复制旧DB8两次,不擅自清空旧实例。本包不携带旧Redis数据,不宣称完成旧状态迁移。
第一套数据库已完整验收,禁止重导。两套食安继续运行;客户服务器整体重启继续暂缓。
来源与验证边界
官方Redis6.2.7源码:https://download.redis.io/releases/redis-6.2.7.tar.gz 。源码SHA256:b7a79cc3b46d3c6eb52fa37dde34a4a60824079ebdfb3abfbbfa035947c55319。
编译环境x86_64/glibc2.28/GCC7.3.0,BUILD_TLS=no;只依赖宿主glibc核心库,授权文件随包。真实隔离测试结果见validation.json;隔离回归不能代替客户现场PHP、服务开机恢复和前厅业务验收。未在客户服务器预先执行安装或重启。