Redis-0x30-共享对象

Redis-0x27-数据结构redisObject中讲到了redisObject的refcount用处

下面是共享变量的使用地方,在server.ccreateSharedObjects方法中

1
2
3
4
5
6
7
8
// 字符串的共享变量
shared.redacted = makeObjectShared(createStringObject("(redacted)",10));
// 小整数缓存池
for (j = 0; j < OBJ_SHARED_INTEGERS; j++) {
shared.integers[j] =
makeObjectShared(createObject(OBJ_STRING,(void*)(long)j));
shared.integers[j]->encoding = OBJ_ENCODING_INT;
}

小整数缓存池是一种常用技术手段,把0到1w的整数都作为共享对象实例化出来缓存起来,这种小整数被使用概率比较高频,用空间换时间,减少以后的频繁创建对象的开销


Redis-0x30-共享对象
https://bannirui.github.io/2025/02/11/Redis/Redis-0x30-共享对象/
作者
dingrui
发布于
2025年2月11日
许可协议