- 字符串类型的值实际可以是字符串(简单字符串、JSON、XML)、数字(整数、浮点数)、二进制(图片、音频、视频)
- 值最大不能超过512MB
一、命令
1、常用命令
设置值
set key value [ex seconds] [px milliseconds] [nx|xx]
set命令选项:
--ex seconds:为键设置秒级过期时间
--px milliseconds:为键设置毫秒级过期时间
--nx :键必须不存在,才可以设置成功。
--xx :键必须存在,才可以设置成功,用于更新。
- setnx ==set xx nx
- setex == set xx ex seconds
- setnx可以作为分布式锁的一种实现方案
获取值
get key
批量获取值
mset key value [key value ...]
批量获取值
mget key [key ....]
执行n次get命令
n次get时间 =n次网络时间 +n 次命令时间
使用mget命令
n次get时间=1次网络时间+n次命令时间
计数
incr key
返回结果分为三种情况:
--值不是整数,返回错误
--值是整数,返回自增后的结果
--键不存在,按照值为0自增,返回结果为1.
除了incr命令,还有decr(自减)、incrby(自增指定数字)、decrby、incrbyfloat(自增浮点数)
2、不常用命令
- 追加值
- 字符串长度
- 设置并返回原值
- 设置指定位置的字符
- 获取部分字符串
二、内部编码
字符串类型的内部编码有3种:
- int:8个字节的长整型
- embstr:<=39字节的字符串
- raw:>39字节的字符串
三、典型使用场景
1、缓存功能
- 查询缓存
2、计数
- 视频播放数
3、共享session
- web服务保存用户的session信息
- 负载均衡
- 刷新后,负载到其他实例,需要重新登录
4、限速
- 短信验证码
- 键过期