From 49fe199ca274081ab6011464644eab79c351d903 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 19 Feb 2025 11:10:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E9=94=AE=E4=BF=AE=E5=A4=8D=EF=BC=9A?= =?UTF-8?q?=20hset=20=E6=9B=BF=E4=BB=A3=20hmset=EF=BC=9Ahmset=20=E8=A2=AB?= =?UTF-8?q?=E5=BC=83=E7=94=A8=EF=BC=8C=E5=9B=A0=E6=AD=A4=E6=88=91=E4=BB=AC?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20hset=20=E6=9D=A5=E6=9B=BF=E4=BB=A3?= =?UTF-8?q?=E5=AE=83=EF=BC=8C=E5=B9=B6=E9=80=9A=E8=BF=87=20mapping=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=B8=80=E6=AC=A1=E6=80=A7=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=95=B4=E4=B8=AA=E5=93=88=E5=B8=8C=E8=A1=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 每次更新成员时都触发 Redis 更新: 无论是加入成员还是退出成员,我们都通过 self.r.hset() 确保每次成员变化时,Redis 中的 group_members 哈希表都会被更新。 确保更新顺序: 每次对成员列表进行更新后,我们都更新 Redis 中的成员数据,避免成员退出时遗漏更新。 --- group_auto/group_member_change.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/group_auto/group_member_change.py b/group_auto/group_member_change.py index f50c4e3..d08f9cc 100644 --- a/group_auto/group_member_change.py +++ b/group_auto/group_member_change.py @@ -48,7 +48,7 @@ class GroupMemberChange: print("First time processing, saving current data to Redis") members_current = self.get_current_members(group_id) self.r.set(f"group:group_member_count:{group_id}", membercount_current) - self.r.hmset(f"group:group_members:{group_id}", members_current) # 存储当前成员信息 + self.r.hset(f"group:group_members:{group_id}", mapping=members_current) # 存储当前成员信息 # 更新本地缓存 self.local_membercounts[group_id] = membercount_current @@ -93,7 +93,9 @@ class GroupMemberChange: # 更新 Redis 数据 print(f"Updating Redis with current membercount and members") self.r.set(f"group:group_member_count:{group_id}", membercount_current) - self.r.hmset(f"group:group_members:{group_id}", members_current) + + # 更新 Redis 中的成员信息,确保在成员变化时也更新 + self.r.hset(f"group:group_members:{group_id}", mapping=members_current) else: result.append("$NO_CHANGE$")