2.5字符串
结构和命令 快速实战 内部编码 查缺补漏
字符串键值结构
key的类型是String,但value的类型可以是String,int,二进制
注意:value 大小不能大于512M,建议key-value 大小最好 100k以内
场景
缓存
计数器
分布式锁
等等
常用命令
命令
说明
时间复杂度
get
获取key对应的value
O(1)
set
设置key-value
O(1)
del
删除key-value
O(1)
演示
自增/减命令
命令
说明
时间复杂度
incr
自增1,若key不存在,自动创建key-value,get(key)=1
O(1)
decr
自减1,若key不存在,自动创建key-value,get(key)=-1
O(1)
incrby key k
自增k,若key不存在,自动创建key-value,get(key)=k
O(1)
decrby key k
自减k,若key不存在,自动创建key-value,get(key)=-k
O(1)
incrbyfloat key 3.5
自增3.5
O(1)
演示
使用场景
记录网站访问量
缓存视频的基本信息(数据源在MySQL中)
分布式id生成器
设值命令
命令
说明
时间复杂度
set key value
不管key是否存在,都设置
O(1)
setnx key value
key不存在,才设置,可以理解为新增add操作
O(1)
set key value xx
key存在,才设置,可以理解为更新操作
O(1)
set key value ex
设置key-value的同时,设置超时时间
O(1)
getset key newvalue
set key newvalue并返回旧的value
O(1)
演示
批量命令
命令
说明
时间复杂度
mget key1 key2 key3 ...
批量获取key,是原子操作
O(n)
mset key1 value1 key2 value2 key3 value3 ...
批量设置key-value
O(n)
演示
字符串操作命令
命令
说明
时间复杂度
append key value
将value追加到旧的value
O(1)
strlen key
返回字符串的长度(注意中文)
O(1)
getrange key start end
获取字符串指定下标的所有值
O(1)
setrange key index value
设置指定下标的所有对应的值
O(1)
演示
Last updated
Was this helpful?