1.由于Tinyxml是一個非校驗的解析器,因此當解析一個文件時,很可能文件并不包含我們預期的某個節點,在這種情況下,TinyXml將返回空指針。因此,必須要對返回值進行檢查,否則將很容易出現內存訪問的錯誤。
2.將編碼結點的NODE_ID、redis服務器的ip和密碼、redis客戶端的路徑分別寫入對應的.ini文件,以便之后使用bash shell讀取以上shell變量值。
3.hiredis是redis數據庫的C接口,目前只能在linux下使用,幾個基本的函數就可以操作redis數據庫了。
--函數原型:redisContext *redisConnect(const char *ip, int port)說明:該函數用來連接Redis數據庫,參數為數據庫的ip地址和端口,一般redis數據庫的端口為6379,該函數返回一個結構體redisContext。 --函數原型:void *redisCommand(redisContext *c, const char *format, ...);說明:該函數執行命令,就如sql數據庫中的SQL語句一樣,只是執行的是redis數據庫中的操作命令,第一個參數為連接數據庫時返回的redisContext,剩下的參數為變參,就如C標準函數PRintf函數一樣的變參。返回值為void*,一般強制轉換成為redisReply類型的進行進一步的處理。 --函數原型void freeReplyObject(void *reply);說明:釋放redisCommand執行后返回的redisReply所占用的內存--函數原型:void redisFree(redisContext *c);說明:釋放redisConnect()所產生的連接。4.redis常用命令速查:http://doc.redisfans.com/
MULTI標記一個事務塊的開始。事務塊內的多條命令會按照先后順序被放進一個隊列當中,最后由 [*EXEC*](http://doc.redisfans.com/transaction/exec.html#exec) 命令原子性(atomic)地執行HGET key field返回哈希表 key 中給定域 field 的值。HINCRBY key field increment為哈希表 key 中的域 field 的值加上增量 increment 。增量也可以為負數,相當于對給定域進行減法操作。如果 key 不存在,一個新的哈希表被創建并執行 HINCRBY 命令。如果域 field 不存在,那么在執行命令前,域的值被初始化為 0 。對一個儲存字符串值的域 field 執行 HINCRBY 命令將造成一個錯誤。本操作的值被限制在 64 位(bit)有符號數字表示之內HSET key field value將哈希表 key 中的域 field 的值設為 value 。如果 key 不存在,一個新的哈希表被創建并進行 HSET 操作。如果域 field 已經存在于哈希表中,舊值將被覆蓋。HSETNX key field value將哈希表 key 中的域 field 的值設置為 value ,當且僅當域 field 不存在。若域 field 已經存在,該操作無效。如果 key 不存在,一個新哈希表被創建并執行 HSETNX 命令。KEYS pattern查找所有符合給定模式 pattern 的 key 。SADD key member [member ...]將一個或多個 member 元素加入到集合 key 當中,已經存在于集合的 member 元素將被忽略。假如 key 不存在,則創建一個只包含 member 元素作成員的集合。當 key 不是集合類型時,返回一個錯誤。EXPIRE key seconds為給定 key 設置生存時間,當 key 過期時(生存時間為 0 ),它會被自動刪除。HMSET key field value [field value ...]同時將多個 field-value (域-值)對設置到哈希表 key 中。此命令會覆蓋哈希表中已存在的域。如果 key 不存在,一個空哈希表被創建并執行 HMSET 操作。新聞熱點
疑難解答