【Redis源码】setnx、setex、psetex命令

简介

在读本文之前,建议阅读文章:Redis Set命令详解.

在了解了set的原理之后,setnx、setex、psetex命令的原理我们也应该大致了解了,这3个命令也是先调用了tryObjectEncoding将值优化,再调用setGenericCommand将key-value设置到数据库,只不过这3个命令不需要解析额外参数。

setnx命令

格式:

setnx key value

  • 说明: 将key-value设置到数据库,当且仅当key不存在时。
  • 源码分析: 在调用setGenericCommand时,将flags赋值为OBJ_SET_NX,表示只有key不存在时才可以执行函数。

setex命令

格式:

setex key seconds value

  • 说明: 将key-value设置到数据库,并且指定key的超时秒数。
  • 源码分析: 在调用setGenericCommand时,将flags赋值为OBJ_SET_NO_FLAGS,expire赋值为UNIT_SECONDS,表示不需要考虑数据库中是否存在key,且时间单位为秒。

psetex命令

格式:

psetex key milliseconds value

  • 说明: 将key-value设置到数据库,并且指定key的超时毫秒数。
  • 源码分析: 在调用setGenericCommand时,将flags赋值为OBJ_SET_NO_FLAGS,expire赋值为UNIT_MILLISECONDS,表示不需要考虑数据库中是否存在key,且时间单位为毫秒。

标 题:《【Redis源码】setnx、setex、psetex命令
作 者:zeekling
提 示:转载请注明文章转载自个人博客:小令童鞋

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容