* 返回一个集合的全部成员,该集合是所有给定集合之间的差集 * 不存在的key被视为空集 * @param[in] keys 一个或多个集合 * @param[out] value 集合差集 * @return 成功true,失败false * @see * @note */
| 4205 | * @note |
| 4206 | */ |
| 4207 | bool RedisClient::sdiff(const QString & keys, QList<QByteArray> & value) { |
| 4208 | _sErrorInfo.clear(); |
| 4209 | if(keys.trimmed().isEmpty()) { |
| 4210 | _sErrorInfo = "key is empty"; |
| 4211 | return false; |
| 4212 | } |
| 4213 | |
| 4214 | _vCmdList.clear(); |
| 4215 | _vCmdList.push_back("SDIFF"); |
| 4216 | _vCmdList.push_back(keys); |
| 4217 | |
| 4218 | _cmdResult = command(_vCmdList); |
| 4219 | if(_cmdResult[0] == '-') { |
| 4220 | if(parseRespError(_cmdResult,_sValue)) |
| 4221 | _sErrorInfo = _sValue; |
| 4222 | else |
| 4223 | _sErrorInfo = "parser resp error info failed"; |
| 4224 | _bRet = false; |
| 4225 | } else if(_cmdResult[0] == '*') { |
| 4226 | if(parseRespSingelArray(_cmdResult,value, _iRet)) { |
| 4227 | _bRet = true; |
| 4228 | } else { |
| 4229 | _sErrorInfo = "parser resp bulk string info failed"; |
| 4230 | _bRet = false; |
| 4231 | } |
| 4232 | } else { |
| 4233 | _bRet = false; |
| 4234 | _sErrorInfo = QString("parser resp type failed:") + _cmdResult[0]; |
| 4235 | } |
| 4236 | return _bRet; |
| 4237 | } |
| 4238 | |
| 4239 | /** |
| 4240 | * 返回一个集合的全部成员,该集合是所有给定集合之间的交集 |