Fix: 修正Redis扫描键名前缀不匹配问题,改为*room:*:users通配前缀模式

This commit is contained in:
2026-02-27 12:41:20 +08:00
parent 2044feec12
commit 36fc073971

View File

@@ -97,9 +97,9 @@ class AutoSaveExp extends Command
$cursor = '0';
do {
[$cursor, $keys] = Redis::scan($cursor, ['match' => 'room:*:users', 'count' => 100]);
[$cursor, $keys] = Redis::scan($cursor, ['match' => '*room:*:users', 'count' => 100]);
foreach ($keys ?? [] as $key) {
// 从 "room:123:users" 提取房间 ID
// 从 key 中提取房间 ID支持带前缀的格式如 chatroom-database-room:1:users
if (preg_match('/room:(\d+):users/', $key, $m)) {
$roomId = (int) $m[1];
$usernames = Redis::hkeys($key);