使用redis 時,在dump.rdb同目錄下生成temp+pid.rdb檔案,不知道怎么來,也不是同事在代碼中創建的,我問他是什么時候生成的他也不清楚,由于不能測驗重啟會不會生成,所以比較麻煩,小弟也是用redis不久,搞不明白這個問題是怎么回事,希望大牛能幫忙解答,
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
查查具體啥行程,沒用的話就不用管了,或者洗掉了uj5u.com熱心網友回復:
是沒用,但是不知道為什么產生這個檔案,網上找了很久都找不到類似的問題,你知道的,程式員都是對不是自己預期出現的東西都感覺不舒服!uj5u.com熱心網友回復:
/* Save the DB on disk. Return C_ERR on error, C_OK on success. */
int rdbSave(char *filename) {
char tmpfile[256];
char cwd[MAXPATHLEN]; /* Current working dir path for error messages. */
FILE *fp;
rio rdb;
int error = 0;
snprintf(tmpfile,256,"temp-%d.rdb", (int) getpid());
fp = fopen(tmpfile,"w");
if (!fp) {
char *cwdp = getcwd(cwd,MAXPATHLEN);
serverLog(LL_WARNING,
"Failed opening the RDB file %s (in server root dir %s) "
"for saving: %s",
filename,
cwdp ? cwdp : "unknown",
strerror(errno));
return C_ERR;
}
rioInitWithFile(&rdb,fp);
if (rdbSaveRio(&rdb,&error) == C_ERR) {
errno = error;
goto werr;
}
uj5u.com熱心網友回復:
你的意思是這是redis本身的機制?uj5u.com熱心網友回復:
你好,我出現過這個情況,我的猜測是:當redis觸發rdb的持久化之后,如果記憶體中的redis資料太大,會臨時存盤到temp-pid.rdb檔案,最后再從temp-pid.rdb檔案copy到你redis設定的rdb持久化檔案中;轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/76171.html
標籤:專題技術討論區
