我有一个全球聊天室在我的网络游戏,它有一些聊天版主,禁止用户从消息时,他们发送不适当的信息。
现在我想把所有用户的最后4分钟的消息存储在内存中,并在管理员禁止该用户时将其记录到mysql中。
我使用redis作为内存数据库,存储消息的最佳方法是什么?
我想到的一种方法是将消息存储在redis中,如下例所示:
[REDIS KEY] : [VALUE]
user_(userid)_chat_message_(timestamp) : message_content --------- EXPIRE : 4 minutes
ex:
user_12345_chat_message_1600947508 : hello guys
当版主禁止该用户时,可以使用redis获取所有这些消息 SCAN
命令(模式:user\u12345\uchat\umessage*)并记录它们。
但我想知道这是最好的方法吗?我的redis数据库很大 SCAN
命令可能不是一个好的选择。
暂无答案!
目前还没有任何答案,快来回答吧!