Redis教程03(String介绍)

在这里插入图片描述

String类型

上篇文章中我们介绍了通用的相关命令,本文主要介绍String相关的命令

Redis教程02(五大数据类型简介)

命令说明
set设置key的值
get获取对应的key的值
strlen获取key的值的长度
append在原有的value的基础上追加内容
incr将key存储的内容加1
incrby将key存储的内容加指定的值
incrbyfloat将key存储的内容累加一个float类型的数据
decr将key存储的内容减1
decrby将key存储的内容减去指定的值
getrange截取value的值
setrange修改value的部分内容,根据偏移量修改
getset获取设置key的值并返回原来的旧值
mget批量获取值
mset批量设置值
setex设置key对应的value,同时设置过期时间,单位是
psetex设置key对应的value,同时设置过期时间,单位是毫秒
setnx只有在 key 不存在时设置 key 的值,set if not exists
msetnx兼具了mset和setnx的特性

Set命令

设置指定 key 的值

127.0.0.1:6379> set name abc
OK

Get命令

返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。

127.0.0.1:6379> get name
"abc"
127.0.0.1:6379> get aaa
(nil)

StrLen命令

获取value的长度

127.0.0.1:6379> strlen name
(integer) 10

Append

如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾,如果key不存在则报错

127.0.0.1:6379> append name 123
(integer) 6
127.0.0.1:6379> get name
"abc123"
127.0.0.1:6379> append aaa
(error) ERR wrong number of arguments for 'append' command

Incr命令

将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误

127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> incr age
(integer) 19 #正常数字增1
127.0.0.1:6379> incr aaa
(integer) 1  # 不存在 初始为0增1
127.0.0.1:6379> incr name # 类型不匹配报错
(error) ERR value is not an integer or out of range

IncrBy命令

将 key 所储存的值加上特定的值

127.0.0.1:6379> incrby age 5
(integer) 24
127.0.0.1:6379> incrby age 5
(integer) 29

IncrByFloat命令

将 key 所储存的值加上给定的浮点增量值

127.0.0.1:6379> incrbyfloat age 2.3
"31.3"
127.0.0.1:6379> incrbyfloat age 2.3
"33.6"

Decr

将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误

127.0.0.1:6379> get age
"18"
127.0.0.1:6379> decr age
(integer) 17

DecrBy

将key中存储的数字减固定的值

27.0.0.1:6379> decrby age 8
(integer) 9
127.0.0.1:6379> decrby age 8
(integer) 1

GetRange

获取value值的子集
命令 getrange key start end

127.0.0.1:6379> getrange name 2 5
"c123"
127.0.0.1:6379> getrange name 4 6
"23"
127.0.0.1:6379> getrange name 2 6
"c123"

SetRange命令

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

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

GetSet命令

获取设置key的值并返回原来的旧值

127.0.0.1:6379> getset name 波波烤鸭
"abc123"
127.0.0.1:6379> get name
"\xe6\xb3\xa2\xe6\xb3\xa2\xe7\x83\xa4\xe9\xb8\xad"

MGet命令

批量获取值

127.0.0.1:6379> mget name age address
1) "abc"
2) "1"
3) "sz"

MSet命令

批量设置值

127.0.0.1:6379> mset a1 a1 a2 a2 a3 a3 a4 a4
OK
127.0.0.1:6379> mget a1 a2 a3 a4
1) "a1"
2) "a2"
3) "a3"
4) "a4"

SetEx命令

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

127.0.0.1:6379> setex name1 20 test
OK
127.0.0.1:6379> ttl name1
(integer) 16
127.0.0.1:6379> ttl name1
(integer) 6
127.0.0.1:6379> ttl name1
(integer) -2

PSetEx命令

这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

127.0.0.1:6379> psetex name2 20000 aaa
OK
127.0.0.1:6379> ttl name2
(integer) 17
127.0.0.1:6379> pttl name2
(integer) 4020
127.0.0.1:6379> pttl name2
(integer) 381

SetNx命令

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

127.0.0.1:6379> setnx name aaa
(integer) 0
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379> setnx name3 aaa
(integer) 1
127.0.0.1:6379> get name3
"aaa"

MSetNx命令

兼具了mset和setnx的特性,但是批量设置中只要有一个key存在,则所有的操作都失效。

127.0.0.1:6379> msetnx b1 bb1 b2 bb2 b3 bb3
(integer) 1
127.0.0.1:6379> mget b1 b2 b3
1) "bb1"
2) "bb2"
3) "bb3"
127.0.0.1:6379> msetnx a1 aaa b5 bbb b6 bbb
(integer) 0
127.0.0.1:6379> mget a1 b5 b6
1) "a1"
2) (nil)
3) (nil)

好了本文到此为止
更多资料欢迎参考官网手册

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波波烤鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值