部分代碼中函數名一致,導致編譯報錯,因此需要為對應的函數加static修飾,報錯如圖 4-7所示。

 

圖 4-7  函數重定義錯誤

    由于SylixOS默認棧空間大小無法滿足服務器對棧空間的需求,因此修改棧空間大小,具體代碼如程序清單 4-2所示。

程序清單 4-2  設置棧空間大小

int main(intargc,char **argv) {

   LW_CLASS_THREADATTR threadAttr;

   LW_HANDLE            hThreadId;

 

   __GiArgc  = argc;

   __GppcArgv = argv;

 

   Lw_ThreadAttr_Build(&threadAttr,

                        350 * LW_CFG_KB_SIZE,

                        LW_PRIO_NORMAL,

                        LW_OPTION_THREAD_STK_CHK,

                        LW_NULL);

 

   hThreadId = Lw_Thread_Create(t_server, redisServer, &threadAttr, LW_NULL);

   if (hThreadId ==LW_OBJECT_HANDLE_INVALID) {

        return (PX_ERROR);

   }

 

   Lw_Thread_Join(hThreadId,NULL);

 

   return ERROR_NONE;

}

    SylixOS下rename的實現是用新文件直接替換原文件,由于原文件已經存在可能導致替換失敗,因此在rename前需要先刪除原文件,具體代碼如程序清單 4-3所示。

程序清單 4 3  rename的使用

unlink(filename);

if (rename(tmpfile,filename) == -1) {

   serverLog(LL_WARNING,Error movingtempappend only file on the final destination: %s,strerror(errno));

   unlink(tmpfile);

   return C_ERR;

}

 

    將工程文件內的fork通過posix_spawn函數進行功能替換,替換完成后編譯工程,生成服務器的可執行程序即可。

4.2 動態庫工程創建

    創建libredis動態庫工程,刪除libredis.c文件,導入hiredis文件夾,工程如圖 4-8所示。

 

圖 4-8  動態庫工程

    鏈接cextern動態庫,在專家模式下修改源文件和頭文件目錄,如圖 4-9所示。

 

圖 4-9  源文件和頭文件路徑

    編譯完成即可。

5. Redis的使用

    運行服務器,redis.conf為服務器配置文件,可對服務器功能進行配置,運行服務器如圖 5-1所示。

 

圖 5-1  運行Redis服務器

    運行測試程序,測試Redis的API功能是否正常,運行結果顯示功能正常,具體現象如圖 5-2所示。

 

圖 5-2  測試用例運行結果

6. 參考資料

官網:
https://redis.io/
博客: 
http://blog.csdn.net/kingqizhou/article/details/8104693
文檔:
《Redis命令參考手冊》
《Redis實戰》

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » SylixOS移植Redis庫總結

登錄

找回密碼

注冊