基本问题:使用Node.js我想获取redis数据库中的所有密钥.当我调用密钥时,我的redis db看起来像这样;
所以我拥有的每条记录都有一个唯一的密钥,生成为随机字符串.现在我想调用类似foreach(Redis中的键)的内容并获取redis中的所有键.是否可以使用Node.js和Redis 完成"SELECT*FROM Redis"式查询
Bil*_*ill 42
当然,您需要安装可在https://github.com/mranney/node_redis找到的redis模块. nodejs
npm install node_redis
Run Code Online (Sandbox Code Playgroud)
更新
上述命令不再可用.你可以使用以下内容:
npm install redis
Run Code Online (Sandbox Code Playgroud)
然后你会做:
var redis = require('redis'),
client = redis.createClient();
client.keys('*', function (err, keys) {
if (err) return console.log(err);
for(var i = 0, len = keys.length; i < len; i++) {
console.log(keys[i]);
}
});
Run Code Online (Sandbox Code Playgroud)
一般来说,您不希望总是返回所有键(性能对于较大的数据集会很糟糕),但如果您只是测试一下,这将会起作用.Redis文档中甚至还有一个很好的警告:
警告:将KEYS视为仅应在生产环境中使用的命令.在针对大型数据库执行时可能会破坏性能.此命令用于调试和特殊操作,例如更改键空间布局.不要在常规应用程序代码中使用KEYS.如果您正在寻找一种在键空间子集中查找键的方法,请考虑使用集合.
小智 6
安装node_redis
npm install redis
Run Code Online (Sandbox Code Playgroud)
然后我执行以下操作来获取所有密钥的数据
var redis = require('redis'),
client = redis.createClient();
client.multi()
.keys('*', function (err, replies) {
// NOTE: code in this callback is NOT atomic
// this only happens after the the .exec call finishes.
console.log("MULTI got " + replies.length + " replies");
replies.forEach(function (reply, index) {
console.log("Reply " + index + ": " + reply.toString());
client.get(reply, function(err, data){
console.log(data);
});
});
})
.exec(function (err, replies) {});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27248 次 |
| 最近记录: |