新聞中心
Redis作為一種高性能的內(nèi)存數(shù)據(jù)庫(kù),在許多WEB應(yīng)用中得到了廣泛應(yīng)用。然而,Redis里的數(shù)據(jù)是有時(shí)效性的,一定時(shí)間后,Redis內(nèi)的數(shù)據(jù)將無(wú)法被訪問(wèn)、實(shí)用,即使從邏輯上來(lái)說(shuō)它們?nèi)匀皇怯杏玫臄?shù)據(jù)。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)大冶免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
因此,基于Redis的過(guò)期日期的數(shù)據(jù)轉(zhuǎn)移解決方案幾乎成為必不可少的。下面將實(shí)現(xiàn)一個(gè)過(guò)期轉(zhuǎn)移的腳本,以完成未實(shí)用的Redis數(shù)據(jù)遷移到MongoDB存儲(chǔ),實(shí)現(xiàn)改變Redis里數(shù)據(jù)有效期,使其永久有效。
初始化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);
之后,創(chuàng)建一個(gè)用于操作Redis過(guò)期KEY的函數(shù):
```javascript
// 操作過(guò)期key的函數(shù)
async function expiredKey(){
// 連接mongodb
const dbs = awt mongodb.connect();
// 獲取Redis的所有過(guò)期key
let keyList = awt client.keys('*expires*');
for(let key of keyList){
// 獲取key的內(nèi)容
let content = awt client.get(key);
// 將key的內(nèi)容插入MongoDB
let insertResult = awt dbs.db('databaseName').colletion('colletionName').insertOne({
key_name: key,
content: content
});
if (insertResult.result.ok == 1) {
console.log('內(nèi)容插入MongoDB成功');
// 刪除Redis里對(duì)應(yīng)過(guò)期key
let delResult = awt client.del(key);
if(delResult) console.log('Redis過(guò)期Key已刪除');
}
}
client.quit();
dbs.close();
}
利用定時(shí)器,定時(shí)調(diào)用上面定義的函數(shù),實(shí)現(xiàn)redis過(guò)期轉(zhuǎn)移定時(shí)任務(wù)。
“`javascript
// 定時(shí)任務(wù)
const schedule = require(‘node-schedule’);
const rule = new schedule.RecurrenceRule();
rule.hour = 1;
schedule.scheduleJob(rule, async function() {
awt expiredKey();
});
因此,利用上述的腳本讓我們可以輕松的將定期更新的內(nèi)容從Redis轉(zhuǎn)移到MongoDB,由于MongoDB是永久存儲(chǔ)的,這樣就可以節(jié)約帶寬空間,避免重新拉取數(shù)據(jù),并將有效的數(shù)據(jù)的有效性改變?yōu)橛谰糜行?,使?shù)據(jù)更長(zhǎng)久有效。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792
分享標(biāo)題:Redis過(guò)期轉(zhuǎn)移讓數(shù)據(jù)更長(zhǎng)久有效(redis過(guò)期轉(zhuǎn)移)
文章路徑:http://www.dlmjj.cn/article/dhgjeds.html


咨詢(xún)
建站咨詢(xún)
