Redis作为一种高性能的内存数据库,在许多WEB应用中得到了广泛应用。然而,Redis里的数据是有时效性的,一定时间后,Redis内的数据将无法被访问、实用,即使从逻辑上来说它们仍然是有用的数据。
专注于为中小企业提供成都网站设计、成都网站制作、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业大冶免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
因此,基于Redis的过期日期的数据转移解决方案几乎成为必不可少的。下面将实现一个过期转移的脚本,以完成未实用的Redis数据迁移到MongoDB存储,实现改变Redis里数据有效期,使其永久有效。
初始化MongoDB和Redis连接:
“`javascript
// mongodb
const mongo = require(‘mongodb’);
const mongodb = new mongo.MongoClient(‘mongodb://localhost:27017’);
// redis
const redis = require(‘redis’);
const client = redis.createClient({
host: ‘127.0.0.1’,
port:6379
});
client.select(1);
之后,创建一个用于操作Redis过期KEY的函数:
```javascript
// 操作过期key的函数
async function expiredKey(){
// 连接mongodb
const dbs = awt mongodb.connect();
// 获取Redis的所有过期key
let keyList = awt client.keys('*expires*');
for(let key of keyList){
// 获取key的内容
let content = awt client.get(key);
// 将key的内容插入MongoDB
let insertResult = awt dbs.db('databaseName').colletion('colletionName').insertOne({
key_name: key,
content: content
});
if (insertResult.result.ok == 1) {
console.log('内容插入MongoDB成功');
// 删除Redis里对应过期key
let delResult = awt client.del(key);
if(delResult) console.log('Redis过期Key已删除');
}
}
client.quit();
dbs.close();
}
利用定时器,定时调用上面定义的函数,实现redis过期转移定时任务。
“`javascript
// 定时任务
const schedule = require(‘node-schedule’);
const rule = new schedule.RecurrenceRule();
rule.hour = 1;
schedule.scheduleJob(rule, async function() {
awt expiredKey();
});
因此,利用上述的脚本让我们可以轻松的将定期更新的内容从Redis转移到MongoDB,由于MongoDB是永久存储的,这样就可以节约带宽空间,避免重新拉取数据,并将有效的数据的有效性改变为永久有效,使数据更长久有效。
创新互联网络推广网站建设,网站设计,网站建设公司,网站制作,网页设计,1500元定制网站优化全包,先排名后付费,已为上千家服务,联系电话:13518219792
分享标题:Redis过期转移让数据更长久有效(redis过期转移)
分享URL:http://www.gawzjz.com/qtweb/news19/175169.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联