gpt4 book ai didi

redis - 在redis中搜索

转载 作者:可可西里 更新时间:2023-11-01 11:13:32 33 4
gpt4 key购买 nike

我有一个小型实时聊天应用程序,现在想将消息历史记录存储在 Redis 而不是 MySQL 中,仅仅是因为它快得多。

但是,我希望我的用户能够搜索消息历史记录。我如何在 Redis 中实现这一点?

经过一些谷歌搜索后,我发现我必须在 Redis 中创建所有单词的索引,但这似乎有点矫枉过正。

将数据同步回 MySQL 并让用户在那里搜索表是否更好?

我真的很想在历史部分使用 Redis,因为我的测试表明它在我的情况下要快得多。

有其他方法的想法吗?

最佳答案

我要大胆地说,Redis 是您特定用例的错误选择。查看 Use Cases of Redis 上的 stackoverflow 帖子一些见解。

你说redis快得多,但是如果我们没有解决方案可以比较,你怎么说呢? Redis 命令将比 等效 SQL 命令快得多,但是一旦您开始创建非目的数据结构,您就会扼杀 Redis 的优势。

更多原因:

<强>1。非结构化内容

如果您有一个固定的搜索结构,这在某种程度上是合理的,例如,您只允许用户/数据搜索。你的 key 可能看起来像

user:message_time

您是否对自由格式文本进行了适当的搜索,您可能会更好地使用擅长分析元数据并找出您需要的东西,可能类似于 elasticsearch (我自己不是专家)。

<强>2。 Redis 不是一个像样的归档

对于聊天应用程序,我会想象使用 Redis 作为最近对话的缓存,但最终您不希望 Redis 存储您的所有消息和元数据以用于搜索和索引,对吗?如果您的复制不是原始的,您可能会丢失所有数据,最终 Redis 是一个内存数据库。

<强>3。按键扫描噩梦

我什至无法想象这如何使用 Redis 完成,也许其他一些用户会这样做。你会对 key 进行什么样的扫描?您可能需要进行多次查询才能获得像样的东西。

关于redis - 在redis中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132831/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com