【发布时间】:2013-12-20 01:12:24
【问题描述】:
由于我正在从事的项目需要使用键值存储,因此我最近一直在研究键值存储(Memcached、Redis)。在细读 Redis 的特性和浏览源代码时,我注意到 Redis 有一个动态字符串类型(酷)。
struct {
int len;
int free;
char buf[];
};
我以前使用过类似的方法,并且(高兴/好笑)看到类似的数据结构。但是有一些奇怪的行为。我对“免费”而不是“大小”语义以及值是 (int) 而不是 (unsigned int) 感到惊讶。
是否应该将元素 len 和 free 声明为 unsigned int?
什么会更好,一个成员 'free' 存储剩余空间,还是一个成员 'size' 存储总分配大小?
Redis 多久处理一次长于 (unsigned short int) 的字符串? (64k)?
【问题讨论】: