redis中是否有类似于sql中where子句的关键字?

osh3o9ms  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(418)

我想看看如何在redis中根据这些键的值来选择键。我使用redis是为了为每个英文单词存储一个“单词分数”,以便在我的网站上提供搜索建议。词得分越大,这个词在网站上就越常见,因此当用户在搜索栏中键入内容时,推荐的词就越多。如果没有类似于sql中where子句的东西,我就无法实现这个特性,那么redis中有这种行为吗?我应该为这个问题实现不同类型的数据库吗(我选择redis是因为它很快)。

agxfikkp

agxfikkp1#

redis主要是一个内存数据存储。这意味着在某个时间点,某些键可能会被逐出。设计决策很简单——如果您希望所有数据永久保存,那么redis在这里肯定是一个错误的选择。但是,如果这是暂时的,并且您可以处理一些错误,那么您可以使用redis。
即使无法直接模拟 WHERE 从句行为,是可以做到的。
为此,您可以使用 ZRANGEBYSCORE redis中的命令。
所以,你能做的是,当单词出现时,使用 ZSCORE 命令获取当前分数并使用 ZADD 命令。
查询时,请使用 ZRANGEBYSCORE 命令获取整个列表,然后根据需要选择条目。

qlvxas9a

qlvxas9a2#

redis没有针对二级索引的内置解决方案,但是您可以使用内置的数据结构构建自己的可搜索索引请参见:redis的二级索引。
另一种选择是添加redis扩展模块,提供简单的索引机制和扩展的查询语言。

相关问题