我正在学习redis,刚刚在redis实验室看到了这个演讲。有一件事让我很困惑,在8'34''他把redis数据类型分为主要和次要,这里是direct link,整数是次要数据类型。嗯,为什么整数是次要的?这是否意味着我需要使用Redis Stack来存储整数值到数据库?这看起来不对。
我正在学习redis,刚刚在redis实验室看到了这个演讲。有一件事让我很困惑,在8'34''他把redis数据类型分为主要和次要,这里是direct link,整数是次要数据类型。嗯,为什么整数是次要的?这是否意味着我需要使用Redis Stack来存储整数值到数据库?这看起来不对。
1条答案
按热度按时间cvxl0en21#
出于性能原因,Redis内部存储数据的方式不同,包括64位整数。
Redis对象可以用不同的方式编码:
字符串可编码为:
列表可以编码为ziplist或linkedlist。ziplist是用于为小列表保存空间的特殊表示。
集合可以被编码为intset或hashtable。intset是一种特殊的编码,用于仅由整数组成的小型集合。
杂凑可以编码为ziplist或杂凑数据表。ziplist是用于小型杂凑的特殊编码。
排序集可以编码为ziplist或skiplist格式。对于列表类型,小的排序集可以使用ziplist专门编码,而skiplist编码是一种适用于任何大小的排序集的编码。
一旦您执行了一个操作,使得Redis无法保留节省空间的编码,所有特殊编码类型都会自动转换为通用类型。
要检查Redis对给定密钥使用的编码,可以使用
OBJECT ENCODING
command。