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 操作。新闻热点
疑难解答