前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis的OBJECT命令(翻译)

Redis的OBJECT命令(翻译)

作者头像
跑马溜溜的球
发布2022-03-07 15:07:58
4080
发布2022-03-07 15:07:58
举报
文章被收录于专栏:日积月累1024

查看原文请点击这里

OBJECT subcommand [arguments [arguments …]]

2.2.3及以上版本可用

时间复杂度:O(1).

OBJECT命令允许你从内部查看给定的Redis对象。它对查错很有帮助,同时也让你了解某个key使用了何种编码类型,这对节省存储空间很有帮助。当使用Redis作为缓存时,你可以依据OBJECT命令获取的信息制定key的淘汰策略。

OBJECT命令支持多个子命令:

  • OBJECT REFCOUNT :返回特定key对应值的引用计数。这个命令主要用于调试。
  • OBJECT ENCODING :返回特定key对应值的内部编码方式。
  • OBJECT IDLETIME :返回特定key的空闲时间(既没有被读,也没有被写)(译者注:每当该key被读/写时,idletime会重新从0开始计数。),以秒为单位。虽然返回值以秒为单位,但这个计时器的实际精度是10秒级别,当然这点在未来的版本中有可能改变。只有当maxmemory-policy被设置为LRU或noeviction时,该子命令才可以使用。

对象可以有多种编码方式(译者注:redis中的值都是以内部对象的形式进行存储的,不同的编码方式即不同的存储对象类型):

  • 字串(String)编码方式为raw(常规的字串编码方式)或int(为了节省空间,如果一个字串是整数并可以用64位有符号整形来表示,那么这个字串将以这种方式编码)。(译者注:string还有一种编码方式为embstr,用于存储39字节以下的字串。)
  • 链表(List)对应的编码方式为ziplist或者linkedlist。当链表较小时会以ziplist方式编码以节省存储空间。
  • 集合(Set)对应的编码方式为intset或者hashtable。当集合较小且只由整数组成时使用intset编码。
  • 哈希表(Hashe)对应的编码方式为ziplist或者hashtable。当哈希表较小时使用ziplist存储。
  • 有序集合(Sorted Set)对应的编码方式为ziplist或者skiplist。ziplist编码可以用于较小的有序集合。skiplist编码可以用于任何大小的有序集合。

如果你的操作使用得Redis不再能够使用节省空间的编码方式(译者注:比如字串变得很长,集合变得很大。),Redis会自动将其转化为通用编码方式。

返回值

不同的子命令有不同的返回值。

  • refcount与idletime的返回值是整数。
  • encoding返回相应的编码类型。 如果查看的对象不存在,返回值为空(nil)。

例子

代码语言:javascript
复制
redis> lpush mylist "Hello World"
(integer) 4
redis> object refcount mylist
(integer) 1
redis> object encoding mylist
"ziplist"
//10秒后执行
redis> object idletime mylist
(integer) 10

一旦当前编码类型对应的存储空间不够,redis将转换编码类型。下面的例子对此进行了展示。

代码语言:javascript
复制
redis> set foo 1000
OK
redis> object encoding foo
"int"
redis> append foo bar
(integer) 7
redis> get foo
"1000bar"
redis> object encoding foo
"raw"
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OBJECT subcommand [arguments [arguments …]]
  • 返回值
  • 例子
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档