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

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


咨詢
建站咨詢
