概述
string是redis最常用的数据类型,一般用于key-value缓存项设置。
redis没有int和float类型,就算存的是数值,也是以string类型记录
127.0.0.1:6379[4]> set age 30
OK
127.0.0.1:6379[4]> TYPE age
string
Key-Value
设置指定key的值
127.0.0.1:6379[4]> set name xiaoming
OK
127.0.0.1:6379[4]> get name
"xiaoming"
STRLEN
- 说明:获取key对应value的长度
- 格式:STRLEN key
127.0.0.1:6379[4]> set name xiaoming
OK
127.0.0.1:6379[4]> STRLEN name
(integer) 8
GETRANGE
- 说明:截取字符串
- 格式:GETRANGE key start end
- 注意:
start下标从0开始计算
127.0.0.1:6379[4]> set title abcdefghijklmn
OK
127.0.0.1:6379[4]> GETRANGE title 1 3
"bcd"
SETRANGE
- 说明:从start下标开始替换字符串
- 格式:SETRANGE key start value
- 注意:
由value长度决定替换的字符数
127.0.0.1:6379[4]> set name xiaoming
OK
127.0.0.1:6379[4]> SETRANGE name 4 dong
(integer) 8
127.0.0.1:6379[4]> get name
"xiaodong"
127.0.0.1:6379[4]> SETRANGE name 4 a
(integer) 8
127.0.0.1:6379[4]> get name
"xiaoaong"
APPEND
- 说明:追加内容
- 格式:APPEND key value
127.0.0.1:6379[4]> set name xiaoming
OK
127.0.0.1:6379[4]> APPEND name " hello!"
(integer) 15
127.0.0.1:6379[4]> get name
"xiaoming hello!"
GETSET
- 说明:类似set命令,设置一个key-value,
但是返回的是旧的value
- 格式:GETSET key value
127.0.0.1:6379[4]> GETSET name xiaoming
(nil)
127.0.0.1:6379[4]> GETSET name dong
"xiaoming"
MGET
- 说明:获取一个或多个key的值
- 格式:MGET key1 key2 key3
127.0.0.1:6379[4]> MGET name age
1) "dong"
2) "33"
MSET
- 说明:设置一个或多个key-value
- 格式:MSET key1 value1 key2 value2 key3 value3
127.0.0.1:6379[4]> MSET key1 abc key2 xyz key3 haha
OK
127.0.0.1:6379[4]> keys *
1) "key1"
2) "key3"
3) "key2"
SETEX
- 说明:设置key-value,并且携带过期时间
- 格式:SETEX key expire value
expire:单位秒
127.0.0.1:6379[4]> SETEX name 60 xiaoming
OK
127.0.0.1:6379[4]> ttl name #查看剩余时间
(integer) 24
SETNX
- 说明:设置key-value,key不存在时才生效,key存在则忽略
- 格式:SETEX key expire value
127.0.0.1:6379[4]> SETNX name xiaoming
(integer) 1
127.0.0.1:6379[4]> SETNX name dong
(integer) 0
127.0.0.1:6379[4]> get name
"xiaoming"
MSETNX
- 说明:同时设置一个或多个key-value,当key不存在才生效
- 格式:MSETNX key1 value1 key2 value2 key3 value3
注意:该命令具有原子性,设置的所有key都不存在才会生效。哪怕其中1个key已存在,都会导致设置失败
127.0.0.1:6379[4]> set key1 abc
OK
127.0.0.1:6379[4]> MSETNX key1 aaa key2 xyz
(integer) 0
127.0.0.1:6379[4]> keys *
1) "key1"
INCR/INCRBY
INCR
- 说明:将key存储的数字加1
- 格式:INCR key
INCRBY
- 说明:将key存储的数字加上指定的数值
- 格式:INCRBY key increment
127.0.0.1:6379[4]> SET age 20
OK
127.0.0.1:6379[4]> INCR age
(integer) 21
127.0.0.1:6379[4]> INCRBY age 5
(integer) 26
DECR/DECRBY
将key的值递减,与INCR、INCRBY同理