Redis介绍--String数据类型介绍(四)

  上篇文章我们大致介绍了Redis中的五大数据类型的简介,下面的几篇文章,我们作为详细的介绍五大数据类型的操作使用。
  本文为Redis系列的第四篇文章,了解前面的文章更能有助于本文的理解:
Redis介绍–Linux系统下的安装(一)
Redis介绍–通用命令介绍(二)
Redis介绍–五大数据类型介绍(三)


主要常用命令:

set命令: 设置key的值

注意:此命令,如果设置的key的值不是一个单词的话,需要加""(双引号),否则报error。

127.0.0.1:6379> set address 深圳固戍
OK
127.0.0.1:6379> set sex 男 女
(error) ERR syntax error
127.0.0.1:6379> set sex "男 女"
OK
127.0.0.1:6379> 

get命令: 获取对应的key的值

GET命令用于获取对应key的值,如果key不存在则返回nil

127.0.0.1:6379> get name
"zmf"
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379>

strlen命令: 获取key的值的长度

127.0.0.1:6379> strlen name
(integer) 3
127.0.0.1:6379> 

append命令: 在原有的value的基础上追加内容

使用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 Redis
(integer) 10
127.0.0.1:6379> get k1
"helloRedis"
127.0.0.1:6379>

incr命令: 将key存储的内容加1

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

127.0.0.1:6379> get age
"22"
127.0.0.1:6379> incr age
(integer) 23
127.0.0.1:6379> get age
"23"
127.0.0.1:6379> incr k2
(integer) 1
127.0.0.1:6379> get k2
"1"
127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range
127.0.0.1:6379>

incrby命令: 将key存储的内容加指定的值

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

127.0.0.1:6379> get k2
"1"
127.0.0.1:6379> incrby k2 99
(integer) 100
127.0.0.1:6379> get k2
"100"
127.0.0.1:6379>

incrbyfloat命令: 将key存储的内容累加一个float类型的数据

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

127.0.0.1:6379> get k2
"100"
127.0.0.1:6379> incrbyfloat k2 0.99
"100.99"
127.0.0.1:6379> get k2
"100.99"
127.0.0.1:6379>

decr命令: 将key存储的内容减1

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

127.0.0.1:6379> get age
"19"
127.0.0.1:6379> decr age
(integer) 18
127.0.0.1:6379> decr age1
(integer) -1
127.0.0.1:6379> get age1
"-1"
127.0.0.1:6379> decr name
(error) ERR value is not an integer or out of range
127.0.0.1:6379>

decrby命令: 将key存储的内容减去指定的值

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

127.0.0.1:6379> get score
"100"
127.0.0.1:6379> decrby score 10
(integer) 90
127.0.0.1:6379> get score
"90"
127.0.0.1:6379> 

getrange命令: 截取value的值

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

127.0.0.1:6379> get k1
"helloRedis"
127.0.0.1:6379> getrange k1 0 2
"hel"
127.0.0.1:6379> getrange k1 -3 -1
"dis"
127.0.0.1:6379> getrange k1 0 -1
"helloRedis"
127.0.0.1:6379>

setrange命令: 修改value的部分内容,根据偏移量修改

用value参数覆写给定key所存储的字符串值,从偏移量offset开始

127.0.0.1:6379> get name
"hello world"
127.0.0.1:6379> setrange name 6 Redis
(integer) 11
127.0.0.1:6379> get name
"hello Redis"
127.0.0.1:6379>

getset命令: 获取设置key的值并返回原来的旧值

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

127.0.0.1:6379> get age 
"18"
127.0.0.1:6379> getset age 22
"18"
127.0.0.1:6379> get age
"22"
127.0.0.1:6379>

mset命令: 批量设置值

MSET命令批量设置值

127.0.0.1:6379> mset m1 1 m2 2 m3 3 m4 4
OK
127.0.0.1:6379> mget m1 m2 m3 m4
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379>

mget命令: 批量获取值

MGET命令批量设置值

127.0.0.1:6379> mset m1 1 m2 2 m3 3 m4 4
OK
127.0.0.1:6379> mget m1 m2 m3 m4
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379>

setex命令: 设置key对应的value,同时设置过期时间,单位是秒

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

127.0.0.1:6379> setex k3 30 v3
OK
127.0.0.1:6379> ttl k3
(integer) 25
127.0.0.1:6379> get k3
"v3"
127.0.0.1:6379>

psetex命令: 设置key对应的value,同时设置过期时间,单位是毫秒

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

127.0.0.1:6379> psetex k4 30000 v4
OK
127.0.0.1:6379> pttl k4
(integer) 25109
127.0.0.1:6379> get k4
"v4"
127.0.0.1:6379>

setnx命令: 只有在 key 不存在时设置 key 的值,set if not exists

SETNX命令是set if not exists 的简写,set 命令在执行的时候,如果key已经存在,则新值会覆盖掉旧值,而对于setnx命令,如果key已经存在,则不做任何操作,如果key不存在,则效果等同于set命令,如下:
注:如果setnx的可以是set后的key,则会覆盖掉旧值。

127.0.0.1:6379> get k4
"v4"
127.0.0.1:6379> setnx k4 vv
(integer) 1
127.0.0.1:6379> get k4
"vv"
127.0.0.1:6379> setnx k4 v4
(integer) 0
127.0.0.1:6379> get k4
"vv"
127.0.0.1:6379>

msetnx命令: 兼具了mset和setnx的特性

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

127.0.0.1:6379> msetnx k4 v4 k5 v5 k6 v6
(integer) 0
127.0.0.1:6379>

本文的STRING数据类型就介绍到这里,更多详情请参考官方手册:https://redis.io/commands#string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值