redis容量估算

本文介绍了Redis中存储原理,特别是sds类型的结构及其节省空间的设计。通过分析sds的header、robj对象以及dict结构,展示了如何计算一个键值对(如用户登录token)在Redis中占用的存储空间,从而帮助进行容量估算。
摘要由CSDN通过智能技术生成

工作中常会用到redis做存储型的kv存储,如何合理地估算所占空间呢?

首先要看看redis的存储原理,redis存储时候kv都会被处理成字符串或者说字符数组,redis实现了一种方便进行append,rehash等操作的sds类型。
sds.h可以看到typedef char *sds;这样的定义。光这样和普通的字符串看上去毫无区别,事实上sds有一个header的概念,同样在sds.h里面

/* Note: sdshdr5 is never used, we just access the flags byte directly.
 * However is here to document the layout of type 5 SDS strings. */
struct __attribute__ ((__packed__)) sdshdr5 {
    unsigned char flags; /* 3 lsb of type, and 5 msb of string length */
    char buf[];
};
struct __attribute__ ((__packed__)) sdshdr8 {
    uint8_t len; /* used */
    uint8_t alloc; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值