Redis数据类型和应用场景

内容摘自https://juejin.im/post/6844903951502934030

Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合),及zset(有序集合)

首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值类型存储和表示这个字符串的,当然前提是这个字符串本身可以用数值表示,比如:“123”,“456”这样的字符串。

这里需要特殊说明一下VM字段,只有打开了redis的虚拟内存功能,此字段才会真正的分配内存,该功能默认是关闭状态的。通过上图我们可以发现redis使用redisObject来表示所有的key/value数据是比较浪费内存的,当然这些内存管理成本的付出也是为了给redis不同数据类型提供一个统一的管理接口,实际作者也提供了多种方法帮助我们尽量节省内存使用,我们随后会具体讨论。

 

一、string

string是redis的最基本的类型,你可以理解成与MEMcached一抹一样的类型,一个key对应一个value。value其实不仅是String

 

posted @ 2020-09-22 22:09  alittlecomputer  阅读(103)  评论(0编辑  收藏  举报