Redis(基础数据类型/String)
目录
一 相关命令
1. set
2. get
3. mset
4. mget
5. incr/incrby/decr/decrby
6. append/getrange/setrange
二 String 的编码
1. int/embstr/raw
三 应用场景
1. 计数器
2. 会话管理
3. 验证码
一 相关命令
1. set
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
- expiration / EX:设置过期时间,秒为单位。
- PX:设置过期时间,毫秒为单位。
- NX:Key 不存在则设置,存在返回空。
- XX:Key 不存在返回空,存在则设置(修改)。
2. get
Get key
- 只能针对字符串类型(String)。
3. mset
mset [key1 value1] [key2 value2] .....
- 一次插入多组 String。
4. mget
mget key1 key2 ...
- 一次获取多个 key。
5. incr/incrby/decr/decrby
incr key incrby key num decr key decrby key num incrbyfloat key num
- incr:自增。
- incrby:加法计算。
- decr:自减。
- decrby:减法计算。
- incrbyfloat:浮点数计算。
使用类型必须匹配,且保证不会溢出最大范围。
6. append/getrange/setrange
// 字符串追加,存在追加到末尾,不存在则等同于 set key value,返回值:实际的字符串长度 append key value // 截取字符串某段范围,左闭右闭,[0 ~ size],负数表示 size - value getrange key [begin,end]// 范围替换字符串内容,超过原字符串长度则自动扩容 setrange key offsrt value// 获取字符串长度 strlen key
二 String 的编码
1. int/embstr/raw
- int:8 字节,value 是整数时采用。
- embstr:压缩字符串,字符串小于一定范围采用。
- raw:通用字符串,字符串大于一定范围采用。
获取 value 类型:
object encoing key
三 应用场景
1. 计数器
比如:视频点赞,售票,页面访问次数等。
通过上述的 incr/incrby 等来实现。
2. 会话管理
比如:用户身份校验,浏览器传入 cookie/sessionid,Redis 缓存并查询。
3. 验证码
比如:0 ~ 30 秒内只能获取一次,通过 setnx ex,存在则设置,不存在则出错,并设置过期时间。