我想知道是否有人有过使用这些搜索引擎的经验,我在大约 2500 条记录中包含 id 和 name (id-> 5 ...... name-> city, state)一个表,它是只读的,几乎从不改变,如果我选择 mysql,我想使用:选择 id,名称来自名称像 '%text%' 和名称像 '%othertext%' 的城市; ...一个,对于每个单词,或者 Redis,哪个选项更适合这种情况?是一个网站的自动完成功能,存在城市名称很长,每个名称有几个单词。
最佳答案
对于自动完成列表(使用 startswith 或通配符搜索),Redis 本身并不是您的最佳选择。我最近向 Redis 添加了一些功能来实现这一点(好吧,startswith 位)。查看拉取请求 here .
如果您想搭上 NoSQL 的马车,像 ElasticSearch 或 SOLR 这样的集成解决方案值得考虑。他们使用 Redis 作为后端,并提供复杂的标记化和自然语言检测(Lucene 等)。
使用对象映射器,例如(此处为 Python 示例)Josiah Carlsons 的 rom或 Luca Sbardella 的 stdnet , 也是一种选择。它们存储数据的方式使得可以使用自动 Lua 脚本在 Redis 中执行简单查询。
如果您更喜欢坚持使用 SQL,那么使用 MySql 或 Postgres 等关系数据库也没有错。尤其是对于如此少量的行。
希望这有帮助,TW
关于mysql - Redis vs Mysql 引擎类型内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740739/