Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis 将聊天信息和id存储在列表中_Redis - Fatal编程技术网

Redis 将聊天信息和id存储在列表中

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

我想使用redis在ram中存储聊天信息。我想要这样的数据结构:

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)