redis的五种数据类型

网上科普有关“redis的五种数据类型”话题很是火热,小编也是针对redis的五种数据类型寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您...

网上科普有关“redis的五种数据类型”话题很是火热,小编也是针对redis的五种数据类型寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

一、String | 字符串类型

Redis的字符串类型,可以存储字符串、整数或浮点数,如果存储的是整数或者浮点数,还能执行自增或自减操作。Reids的string类型是二进制的,可以包含任何数据,比如一个序列化的对象、一个、字节流等,不过存储大小上限是512M。

Redis底层定义了自己的一种数据结构。

二、List | 列表类型

Redis的列表类型和许多编程语言中的列表类型类似,可以有序地存储多个字符串,支持从列表的左端和右端推入或弹出元素,Redis列表的底层实现是压缩列表,Redis内容自己实现的数据结构和双端链表。

将一个或者多个value值插入列表的表头。如果 key 不存在,会创建一个空列表并执行 LPUSH 操作。当 key

存在但不是列表类型时,返回一个错误。

三、set | 集合类型

Redis的集合以无序的方式存储多个不同的元素,这里要注意的是无序和不同。除了对集合能快速执行添加、删除、检查一个元素是否在集合中之外,还可以对多个集合执行交集、并集和差集运算。

Redis的集合类型底层实现主要是通过一种叫做字典的数据结构。不过Redis为了追求极致的性能,会根据存储的值是否是整数,选择一种intset的数据结构。当满足一定条件后,会切换成字典的实现。

四、hash | 散列表(哈希表)

Redis的hash类型其实就是一个缩减版的redis。它存储的是键值对,将多个键值对存储到一个redis键里面。

hash类型的底层主要也是基于字典这种数据结构来实现的。

五、zset | 有序集合

有序集合相比较于集合,多个有序两个字,我们知道set集合类型存储的元素是无序的,那Redis有序集合是怎么保证有序的?使用分值,有序集合里存储这成员与分值之间的映射,并提供了分值处理命令,以及根据分值的大小有序地获取成员或分值的命令。

Redis有序集合的实现使用了一种叫跳跃表的数据结构(简称跳表,可自行查阅),同时也使用到了前面提到的压缩列表。也是满足一定条件的话,会自行转换。

如何查看redis占用内存大小

redis数据结构

Redis是一种存储key-value的内存型数据库,它的key都是字符串类型,value支持存储5种类型的数据:String(字符串类型)、List(列表类型)、Hash(哈希表类型、即key-value类型)、Set(无序集合类型,元素不可重复)、Zset(有序集合类型,元素不可重复)。

针对这5种数据类型,Redis在底层都是使用的redisObject对象表示的。redisObject有3个重要的属性:type、encoding、ptr。

其中,type表示value的数据类型,也就是我们上面说的5种数据类型(REDIS_STRING、REDIS_LIST、REDIS_HASH、REDIS_SET、REDIS_ZSET);encoding表示value的编码,即底层使用了哪种数据结构;ptr是一个指向保存value的底层数据结构的指针。

其中type和ptr属性不用做过多的解释,一看就知道什么意思,本篇文章主要分析value的encoding编码,也就是不同数据类型的value对应的底层数据结构是什么以及数据结构的原理分析。

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis常用数据类型

Redis最为常用的数据类型主要有以下五种:

String

Hash

List

Set

Sorted set

在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的:

首先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不同数据类型提供一个统一的管理接口,实际作者也提供了多种方法帮助我们尽量节省内存使用,我们随后会具体讨论。

关于“redis的五种数据类型”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[恨容]投稿,不代表长隆号立场,如若转载,请注明出处:https://clcgzw.com/cshi/202502-1833.html

(341)

文章推荐

  • 台风影响范围台风影响范围怎么看

    网上科普有关“台风影响范围台风影响范围怎么看”话题很是火热,小编也是针对台风影响范围台风影响范围怎么看寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、台风主要影响地区2、台风能造成周围多少公里产生大风大雨?3、台风影响哪些地区4、2021年台风影响哪里5、

    2025年02月19日
    274
  • 奔驰车级别划分

    网上科普有关“奔驰车级别划分”话题很是火热,小编也是针对奔驰车级别划分寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。奔驰等级从高到低排序为:S级、E级、C级、G级、GL级、M级、CL级、GLK级、A级、B级、SL级、和SLK级以及SLS(包括经典的SLR)

    2025年02月19日
    408
  • 孕妇感冒流涕怎么处理

    网上科普有关“孕妇感冒流涕怎么处理”话题很是火热,小编也是针对孕妇感冒流涕怎么处理寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。孕妇感冒流涕怎么处理 孕妇感冒流涕怎么处理,十月怀胎是煎熬的时期,在孕期中感冒流涕是不能像

    2025年02月19日
    313
  • 美丽冻人是什么意思?

    网上科普有关“美丽冻人是什么意思?”话题很是火热,小编也是针对美丽冻人是什么意思?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。正确书写方式为“美丽动人”,表达意思是:形容姿容美好、动人心神,通俗来说就是惊艳的让人心动。读音:měilìdòngrén词

    2025年02月20日
    266
  • 为什么建环专业那么冷门?

    网上科普有关“为什么建环专业那么冷门?”话题很是火热,小编也是针对为什么建环专业那么冷门?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。建环专业不冷门,只是很多人不够了解而已。建筑环境与设备工程就是暖通空调,建筑环境与设备工程是当前比较热门的专业之一,因为这

    2025年02月21日
    295
  • 比亚迪车子发动机异响什么原因?

    网上科普有关“比亚迪车子发动机异响什么原因?”话题很是火热,小编也是针对比亚迪车子发动机异响什么原因?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。发动机异响的主要原因是:1、机脚垫老化或松脱导致的异响。机脚垫一般装在发动机与车身中间,连接着车身和发动机,起

    2025年02月21日
    379
  • ICP是什么?

    网上科普有关“ICP是什么?”话题很是火热,小编也是针对ICP是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。ICP是InternetContentProvider的缩写,也称为ICP许可证或ICP备案,由中国工业和信息化部(MIIT)颁发。

    2025年02月24日
    251
  • 电子商务类型有哪些-

    网上科普有关“电子商务类型有哪些?”话题很是火热,小编也是针对电子商务类型有哪些?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。问题一:电子商务有几种类型企业与企业之间的电子商务(BusinesstoBusiness,B2B)B2B电子商务已经存在很

    2025年02月24日
    229
  • 【0元开公司】详解注册公司流程及费用_1

    网上科普有关“【0元开公司】详解注册公司流程及费用”话题很是火热,小编也是针对【0元开公司】详解注册公司流程及费用寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。越来越多的年轻人更加愿意去投身于创业者一个行业。他们勇于创新改革,但是作为一个新手来说注册公司流程

    2025年02月25日
    375
  • 蝶恋花陆游诗歌鉴赏

    网上科普有关“蝶恋花陆游诗歌鉴赏”话题很是火热,小编也是针对蝶恋花陆游诗歌鉴赏寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。蝶恋花陆游诗歌鉴赏,是宋代诗人陆游写的一首词,这首诗主要表达了诗人凉孤独之情,下面是这首词的原文以及阅读答案和赏析,欢迎大家参考阅读~

    2025年02月26日
    326

发表回复

本站作者后才能评论

评论列表(4条)

  • 恨容
    恨容 2025年02月26日

    我是长隆号的签约作者“恨容”!

  • 恨容
    恨容 2025年02月26日

    希望本篇文章《redis的五种数据类型》能对你有所帮助!

  • 恨容
    恨容 2025年02月26日

    本站[长隆号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 恨容
    恨容 2025年02月26日

    本文概览:网上科普有关“redis的五种数据类型”话题很是火热,小编也是针对redis的五种数据类型寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您...

    联系我们

    邮件:长隆号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们