Redis 将聊天信息和id存储在列表中
我想使用redis在ram中存储聊天信息。我想要这样的数据结构:Redis 将聊天信息和id存储在列表中,redis,Redis,我想使用redis在ram中存储聊天信息。我想要这样的数据结构: UserA { MessageId->Message} 这应该是一个列表。例如: User:Okan 15847->Message 1 35848->Message 2 12358->Message 3 84887->Message 4 ... 我想按消息id删除消息。我如何像这样存储它们并按消息id删除它们?如果您将结构更改为同时保存用户和消息,您将能够轻松实现它。下面是一个使用哈希的示例: M
UserA { MessageId->Message}
这应该是一个列表。例如:
User:Okan
15847->Message 1
35848->Message 2
12358->Message 3
84887->Message 4
...
我想按消息id删除消息。我如何像这样存储它们并按消息id删除它们?如果您将结构更改为同时保存用户和消息,您将能够轻松实现它。下面是一个使用哈希的示例:
Message:<MessageID>
ID MessageID
UserID UserID
Message MessageText
消息:
ID消息ID
用户ID用户ID
消息文本
ID字段是冗余的,因为它已经存在于哈希键名称中,但当它也是其中的一个元素时,有时更易于使用。
您还应该添加一些辅助集,这取决于您的用例
User:<userID> {messageID1, messageID2, etc...}
Users {ID1, ID2, etc...}
用户:{messageID1、messageID2等..}
用户{ID1、ID2等..}
您可以一次完成并使用SORT从多个散列中获取消息元素
顺便说一句,您应该切换到userID而不是name,并保留ID到name的映射
只能通过消息ID进行删除,但应更新一些键。您应该编写一个更新所有相关键的LUA脚本。(SCRIPT LOAD可加载一次脚本,EVALSHA可每次使用脚本-不要每次调用都使用EVAL)