扫码一下
查看教程更方便
解析:
在Redis字符串的数据结构SDS中,有一个字段capcity。其中capacity是最大容量,len是实际长度,一般要高于实际字符串长度 len。
当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。(字符串最大长度为 512M)
检测容量大小的的方法如下:
static int checkStringLength(client *c, long long size) {
// 超出了512M,就直接报错
if (size > 512*1024*1024) {
addReplyError(c,"string exceeds maximum allowed size (512MB)");
return C_ERR;
}
return C_OK;
}