redis下的持久化保存
rdb.h rdb.c ---> 完成数据保存到临时文件,再利用rename保存到指定文件的过程;
如果需要写一个数据持久化保存的功能时,可以参考这部分代码;
1 //rdb API 2 int rdbSaveType(rio *rdb, unsigned char type); 3 int rdbLoadType(rio *rdb); 4 int rdbSaveTime(rio *rdb, time_t t); 5 time_t rdbLoadTime(rio *rdb); 6 int rdbSaveLen(rio *rdb, uint32_t len); 7 uint32_t rdbLoadLen(rio *rdb, int *isencoded); 8 int rdbSaveObjectType(rio *rdb, robj *o); 9 int rdbLoadObjectType(rio *rdb); 10 int rdbLoad(char *filename); 11 int rdbSaveBackground(char *filename); 12 void rdbRemoveTempFile(pid_t childpid); 13 int rdbSave(char *filename); 14 int rdbSaveObject(rio *rdb, robj *o); 15 off_t rdbSavedObjectLen(robj *o); 16 off_t rdbSavedObjectPages(robj *o); 17 robj *rdbLoadObject(int type, rio *rdb); 18 void backgroundSaveDoneHandler(int exitcode, int bysignal); 19 int rdbSaveKeyValuePair(rio *rdb, robj *key, robj *val, long long expiretime, long long now); 20 robj *rdbLoadStringObject(rio *rdb);