我有一个问题,是否可以在Redis中创建LIKE
运算符搜索?与关系(mysql / oracle)数据库类似。
我有复杂的json:
{"_id" : ObjectId("581c8b8854fdcd1ff8c944e0"),
"Objectcode" : "xxxxx",
"Objecttype" : "xxxx",
"docid" : "581c8b8554fdcd1ff8c93d10",
"description" : "Tags based search .... ",
"metaTags" : [
"tag1",
"tag2",
"tag3",
"tag5",
"tag6",
"tag7",
"tag8",
"tag9",
"tag10"
],
"__v" : 0
}
我想搜索metaTag数组我该怎么办?
由于
答案 0 :(得分:0)
您可以使用Redis * SCAN 命令http://redis.io/commands/scan,具体取决于type of data按模式过滤:
切勿在应用代码中使用 KEYS ,因为它可能会破坏性能。
两个主要的nodejs redis客户端库 node_redis 和 ioredis 支持它,带有一些语法糖:
const keys = [];
const redis = new Redis(); // ioredis
redis.mset('foo1', 1, 'foo2', 1, 'foo3', 1, 'foo4', 1, 'foo10', 1, () => {
const stream = redis.scanStream();
stream.on('data', data => {
keys = keys.concat(data);
});
stream.on('end', () => {
assert.equal(keys.sort(), ['foo1', 'foo10', 'foo2', 'foo3', 'foo4']);
});
});
答案 1 :(得分:0)