为什么要缓存
- 增加响应幅度,
- 减轻服务器压力
const mongoose = require("mongoose");
const redis = require("redis");
var client = redis.createClient(7000,"192.168.75.136");
client.on("connect",function (err) {
if (err) {
console.log("连接失败");
}
})
mongoose.connect("mongodb://localhost:27017/yang");
const conn = mongoose.connection;
conn.on("open",function () {
console.log("连入成功");
})
conn.on("error",function () {
console.log("连入错误");
})
var s1=mongoose.Schema({name:String},{strict:false,versionKey:false,collect:"user",server:{auto_reconnect:true}})
var model = mongoose.model("user",s1);
mongoose.Query.prototype.exec=function(ballback,time){
var self=this;
var op = self["op"];
var conditions = self["_conditions"];
var cachekey=op+JSON.stringify(conditions);
console.log(cachekey);
client.get(cachekey,function (err,data) {
if (err) {console.log("获取失败");}
else {
if (data) {
console.log("有缓存")
ballback(null,data);
}else{
self["_"+op](function (err,data) {
console.log("没有缓存");
ballback(err,data);
if(data || data.length!=0){
client.set(cachekey,JSON.stringify(data), 'EX', time);
}
});
}
}
});
}
model.find({}).exec(function (err,data) {
if (err) {
console.log("获取失败");
}else {
console.log(data);
console.log("接收成功");
}
},60*5);