* 将key改名为newkey,当key和newkey相同,或者key不存在时,返回一个错误。 * 当newkey已经存在时,RENAME命令将覆盖旧值 * @param[in] key 键 * @param[in] newkey 新键 * @return 设置成功true,设置失败false * @see * @note * */
| 2820 | * |
| 2821 | */ |
| 2822 | bool RedisClient::rename(const QString & key, const QString & newkey) { |
| 2823 | _sErrorInfo.clear(); |
| 2824 | if(key.trimmed().isEmpty()) { |
| 2825 | _sErrorInfo = "key is empty"; |
| 2826 | return false; |
| 2827 | } |
| 2828 | if(newkey.trimmed().isEmpty()) { |
| 2829 | _sErrorInfo = "newkey is empty"; |
| 2830 | return false; |
| 2831 | } |
| 2832 | |
| 2833 | _vCmdList.clear(); |
| 2834 | _vCmdList.push_back("RENAME"); |
| 2835 | _vCmdList.push_back(key); |
| 2836 | _vCmdList.push_back(newkey); |
| 2837 | |
| 2838 | _cmdResult = command(_vCmdList); |
| 2839 | if(_cmdResult[0] == '-') { |
| 2840 | if(parseRespError(_cmdResult,_sValue)) |
| 2841 | _sErrorInfo = _sValue; |
| 2842 | else |
| 2843 | _sErrorInfo = "parser resp error info failed"; |
| 2844 | _bRet = false; |
| 2845 | } else if(_cmdResult[0] == '+') { |
| 2846 | if(parseRespString(_cmdResult,_sValue)) { |
| 2847 | if(_sValue == "OK") |
| 2848 | _bRet = true; |
| 2849 | else |
| 2850 | _bRet = false; |
| 2851 | } else { |
| 2852 | _sErrorInfo = "parser resp string info failed"; |
| 2853 | _bRet = false; |
| 2854 | } |
| 2855 | } else { |
| 2856 | _bRet = false; |
| 2857 | _sErrorInfo = QString("parser resp type failed:") + _cmdResult[0]; |
| 2858 | } |
| 2859 | return _bRet; |
| 2860 | } |
| 2861 | |
| 2862 | /** |
| 2863 | * 当且仅当newkey不存在时,将key改名为newkey |