Warm tip: This article is reproduced from serverfault.com, please click

其他-Redis中是否有一个关键字的行为与SQL中的WHERE子句相似?

(其他 - Is there a keyword in redis that acts similarly to the WHERE clause in SQL?)

发布于 2020-11-29 21:42:09

我正在尝试看看如何根据这些键的值来选择Redis中的键。我正在使用redis来为英语中的每个单词存储一个“单词得分”,以便在我的网站上提供搜索建议。单词分数越大,该单词在网站上越常见,因此当用户在搜索栏中输入内容时,推荐的单词就越多。没有SQL中的WHERE子句,我无法实现此功能,因此在Redis中是否有这种行为?我是否应该为该问题实现另一种类型的数据库?(我选择redis是因为它速度很快)。

Questioner
Highboi
Viewed
0
Maruthi Adithya 2020-11-30 12:04:31

Redis主要是一个内存中的数据存储。这意味着在某个时间点,某些按键可能会被收回。设计决策很简单-如果你希望永久保留所有数据,那么Redis在这里肯定是错误的选择。但是,如果这是暂时的,并且你可以处理一些故障,那么可以使用Redis。

即使不可能直接模拟WHERE子句的行为,也可以做到。

为此,你可以使用ZRANGEBYSCORERedis中命令。

因此,你可以做的是,当单词出现时,使用ZSCORE命令获取当前得分,并使用命令将其更新为所需的分数ZADD

查询时,使用ZRANGEBYSCORE命令获取整个列表,然后根据需要选择条目。