目录
- 一、字符串类型:string
- 一、string 数据的操作命令
- 1.set key value
- 2.get key
- 3.append key value
- 4.strlen key
- 5.incr key
- 6.decr key
- 7.incrby key offset
- 8.decrby key offset
- 9.getrange key startIndex endIndex
- 10.setrange key offsetIndex value
- 11.setex key seconds value
- 12.setnx key value
- 13.mset key value [key value…]
- 14.mget key [key …]
- 15.msetnx key value[key value…]
- 写在最后
一、字符串类型:string
字符串类型是 Redis 中最基本的数据结构,它能存储任何类型的数据,包括二进制数据,序列化后的数据,JSON 化的对象甚至是一张图片。最大512M。
key | value |
---|---|
name | 楚子航 |
字符串类型的数据操作总的思想是通过 key 操作 value,key 是数据标识,value 是我们存储的数据。
一、string 数据的操作命令
1.set key value
功能:将字符串值 value 设置到 key 中,如果 key 已存在,后放的值会把前放的值覆盖掉。
返回值:OK表示成功
127.0.0.1:6379> set name czh
OK
2.get key
功能:获取 key 中设置的字符串值
返回值:key 存在,返回 key 对应的 value ;
key不存在,返回nil;
127.0.0.1:6379> get name
"czh"
3.append key value
功能:如果 key 存在,则将 value 追加到 key 原来旧值的末尾;
如果 key 不存在,则将key 设置值为 value;
返回值:追加字符串之后的总长度(字符个数)
127.0.0.1:6379> set k1 123
OK
127.0.0.1:6379> append k1 456789
(integer) 9
127.0.0.1:6379> get k1
"123456789"
//k2是一个不存在的k
127.0.0.1:6379> append k2 456789
(integer) 6
127.0.0.1:6379> get k2
"456789"
127.0.0.1:6379>
4.strlen key
功能:返回 key 所储存的字符串值的长度
返回值:如果 key 存在,返回字符串值的长度;
如果 key 不存在,返回0;
127.0.0.1:6379> strlen k1
(integer) 9
127.0.0.1:6379>
5.incr key
功能:将 key 中储存的数字值加1;
如果 key 不存在,则 key 的值先被初始化为 0 再执行 incr 操作;
返回值:返回加1后的 key 值;
127.0.0.1:6379> get k1
"123456789"
//对 k1 的值进行加一
127.0.0.1:6379> incr k1
(integer) 123456790
127.0.0.1:6379> get k1
"123456790"
//k4 不存在,先对其初始化为 0 ,再加一
127.0.0.1:6379> incr k4
(integer) 1
127.0.0.1:6379> get k4
"1"
//incr 只能对数值类型数据进行操作,如果非数值型会报错
127.0.0.1:6379> set k5 a
OK
127.0.0.1:6379> incr k5
(error) ERR value is not an integer or out of range
6.decr key
功能:将 key 中储存的数字值减1;
如果 key 不存在,则 key 的值先被初始化为 0 再执行 decr 操作;
返回值:返回减1后的 key 值;
127.0.0.1:6379> get k1
"123456789"
//对 k1 的值进行减一
127.0.0.1:6379> decr k1
(integer) 123456788
127.0.0.1:6379> get k1
"123456788"
//k4 不存在,先对其初始化为 0 ,再减一
127.0.0.1:6379> incr k4
(integer) -1
127.0.0.1:6379> get k4
"-1"
//decr 只能对数值类型数据进行操作,如果非数值型会报错
127.0.0.1:6379> set k5 a
OK
127.0.0.1:6379> decr k5
(error) ERR value is not an integer or out of range
7.incrby key offset
功能:将 key 所储存的值加上增量值;;
如果 key 不存在,则 key 的值先被初始化为 0 再执行 INCRBY 命令;
返回值:返回增量之后的 key 值;
127.0.0.1:6379> get k1
"5"
//对 k1 的值进行增量5
127.0.0.1:6379> incrby k1 5
(integer) 10
127.0.0.1:6379> get k1
"10"
//k4 不存在,先对其初始化为 0 ,再增量
127.0.0.1:6379> incrby k4 5
(integer) 5
127.0.0.1:6379> get k4
"5"
//incrby 只能对数值类型数据进行操作,如果非数值型会报错
127.0.0.1:6379> set k5 a
OK
127.0.0.1:6379> incrby k5 5
(error) ERR value is not an integer or out of range
8.decrby key offset
功能:将 key 所储存的值减去减量值;
如果 key 不存在,则 key 的值先被初始化为 0 再执行 DECRBY 命令;
返回值:返回减量之后的key值;
127.0.0.1:6379> get k1
"10"
//对 k1 的值进行减量
127.0.0.1:6379> decrby k1
(integer) 5
127.0.0.1:6379> get k1
"5"
//k4 不存在,先对其初始化为 0 ,再减量
127.0.0.1:6379> incrby k4 5
(integer) -5
127.0.0.1:6379> get k4
"-5"
//decr 只能对数值类型数据进行操作,如果非数值型会报错
127.0.0.1:6379> set k5 a
OK
127.0.0.1:6379> decrby k5
(error) ERR value is not an integer or out of range
9.getrange key startIndex endIndex
功能:将 key 所储存的值减去减量值;
获取 key 中字符串值从 startIndex 开始到 endIndex 结束的子字符串,包括 startIndex 和 endIndex,, 负数表示从字符串的末尾开始,-1 表示最后一个字符;
返回值:返回减量之后的 key 值;
127.0.0.1:6379> set address guangzhou
OK
127.0.0.1:6379> getrange address 0 4
"guang"
127.0.0.1:6379> getrange address -4 -1
"zhou"
127.0.0.1:6379> getrange address 0 -1
"guangzhou"
127.0.0.1:6379>
10.setrange key offsetIndex value
功能:用 value 覆盖key的存储的值,从 offset 开始;
返回值:修改后的字符串的长度;
127.0.0.1:6379> get address
"guangzhou"
127.0.0.1:6379> setrange address 5 xi
(integer) 9
127.0.0.1:6379> get address
"guangxiou"
127.0.0.1:6379>
11.setex key seconds value
功能:设置 key 的值,并将 key 的生存时间设为 seconds (以秒为单位) ,如果 key 已经存在,将覆盖旧值;
返回值:设置成功,返回OK;
127.0.0.1:6379> setex email 20 czh@qq.com
OK
127.0.0.1:6379> ttl email
(integer) 14
127.0.0.1:6379> ttl email
(integer) 11
127.0.0.1:6379>
12.setnx key value
功能:setnx 是 set if not exists 的简写,如果 key 不存在,则 set 值,存在则不设置值;
返回值:如果key存在,返回字符串值的长度;
如果 key 不存在,返回0;
127.0.0.1:6379> keys *
1) "address"
127.0.0.1:6379> setnx email czh@qq.com
(integer) 1
127.0.0.1:6379> setnx email lmf@qq.com
(integer) 0
127.0.0.1:6379>
13.mset key value [key value…]
功能:同时设置一个或多个 key-value 对;
返回值:设置成功,返回OK;
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
14.mget key [key …]
功能:获取所有(一个或多个)给定 key 的值;
返回值:包含所有key的列表,如果 key 不存在,则返回nil;
127.0.0.1:6379> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) (nil)
15.msetnx key value[key value…]
功能:同时设置一个或多个 key-value 对,如果有一个key是存在的,则设置不成功;
返回值:设置成功,返回1;
设置失败,返回0;
127.0.0.1:6379> msetnx k1 v1 k2 v2
(integer) 1
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
// k1 已经存在的,所以设置失败
127.0.0.1:6379> msetnx k1 v1 k3 v3
(integer) 0
写在最后
以上关于 Redis 中 String 类型数据结构的具体内容,后续如果有时间的话我也将持续更新,如果有错误或者是哪里不足的地方,欢迎各位大大提出宝贵的意见呀~
此外,想了解关于 Redis 的一些其他使用命令使用方法可以关注下方公众号,后台回复 “redis ”即可获取,期待着您的光临~
相关链接:
链接: 004 - Redis 基本命令.
链接: 003 - 解决 Windows 启动 Redis 服务器一闪而过问题.
链接: 002 - Redis 介绍和安装.