实现多种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读取数据 );
}
})
}
而Redis整合MySQL的优点则在于可以节省无用的IO操作,把经常访问的数据放入到Redis中,使得用户能够更快的获取结果数据,而不需要每次都去MySQL中获取,从而提高整体性能。例如,为减少对MySQL的IO操作,假设有一个“商品”的系统,那么可以使用Redis存储经常查询的商品信息,比如销量等,只有当商品的属性有变动时再更新MySQL,此时,就可以大大减少对MySQL的查询,可以提高整体的系统性能。
//下面代码中,将实现 Redis 整合 MySQL
const mysql = require( mysql );
const redis = require( redis );
const client = redis.createClient();
//获取mysql连接
const pool = mysql.createPool({
user: username ,
password: password ,
database: database_name ,
host: host_name
});
function getProductInfoFromDB(productid) {
return new Promise((resolve, reject) = {
pool.query( SELECT * FROM goods WHERE goodsid = ? , [productid], (err, rows) = {
if (err) reject(err);
else resolve(rows);
});
});
}
//定义redis操作
function redisOperations(productid) {
client.hget( goods , productid, (err, res) = {
if (err) {
console.log( redis内没有该数据 )
getProductInfoFromDB(productid).then(res = {
client.hset( goods , productid, JSON.stringify(res));
}).catch(err = {
console.log( mongoDB内没有查找到相应的数据 )
})
} else {
console.log( 从redis读取数据 );
}
})
}
以上就是基于Redis的多种数据库整合的大致思路,不管是MongoDB整合还是MySQL整合,都可以用类似的操作和思路来实现,并且可以得到更加强大的性能。在这种情况下,除了利用Redis进行缓存外,还可以将简单的逻辑放到Redis中,通过脚本实现,从
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 实现多种redis整合,打造更强大的性能(整合多个redis)
相关文章
- Redis实现的高效会话保持(redis会话保持)
- 如何使用Redis实现安全的登录(登录redis怎么使用)
- Redis集群清空即刻实现缓存量减法(清空redis集群命令)
- 数据管理Redis存储之道(数据如何放入redis)
- 单机Redis实现最高并发量(单机redis并发上限)
- 利用Redis实现高效增量爬虫(利用redis做增量爬取)
- 快速切换Redis节点的实用命令(切换redis节点命令)
- 保障数据安全的Redis客户端(安全的redis客户端)
- 如何有效评估Redis缓存的性能(如何测试redis缓存)
- 基于多节点连接的Redis实现高效分布式缓存(多节点连接redis)
- 机器人基于Redis的消息聊天机器人实现精准即时通讯(基于redis的消息聊天)
- 商品列表快速响应Redis缓存加速(商品列表 redis缓存)
- 实现数据快速迁移向Redis导入数据(向redis导数据)
- Redis集群不仅仅属于Redis(只有redis有集群吗)
- 面试需要必备Redis知识资料汇编(redis面试详细资料)
- Redis集群功能与实现详解(redis集群详细介绍)
- 红色的梦想Redis集群是否有分区(redis集群有分区吗)
- Redis队列长度控制强力精准实现(redis队列长度控制)
- 让你快速掌握Redis镜像的简易教程(redis镜像教程)
- Redis键名设计实施规范化提高性能(redis键名设计规范)
- Redis实现消息去重的可行方案(redis消息去重如何做)