string - 如何在 Redis 中进行搜索?

标签 string search redis

在 MySQL 中我有一个表:

cities 其中包括 2 列:namepopulation

然后我用这个得到搜索结果:

SELECT * FROM cities WHERE name LIKE '%Bu%' ORDER by population DESC LIMIT 2

我得到了 BucharestBudapest 的结果。

我如何在 Redis 中执行此操作?我的意思是如何创建类似的结构,然后如何搜索值?

最佳答案

我认为您需要对键值存储的工作原理做更多的研究,但要将您的帖子用作过于简化的示例,一种方法是让您创建所有值的键,然后创建与这些键匹配的索引,如:

SET c1 "Bucharest"
SET c3 "Budapest"
SADD city:bu c1
SADD city:bu c3
SMEMBERS city:bu

=> ["c1","c3"]

您可以使用:http://try.redis-db.com/尝试一下。

将其扩展为 3 个字符的搜索:

SADD city:buc c1
SMEMBERS city:buc

=>["c1"]

有很多方法可以解决这个问题,包括可以为索引分配排名的方法等。另请注意,此示例与引用的 example 的方法不同。 , 但更容易理解——它类似于使用 here .

关于string - 如何在 Redis 中进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604455/

上一篇:redis-cli 不工作

下一篇:Django 缓存性能

相关文章:

search - 使用 Redis 从集合中反向搜索

c# - 如何在订阅时保持 StackExchange.Redis 打开

string - 方案 - 字符串附加错误类型以应用错误

string - Stata:如何将字符串变量更改为日期?

ios - 由于条件绑定(bind)错误的初始化程序,无法将文本 append 到字符串数组

search - 是否有用于索引文本搜索的最常见英语单词列表?

php - 在没有控制台的托管服务器上替代 sphinx 搜索

node.js - 使 Node.js Redis 客户端的 .multi() 和 .batch() 在结果中返回错误以用于测试目的

perl - redis HLL 误报太多

c++ - std::string 到 char* 而不切割字节