跳到主要内容

[toc]

redis数据类型 string 字符串

redis命令官方文档

string(字符串)简介

简介: 字符串

可以存储的值: 字符串,整数或者浮点数,还有jpg图片或者序列化对象

操作: 对整个字符串或者字符串的其中一部分执行操作,对整数和浮点数执行自增或者自减操作

应用场景: 做简单的键值对缓存

使用示例:

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> get a
"1"
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> get a
(nil)

redis字符串常用命令

set key value

含义:设置指定key的值

示例:

127.0.0.1:6379> SET str a
OK

get key

含义:获取指定key的值

示例:

127.0.0.1:6379> GET str
"a"

setrange key offset value

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

示例:

127.0.0.1:6379> GET str
"abc"
127.0.0.1:6379> SETRANGE str 1 123
(integer) 4
127.0.0.1:6379> GET str
"a123"

getrange key start end

含义:返回key中字符串值的子字符

示例:

127.0.0.1:6379> GET str
"abcdef"
127.0.0.1:6379> GETRANGE str 0 3
"abcd"

getset key value

含义:将给定key的值设为value ,并返回key的旧值(old value)

示例:

127.0.0.1:6379> GET str
"abcdef"
127.0.0.1:6379> GETSET str 123
"abcdef"
127.0.0.1:6379> GET str
"123"

getbit key offset

含义:对key所储存的字符串值,获取指定偏移量上的位(bit)

示例:

127.0.0.1:6379> GET str
"abcd"
127.0.0.1:6379> GETBIT str 0
(integer) 0
127.0.0.1:6379> GETBIT str 1
(integer) 1
127.0.0.1:6379> GETBIT str 2
(integer) 1
127.0.0.1:6379> GETBIT str 3
(integer) 0

setbit key offset value

含义:对key所储存的字符串值,设置或清除指定偏移量上的位(bit)

示例:

27.0.0.1:6379> GET str
"abcd"
127.0.0.1:6379> GETBIT str 0
(integer) 0
127.0.0.1:6379> GETBIT str 1
(integer) 1
127.0.0.1:6379> GETBIT str 2
(integer) 1
127.0.0.1:6379> GETBIT str 3
(integer) 0

127.0.0.1:6379> SETBIT str 0 1
(integer) 0
127.0.0.1:6379> GETBIT str 0
(integer) 1

mset key value [key value]

含义:同时设置一个或多个key-value对

示例:

127.0.0.1:6379> MSET str1 aaa str2 bbb
OK

mget key1 [key2]

含义:获取所有(一个或多个)给定key的值

示例:

127.0.0.1:6379> MGET str1 str2
1) "a"
2) "b"

setex key seconds value

含义:将值value关联到key ,并将key的过期时间设为seconds (以秒为单位)

示例:

127.0.0.1:6379> SETEX str 10 abc
OK

#10秒后str的值失效
127.0.0.1:6379> GEt str
(nil)

setnx key value

含义:只有在key不存在时设置key的值

示例:

127.0.0.1:6379> GET str
"abc"
127.0.0.1:6379> SETNX str 123
(integer) 0
127.0.0.1:6379> GET str
"abc"
127.0.0.1:6379> SETNX str2 123
(integer) 1
127.0.0.1:6379> GET str2
"123"

msetnx key value [key value]

含义:同时设置一个或多个key-value对,当且仅当所有给定key都不存在,如果key存在则不改变

示例:

127.0.0.1:6379> MSETNX str5 5 str6 6
(integer) 1
127.0.0.1:6379> MGET str5 str6
1) "5"
2) "6"

psetex key milliseconds value

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

示例:

127.0.0.1:6379> PSETEX str 3000 a123
OK

#str 3000毫秒(3秒)后失效
127.0.0.1:6379> GET str
(nil)

incr key

含义:将key中储存的数字值增一

示例:

127.0.0.1:6379> GET str
"10"
127.0.0.1:6379> INCR str
(integer) 11
127.0.0.1:6379> GET str
"11"

incrby key increment

含义:将key所储存的值加上给定的增量值(increment)

示例:

127.0.0.1:6379> GET str
"11"
127.0.0.1:6379> INCRBY str 2
(integer) 13
127.0.0.1:6379> GET str
"13"

incrbyfloat key increment

含义:将key所储存的值加上给定的浮点增量值(increment)

示例:

127.0.0.1:6379> GET str
"13"
127.0.0.1:6379> INCRBYFLOAT str 0.5
"13.5"
127.0.0.1:6379> GET str
"13.5"

decr key

含义:将key中储存的数字值减一

示例:

127.0.0.1:6379> GET str
"10"
127.0.0.1:6379> DECR str
(integer) 9
127.0.0.1:6379> GET str
"9"

decrby key decrement

含义:key所储存的值减去给定的减量值(decrement)

示例:

127.0.0.1:6379> GET str
"9"
127.0.0.1:6379> DECRBY str 3
(integer) 6
127.0.0.1:6379> GET str
"6"

append key value

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

示例:

127.0.0.1:6379> GET str
"6"
127.0.0.1:6379> APPEND str abc
(integer) 4
127.0.0.1:6379> GET str
"6abc"

strlen key

含义:返回key所储存的字符串值的长度

示例:

127.0.0.1:6379> GET str
"6abc"
127.0.0.1:6379> STRLEN str
(integer) 4
在生产环境中使用 keys * 这个命令之后会有意想不到的结果