实现多种redis整合,打造更强大的性能(整合多个redis)
随着技术的不断发展,关系型数据库多种类型的整合能够更加大大提高应用系统的性能,比如Redis整合。Redis是一种被广泛应用的一种开源的、内存量大的、速度快的key-value(KV)类型的数据库,通常被用来作为缓存系统或者消息队列的存储目的。它可以和多种类型的数据库整合起来,例如MongoDB, MySQL, Oracle等,来实现更加强大的性能。
例如Redis整合MongoDB,其优点在于在访问中使用MongoDB保留主要的历史数据,而使用Redis作为缓存,以此来提高访问加载数据速度,增强整体的性能。例如,在设计了一个“订单”的应用时,需要录入跟踪“客户”的历史订单信息。因此,使用MongoDB来存储,而用Redis作为缓存,以减少对MongoDB的访问,提高客户订单的查看的速度以及整体的系统性能。
//下面代码中,将实现 Redis 整合 MongoDB
const mongoose = require(‘mongoose’);
const redis = require(‘redis’);
const client = redis.createClient();
mongoose.connect(‘mongodb://localhost/order_app’, {
useNewUrlParser: true,
useUnifiedTopology: true
})
const orderSchema = new mongoose.Schema({
customerID: Number,
payType: String,
amount: Number,
date: Date
}, { collection: ‘orders’ })
const orderDB = mongoose.model(‘Order’, orderSchema);
//定义redis操作
function redisOperations(orderid) {
client.hget(‘order’, orderid, (err, res) => {
if (err) {
console.log(‘redis内没有该数据’);
orderDB.findOne({ orderid }, (err, res) => {
if (err) console.log(‘mongoDB内没有查找到相应的数据’)
else {
client.hset(‘order’, orderid, JSON.stringify(res));
console.log(‘将mongoDB数据存入redis’);
}
})
} else {
console.log(‘从redis读取数据’);
}
})
}
相关文章