字符串的值能够表示数字(整数、浮点数),甚至是二进制(图片、音频、视频),但是值不能超过512MB。
命令
设置值
set key value [ex seconds] [px milliseconds] [nx|xx]
image
参数列表:
参数名 | 描述 |
---|---|
ex seconds | 为键设置秒级过期时间 |
px milliseconds | 为键设置毫秒级过期时间 |
nx | 键必须不存在,才设置成功,用于添加 |
xx | 键必须存在,才设置成功,用于更新 |
获取值
get key
image
如果键不存在,则返回 nil(空):
image批量设置值
mset key value [key value...]
image
批量获取值
mget key [key...]
image
使用批量操作命令可以节省网络时间,提高开发效率。
因为 Redis 的处理能力已经足够高了,对于开发人员来说,网络可能会成为性能的瓶颈。
计数
incr key
incr
命令用于对值做自增操作,返回结果分为三种:
- 值不是整数,返回错误
- 值是整数,返回自增后的结果
- 键不存在,按照值为0自增,返回结果为1
如果值不为整数,那么会返回错误
image除了 incr
命令,Redis 提供了 decr
(自减)、incrby
(自增指定数字)、decrby
(自减指定数字)、incrbyfloat
(自增浮点数)。
追加值
append key value
image
字符串长度
strlen key
image
如果是中文,则每个字符占 3 个字节。
设置并返回原值
getset key value
image
设置指定位置的字符
setrange key offset value
image
截取字符串
getrange key start end
image
内部编码
字符串类型的内部编码有3种:
- int
- embstr
- raw
Redis 会根据当前值的类型和长度决定使用哪种内部编码实现。
image长字符是值大于 39 个字符,使用 raw。
image典型使用场景
- 缓存功能
- 计数
- 共享 Session
- 限制用户操作速度,例如存储重新获取验证码的时间间隔
网友评论