redis数字类型

rxztt3cl  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(291)

数字通常是如何存储在redis中的?例如,它似乎支持有限数量的标量,主要的标量是 string type . 或者,只是在客户端执行数字操作,例如:

> SET id 4

>>> int(r.get(id)) + ...
k4emjkb1

k4emjkb11#

为了节省内存,redis有一个复杂的编码机制。
价值 SET 命令为字符串类型。为了在redis中保存一个字符串,我们需要一个用于该字符串的内存块,以及一个指向该内存块的指针。但是,如果该值可以转换为整数,redis会将字符串值转换为整数,并使用指针保存整数。这样就可以节省大量内存,即不需要为字符串分配额外的内存块。
另外,redis为整数0到9999预先分配10000个对象。如果键的值在0到9999之间,redis将使这些键共享该值,即指向这些预分配对象的指针,而不是为这些键创建新对象。

相关问题