资讯专栏INFORMATION COLUMN

Redis字符串(STRING)介绍

zhichangterry / 3404人阅读

摘要:上篇文章我们介绍了五种数据类型中一些通用的命令,本文我们来看看数据类型独有的操作命令。小伙伴在看官方文档时,有什么问题欢迎留言讨论。

上篇文章我们介绍了五种数据类型中一些通用的命令,本文我们来看看STRING数据类型独有的操作命令。

本文是Redis系列的第三篇文章,了解前面的文章有助于更好的理解本文:


1.Linux上安装Redis
2.Redis中的五种数据类型简介


STRING APPEND

使用APPEND命令时,如果key已经存在,则会直接在value后追加值,如果key不存在,则会先创建一个value为空字符串的key,然后再追加:

127.0.0.1:6379> APPEND k1 hello
(integer) 5
127.0.0.1:6379> GET k1
"hello"
127.0.0.1:6379> APPEND k1 world
(integer) 10
127.0.0.1:6379> GET k1
"helloworld"
DECR

DECR命令可以实现对value的减1操作,如果key不存在,则key对应的初始值会被置为0,如果key的value不为数字,则会报错,如下:

127.0.0.1:6379> SET k3 19
OK
127.0.0.1:6379> DECR k3
(integer) 18
127.0.0.1:6379> GET k3
"18"
127.0.0.1:6379> SET k4 aa
OK
127.0.0.1:6379> DECR k4
(error) ERR value is not an integer or out of range
DECRBY

DECRBY和DECR类似,不同的是DECRBY可以指定步长,如下:

127.0.0.1:6379> GET k3
"8"
127.0.0.1:6379> DECRBY k3 4
(integer) 4
127.0.0.1:6379> GET k3
"4"
GET

GET命令用来获取对应key的value,如果key不存在则返回nil,如下:

127.0.0.1:6379> GET k5
(nil)
GETRANGE

GETRANGE用来返回key所对应的value的子串,子串由start和end决定,从左往右计算,如果下标是负数,则从右往左计算,其中-1表示最后一个字符,-2是倒数第二个...,如下:

127.0.0.1:6379> SET k1 helloworld
OK
127.0.0.1:6379> GETRANGE k1 0 2
"hel"
127.0.0.1:6379> GETRANGE k1 -3 -1
"rld"
GETSET

GETSET命令可以用来获取key所对应的value,并对key进行重置,如下:

127.0.0.1:6379> SET k1 v1
OK
127.0.0.1:6379> GET k1
"v1"
127.0.0.1:6379> GETSET k1 vv
"v1"
127.0.0.1:6379> GET k1
"vv"
INCR

INCR操作可以对指定key的value执行加1操作,如果指定的key不存在,那么在加1操作之前,会先将key的value设置为0,如果key的value不是数字,则会报错。如下:

127.0.0.1:6379> INCR k2
(integer) 1
INCRBY

INCRBY和INCR功能类似,不同的是可以指定增长的步长,如下:

127.0.0.1:6379> INCRBY k2 99
(integer) 100
INCRBYFLOAT

INCRBYFLOAT命令可以用来增长浮点数,如下:

127.0.0.1:6379> SET k1 0.5
OK
127.0.0.1:6379> INCRBYFLOAT k1 0.33
"0.83"
MGET与MSET

MGET与MSET分别用来批量设置值和批量获取值,如下:

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
SETEX

SETEX用来给key设置value,同时设置过期时间,等效于先给key设置value,再给key设置过期时间,如下:

127.0.0.1:6379> SETEX k1 30 v1
OK
127.0.0.1:6379> TTL k1
(integer) 26
127.0.0.1:6379> GET k1
"v1"
PSETEX

PSETEX的作用和SETEX类似,不同的是,这里设置过期时间的单位是毫秒,如下:

127.0.0.1:6379> PSETEX k1 60000 v1
OK
127.0.0.1:6379> PTTL k1
(integer) 55412
SETNX

SETNX是 SET if Not eXists的简写,SET命令在执行时,如果key已经存在,则新值会覆盖掉旧值,而对于SETNX命令,如果key已经存在,则不做任何操作,如果key不存在,则效果等同于SET命令。如下:

127.0.0.1:6379> SETNX k1 v1
(integer) 1
127.0.0.1:6379> SETNX k1 vv
(integer) 0
127.0.0.1:6379> GET k1
"v1"
MSETNX

MSETNX兼具了SETNX和MSET的特性,但是MSETNX在执行时,如果有一个key存在,则所有的都不会执行,如下:

127.0.0.1:6379> MSETNX k1 v1 k2 v2
(integer) 0

因为k1已经存在,所以k2也没执行成功。

SETRANGE

SETRANGE用来覆盖一个已经存在的key的value,如下:

127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> SETRANGE k1 5 redis
(integer) 10
127.0.0.1:6379> get k1
"helloredis"

但是如果已经存在的key的value长度小于offset,则不足的地方用0补齐,如下:

127.0.0.1:6379> set k1 helloredis
OK
127.0.0.1:6379> SETRANGE k1 20 --java
(integer) 26
127.0.0.1:6379> GET k1
"helloredisx00x00x00x00x00x00x00x00x00x00--java"
STRLEN

STRLEN用来计算key的value的长度,如下:

127.0.0.1:6379> STRLEN k1
(integer) 26

OK,STRING相关的命令我们就介绍这么多,当然还有很多其他的,小伙伴们可以参考官方文档http://www.redis.cn/commands....。小伙伴在看官方文档时,有什么问题欢迎留言讨论。

更多资料请关注公众号:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36938.html

相关文章

  • redis专题(2)】命令语法介绍string

    摘要:当不存在时,返回一个错误。,对给定求逻辑非,并将结果保存到。空字符空格求逻辑或注意对于操作不能多个查返回的。通配任意多个字符包括没有如和等。通配括号内的某个字符如和,但不匹配。 REDIS有6大数据结构:string,link,sortedset,sets,hash,Geo。 这6个结构我将用6篇文章来记录各自是怎么用的,然后再用一篇文章来说一下各自的应用场景; string 增 se...

    laoLiueizo 评论0 收藏0
  • redis专题(2)】命令语法介绍string

    摘要:当不存在时,返回一个错误。,对给定求逻辑非,并将结果保存到。空字符空格求逻辑或注意对于操作不能多个查返回的。通配任意多个字符包括没有如和等。通配括号内的某个字符如和,但不匹配。 REDIS有6大数据结构:string,link,sortedset,sets,hash,Geo。 这6个结构我将用6篇文章来记录各自是怎么用的,然后再用一篇文章来说一下各自的应用场景; string 增 se...

    luffyZh 评论0 收藏0
  • Redis基础:基本介绍redis的应用场景、五种数据类型、持久化操作、主从模式

    摘要:区别的是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步。存盘可以有意无意的对数据进行写操作。二的应用场景缓存常常作为数据缓存。如果只用类型,就可以被看作加上持久化特性的。 一、Redis基本概念介绍和特性 1.1 Redis基本概念介绍     showImg(https://segmentfault.com/img/bVWpvd?w=50...

    QLQ 评论0 收藏0
  • Redis基础:基本介绍redis的应用场景、五种数据类型、持久化操作、主从模式

    摘要:区别的是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步。存盘可以有意无意的对数据进行写操作。二的应用场景缓存常常作为数据缓存。如果只用类型,就可以被看作加上持久化特性的。 一、Redis基本概念介绍和特性 1.1 Redis基本概念介绍     showImg(https://segmentfault.com/img/bVWpvd?w=50...

    _ivan 评论0 收藏0
  • Redis中5种数据结构的使用场景介绍

    这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String、Hash、List、Set、Sorted Set做了讲解,需要的朋友可以参考下 一、redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码。目前目标是吃透 redis 的数据结构。我们都知道,在 redis 中...

    DandJ 评论0 收藏0
  • Python--Redis实战:第三章:Redis命令:第一节:符串

    摘要:对字符串执行自增和自减操作的实例导入包包与本地进行链接,地址为,端口号为尝试获取一个不存在的键将得到一个值。上一篇文章实战第二章使用构建应用第五节网页分析下一篇文章实战第三章命令第二节列表 上一篇文章: Python--Redis实战:第二章:使用Redis构建Web应用:第五节:网页分析下一篇文章:Python--Redis实战:第三章:Redis命令:第二节:列表 在Redis里...

    lindroid 评论0 收藏0

发表评论

0条评论

zhichangterry

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<