介绍
与 Java 的 String 、C++ string 同名,但不是一个意思
- 最为基础的数据存储类型,一个key对应一个value
- 是二进制安全的,意味着该类型可以接受 任何格式 的数据,如 JPEG 或 序列化对象 等。
- 最多可以容纳的数据长度是 512M。
应用场景
集群时实现session共享
spring session计数器
用string类型进行计数,如:评论数、点赞数、分享数,收藏数,访问量,商品库存(防止超卖)
string类型的内容是 数字值 时,可通过incr和decr命令将数字值加一或减一,这两个操作具有 原子性,总能安全地进行加减操作。
命令
详解:
http://redisdoc.com/string/index.html
https://www.runoob.com/redis/redis-strings.html
SET
SETNX
SETEX
PSETEX
GET
GETSET
STRLEN
APPEND
SETRANGE
GETRANGE
INCR:加一,原子操作,总能安全地进行操作
INCRBY
INCRBYFLOAT
DECR:减一,原子操作,总能安全地进行操作
DECRBY
MSET
MSETNX
MGET
例子
微博点赞数量
key:weibo_123_like,weibo 表示 表名,123 表示 主键的值,like 表示 点赞数量 字段
set 命令
将字符串值 value 关联到 key
>set weibo_123_like 0
OK
注意: 再次设置相同的key,其value会被覆盖,不会报错:
get
>get weibo_123_like
显示:
0
incr key
当key的value是数字时,加1
INCR 命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。
如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。
如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。
例子
>incr weibo_123_like
(integer) 1
decr key
当key的value是数字时,减1
如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 DECR 操作。
如果键 key 储存的值不能被解释为数字, 那么 DECR 命令将返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
接上面例子
> DECR weibo_123_like
(integer) 0
incrby key decrement
当key的value是数字时,加上 increment
如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 INCRBY 命令。
如果键 key 储存的值不能被解释为数字, 那么 INCRBY 命令将返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
> SET rank 50
OK
> INCRBY rank 20
(integer) 70
> GET rank
"70"
decrby key decrement
当key的value是数字时,减 decrement
如果键 key 不存在, 那么键 key 的值会先被初始化为 0 , 然后再执行 DECRBY 命令。
如果键 key 储存的值不能被解释为数字, 那么 DECRBY 命令将返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
> SET count 100
OK
> DECRBY count 20
(integer) 80
