redis 空格问题
来源:互联网 发布:gommdb数据库编辑器 编辑:程序博客网 时间:2024/06/04 19:59
记在redis 中遇到的空格问题,
在使用hset的时候,当键或值有空格的时候总是写不成功,如下封装的hmset方法:
int CRedisIntf::hash_mset(const string& key, const vector<string>& fields, const vector<string>& values){if (key.empty() || fields.empty() || values.empty()){return -1;}string strFormat = "HMSET " + key + " ";for (size_t i = 0; i < fields.size(); ++i){if (fields[i].empty()){return -1;}strFormat += fields[i] + " ";strFormat += values[i] + " ";}if (!_check_connect()){return -1;} mcgWriteLog("CRedisIntf::hash_mset %s",strFormat.c_str());redisAppendCommand(m_pRedis,strFormat.c_str());redisReply* reply = NULL;redisGetReply(m_pRedis,(void**)&reply);if (reply == NULL){redisFree(m_pRedis);m_pRedis = NULL;return -1;}if (reply->type == REDIS_REPLY_STATUS && strcmp(reply->str,"OK") == 0){freeReplyObject(reply);return 0;}else{freeReplyObject(reply);return -1;}}
strFormat += fields[i] + " ";strFormat += values[i] + " ";
redis提供的库,就是用空格来分隔参数的,如果一个字符串中本身带有一个空格,最后组装完成后这就等于两个参数,所以就会出现键和值数量不对应的关系,即使巧合对应了,但是肯定也不是我们期待的结果,解决办法:
1. 替换,在调用hset方法前,将键或值中的空格替换成指定字符(如:" " --> "0x00" ),在读取的时候("0x00" -->" ")。
2.编码,其实和方法1类似 ( valuse = Base64Encode(args,valuse))
其实都是想办法去掉空格即可
阅读全文
0 0
- redis 空格问题
- redis - 空格引起的bug
- 汉字空格问题
- 中文空格问题
- 输入输出空格问题!
- base64 空格的问题
- java 空格显示问题
- textarea空格问题
- jsp 显示空格问题
- html 空格问题
- 正则规范空格问题
- KindEditor空格问题
- URL中空格问题
- mysql查询空格问题
- Textarea去空格问题
- jquery中的空格问题
- Java路径空格问题
- KinSlideshow出现空格问题
- 最短路径题目(Dijkstra)
- uboot之flash初始化
- git push error: 无法推送一些引用到XXX
- docker学习笔记
- java中连接池的几种方式
- redis 空格问题
- 初学欧拉图,知识总结,后续增加
- c# enum
- 从零认识tomcat,构建一机多实例tomcat集群
- hdu1172猜数字
- 进程通信——匿名管道实现和验证
- 异或交换数值
- springmvc+mybatis+oracle简单登录
- 题目:初识python,第一个python程序,交互式环境下的输出以及文本编辑器介绍