前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis的对象类型及其编码方式

Redis的对象类型及其编码方式

原创
作者头像
一凡sir
发布2023-09-19 10:09:31
2760
发布2023-09-19 10:09:31
举报
文章被收录于专栏:技术成长

建议先关注、点赞、收藏后再阅读。

Redis的对象类型有以下几种:

1. 字符串类型(string):

存储字符串,通常被用作缓存、计数器等。字符串类型的编码方式有raw、int、embstr和embstr_moved。

  • raw:存储的字符串可以是任意字符。
  • int:将字符串当作整数来存储,当字符串可以被解析为整数时使用。
  • embstr:如果字符串长度小于等于39字节且不包含'\0'字符,则使用这种方式存储。
  • embstr_moved:占位编码,表示该对象所存储的字符串已被迁移到其他地方。

2. 列表类型(list):

由多个字符串组成的有序列表。列表类型的编码方式有ziplist和linkedlist。

  • ziplist:压缩列表,将多个字符串按一定格式连续存储在一起,节省内存。
  • linkedlist:双向链表,每个节点存储一个字符串。

3. 哈希类型(hash):

键值对集合,其中每个键都是唯一的。哈希类型的编码方式有zipmap和hashtable。

  • zipmap:压缩字典,将键值对按一定格式连续存储在一起,兼具压缩和速度优势。
  • hashtable:字典,使用哈希表实现。

4. 集合类型(set):

无序的字符串集合,不允许重复元素。集合类型的编码方式有intset和hashtable。

  • intset:整数集合,当集合中的元素都为整数且个数不超过512时使用。
  • hashtable:字典,使用哈希表实现。

5. 有序集合类型(sorted set):

有序的字符串集合,不允许重复元素,每个元素关联一个分数。有序集合类型的编码方式有ziplist和skiplist。

  • ziplist:压缩列表,将元素和分数按一定格式连续存储在一起。
  • skiplist:跳跃表,同时使用有序链表和多层索引的数据结构。

Redis对象的共享结构和非共享结构如下:

  • 共享结构: 字符串类型的编码方式为int和embstr时,Redis对象采用共享结构。多个对象可以共享同一个字符串值,以节省内存。当有被引用的字符串被修改时,会进行复制操作。
  • 非共享结构: 其他类型的对象和字符串类型的编码方式为raw和embstr_moved时,Redis对象采用非共享结构。每个对象都保存自己的值,修改不会影响到其他对象。

以上就是Redis的对象类型及其编码方式,以及Redis对象的共享结构和非共享结构的介绍。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis的对象类型有以下几种:
    • 1. 字符串类型(string):
      • 2. 列表类型(list):
        • 3. 哈希类型(hash):
          • 4. 集合类型(set):
            • 5. 有序集合类型(sorted set):
            • Redis对象的共享结构和非共享结构如下:
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档