2 u013061106 u013061106 于 2016.03.24 11:33 提问

redis如何做字符串模糊查找

比如记录一条日志“this is my first syslog.”如果想实现查找关键字“syslog”搜索出所有带syslog信息的键值对,如何实现呢?

3个回答

oyljerry
oyljerry   Ds   Rxr 2016.03.24 17:07
 keys "*syslog*"
u013061106
u013061106 这里日志通过SET "20160325" "this is my first syslog."来保存,而keys "*syslog*"只能查找对key的模糊匹配,如何对val进行模糊匹配呢?如果把日志内容设计成key,个人也觉得不太合适。
2 年多之前 回复
liuk10
liuk10   2016.04.09 23:01

redis本身应该是不支持对value进行模糊搜索的。但是可以利用相关的插件来达到目的。
ruby,可以参考redis-search
java,可以参考redis-search4j
php,可以参考redis-fulltext-search-cn

u013061106
u013061106   2016.03.25 09:58

这里日志通过SET "20160325" "this is my first syslog."来保存,而keys "*syslog*"只能查找对key的模糊匹配,如何对val进行模糊匹配呢?如果把日志内容设计成key,个人也觉得不太合适。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
redis模糊查找
原文链接:https://www.cnblogs.com/commissar-Xia/p/7759484.html最近使用Redis优化项目功能,其中有一部分为模糊查询,找了很多帖子,也没有找到很好的解决方案和思路,最终皇天不负有心人啊,终于让我找到了!!!感谢该帖作者:WalkerAlone  原文链接:http://blog.csdn.net/qq_28893679/article/detai...
Redis 模糊匹配 SearchKeys
转载自:http://www.cnblogs.com/zhangyu1024/p/5229887.html语法:KEYS pattern 说明:返回与指定模式相匹配的所用的keys。 该命令所支持的匹配模式如下: (1)?:用于匹配单个字符。例如,h?llo可以匹配hello、hallo和hxllo等; (2)*:用于匹配零个或者多个字符。例如,h*llo可以匹配hllo和heeeello等
Nodis - 前缀匹配、模糊搜索, 基于redis和node.js
http://www.phonegap100.com/athreadinfo_5639.html Nodis github - Nodis 基于redis和node.js, 支持前缀匹配和模糊匹配搜索, 如用户名搜索、文章标题搜索等. 使用了zookeeper和thrift, 客户端可用任何支持thrift的语言实现, 也可很容易地移除这两部分代码. 很容易即可更改为
Lua 捕获 捕捉 模糊匹配
捕获 捕获是这样一种机制:可以使用模式串的一部分匹配目标串的一部分。将你想捕获的模式用圆括号括起来,就指定了一个捕获。 在string.find使用捕获的时候,函数会返回捕获的值作为额外的结果。这常被用来将一个目标串拆分成多个: pair = "name = Anna" _, _, key, value = string.find(pair, "(%a+)%s*=%s*(%a+)"
关于C/C++程序里如何实现模糊查找
相信学过C/C++的都应该了解如何在数组里面去查找数据,利用for循环便能很容易实现查找的功能,但若数组里的数据是字符串类型,而你又恰好需要实现的是根据关键字进行查找的话,那么按部就班对数组里的字符串进行一个个字符的对比是很难实现的,这时候就要想其他的办法了,C里面有一个函数便可以从侧面实现模糊查找,它就是strstr()函数,该函数搜索一个字符串在另一个字符串里的第一次出现,并返回所搜索到字符串
C++实现的字符串模糊匹配
C++基本没有正则表达式功能,当然像Boost里提供了正则。本文来源于博客园园友的一篇文章,请看: C/C++ 字符串模糊匹配 很早之前就看过这篇文章,原作者的需求很明确、代码实现也很好。 之所以又写这篇文章,是因为原作者只介绍了在Linux系统下直接调用系统函数fnmatch即可实现,而没有考虑在Windows在的使用。 本人这周看了下Google-glog代码,恰巧发现了一个类似fnm
字符串匹配/模糊匹配(查找/模糊查找)的算法
这个还从一次的华为机试的题目说起,题目大概如下
用C++编写的姓名模糊查找函数
/*求字符串准长度函数 用来求一个即包含字母数字又包含文字的字符串的长度(一个中文字只算1个长度) p:接收字符串 返回值:字符串的准长度*/ int Strlen(char *p) {  int len=0;  while(*p!='')  {   len++;   (*p>0)?p++:p=p+2;  //如果当前的字符的ASCII码为正(指针下移一位),为负(指针下移两位
Redis模糊操作
Redis模糊匹配查询查询后缀为time的所有Key值:./redis-cli KEYS “*time”Redis模糊匹配删除删除所有后缀为time的所有Key值:./redis-cli KEYS “*time” | xargs ./redis-cli DEL查看redis使用情况./redis-cli info登录Redis 本地Redis:进入redis-server/bin,执行命令:./re
Redis命令:scan实现模糊查询
1.前言从Redis v2.8开始,SCAN命令已经可用,它允许使用游标从keyspace中检索键。 对比KEYS命令,虽然SCAN无法一次性返回所有匹配结果,但是却规避了阻塞系统这个高风险,从而也让一些操作可以放在主节点上执行。2.SCAN相关命令SCAN相关命令还包括SSCAN 命令、HSCAN 命令和 ZSCAN 命令,分别用于集合、哈希键及有续集等SCAN 命令用于迭代当前数据库中的数据库...