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

Redis每日一练(03):APPEND和STRLEN命令

原创 AlbertS 2019-12-06
880

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

前言

在学习今天这两个新的命令之前,先来说下我在Redis官网发现的一个有趣的功能,之前说过官方的交互练习页面已经由于安全问题停止维护了,结果我在看文档的时候发现,这个功能居然放到了每个命令讲解的页面。

找一个简单的例子,比如GET命令这个页面内容非常少,一共就半页内容,进入这个页面时会发现光标停留在示例代码的最后一行:

 redis>  GET nonexisting
(nil)
redis>  SET mykey "Hello"
"OK"
redis>  GET mykey
"Hello"
redis> <----光标在这里

其实这个位置是可以直接输入命令进行调试的,这就方便多了,我们可以不需要安装本地环境,直接在网页上进行调试,之前学习Python的时候也用过类似的环境,就是在本地起一个运行python代码的服务,然后在网页上直接运行也很方便,但是redis官网这个是什么原理现在还不太清楚,后续可以研究一下,现在方便我们使用就好了。

APPEND

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

作用

如果操作的键存在,则在该键对应的值后面拼接指定的字符串,如果不存在则直接设置键的值为指定字符串,这时该命令与SET相同。返回值是一个数字,表示操作之后字符串的长度。

练习

在命令行启动redis客户端,或者直接在APPEND命令网页上找到光标位置直接练习。

先试一下对不存在的键使用APPEND命令:

127.0.0.1:6379> GET address
(nil)
127.0.0.1:6379> APPEND address China
(integer) 5
127.0.0.1:6379> GET address
"China"
127.0.0.1:6379>

再尝试一下对已存在键的APPEND命令:

127.0.0.1:6379> GET address
"China"
127.0.0.1:6379> APPEND address " BeiJing"
(integer) 13
127.0.0.1:6379> GET address
"China BeiJing"

如果APPEND操作的键不是字符串类型会报错:

127.0.0.1:6379> hset user name albert
(integer) 1
127.0.0.1:6379> APPEND user test
(error) WRONGTYPE Operation against a key holding the wrong kind of value

STRLEN

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

作用

返回存储在键key中的字符串的长度,如果key不存在则返回0,如果key对应的值不是字符串类型就会报错。

练习

测一下字符串类型的键存在的情况:

127.0.0.1:6379> SET name albert
OK
127.0.0.1:6379> STRLEN name
(integer) 6
127.0.0.1:6379>

尝试一下key不存在的情况,返回值应该是0:

127.0.0.1:6379> GET class
(nil)
127.0.0.1:6379> STRLEN class
(integer) 0
127.0.0.1:6379>

key的类型不是strings的时候,调用STRLEN会给出提示错误:

127.0.0.1:6379> hset user:1001 name albert
(integer) 1
127.0.0.1:6379> STRLEN user:1001
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379>

总结

  1. 今天这两个命令比较简单,APPEND可以末尾追加字符串,STRLEN可以获取字符串长度
  2. 学了几天突然发现有一点忘了说明,Redis的命令是不区分大小写,可以全大写、可以全小写,也可以大写和小写混合
  3. Redis虽然命令不区分大小写,但是键和值都是分大小写的,这一点也要注意
  4. 为了区分,在练习是尽量使用这种规则:已经学过或者正在学的命令用全大写,还没学习的命令用全小写。
  5. 所以在练习中看到不认识的小写命令不用着急,后面还会学到的,出现在这里应该只是配合当前的例子。

2019-11-25 18:14:33

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

评论