暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis每日一练(05):MGET和GETSET命令

原创 AlbertS 2019-12-08
1615

版权声明: 转载请注明出处!本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际许可协议

前言

相比上一篇文章中的提到这多个 SET 命令的变种,这篇总结显得简单许多,主要来看一下GET命令的变种,一种只有 MESET 和 GETSET 两个,这个 GETSET 看起来好像是 GET 和 SET 的杂合体。

SETEX

  • 最早出现版本:1.0.0
  • 时间复杂度:O(N)
  • 命令参数:MGET key [key …]
  • 操作类型:strings
  • 官方文档

作用

一次性返回多个key的值,相当于多次调用了 GET 命令。

练习

使用方法很简单,就在 MGET 命令后面跟着多个想查询的键即可,当然一个也是可以的。

127.0.0.1:6379> SET name albert
OK
127.0.0.1:6379> SET age 19
OK
127.0.0.1:6379> SET address China
OK
127.0.0.1:6379> MGET name age address
1) "albert"
2) "19"
3) "China"
127.0.0.1:6379>

GETSET

  • 最早出现版本:1.0.0
  • 时间复杂度:O(1)
  • 命令参数:GETSET key value
  • 操作类型:strings
  • 官方文档

作用

这个杂合体的作用的设置一个键的同时,返回这个建之前的值,为什么不拆成两个呢?因为这样是原子操作,如果拆成 GET 和 SET 两个命令,那么中间可能会插入其他的操作,使用这个 GETSET 就需要使用事务来包装了。

练习

这个命令有个应用就是取值然后清空,一个命令就搞定了:

127.0.0.1:6379> SET name albert
OK
127.0.0.1:6379> GETSET name tom
"albert"
127.0.0.1:6379> GET name
"tom"
127.0.0.1:6379>


127.0.0.1:6379> SET count 100
OK
127.0.0.1:6379> GETSET count 0
"100"
127.0.0.1:6379> GET count
"0"
127.0.0.1:6379>

总结

  1. 今天只有两个命令,可以算作是 GET 命令的变种
  2. 这个 GETSET 命令把 GET 和 SET 合到一起主要是为了原子操作

2019-11-26 20:31:58

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论