在 MySQL 中我有一个表名为:
cities
其中包括 2 列:name
and population
然后我得到搜索结果:
SELECT * FROM cities WHERE name LIKE '%Bu%' ORDER by population DESC LIMIT 2
我得到了结果Bucharest
, Budapest
.
我怎样才能在 Redis 中做到这一点?我的意思是如何创建类似的结构,然后如何搜索值?
我认为您需要对键值存储的工作原理进行更多研究,但要使用您的帖子作为一个过于简化的示例,one执行此操作的方法是为所有值创建键,然后创建与这些键匹配的索引,例如:
SET c1 "Bucharest"
SET c3 "Budapest"
SADD city:bu c1
SADD city:bu c3
SMEMBERS city:bu
=> [“c1”,“c3”]
您可以使用:http://try.redis-db.com/ http://try.redis-db.com/尝试一下。
将其扩展为 3 个字符搜索:
SADD city:buc c1
SMEMBERS city:buc
=>[“c1”]
有很多方法可以解决这个问题,包括可以为索引分配排名的方法等。另请注意,此示例与引用的方法不同example http://antirez.com/post/autocomplete-with-redis.html,但更容易理解一点——它与使用的类似here http://playnice.ly/blog/2010/05/05/a-fast-fuzzy-full-text-index-using-redis/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)