通用命令 通用命令 命令 说明 时间复杂度 keys [pattern] 遍历所有 key O(n) dbsize 计算 key 的总数 O(1) del key [key...] 删除指定 key-value O(1
命令 | 说明 | 时间复杂度 |
---|---|---|
keys [pattern] | 遍历所有 key | O(n) |
dbsize | 计算 key 的总数 | O(1) |
del key [key...] | 删除指定 key-value | O(1) |
exist key | 检查 key 是否存在 | O(1) |
expire key seconds | key 在 seconds 秒后过期 | O(1) |
type key | 返回 key 的类型 | O(1) |
ttl key | 查看 key 剩余的过期时间 | O(1) |
persist key | 去掉 key 的过期时间(永不过期) | O(1) |
key | value |
---|---|
ke | val |
count | 1 |
bits | 1011101 |
命令 | 说明 | 时间复杂度 |
---|---|---|
get key | 获取 key 对应的 value | O(1) |
set key value | 不管key是否存在,设置 key-value | O(1) |
setnx key value | key不存在,才设置 | O(1) |
set key value xx | key存在才设置 | O(1) |
del key | 删除 key-value | O(1) |
incr key | key自增1,如果key不存在,自增后get(key)=1 | O(1) |
decr key | key自减1,如果key不存在,自减后get(key)=-1 | O(1) |
incrby key k | key自增k,如果key不存在,自增后get(key)=k | O(1) |
decrby key k | key自减k,如果key不存在,自减后get(key)=-k | O(1) |
mget key1 key2 key3... | 批量获取key的value,原子操作 | O(n) |
mset key1 value1 key2 value2 .. | 批量设置key-value | O(n) |
getset key newvalue | set key newvalue并返回旧value | O(1) |
append key value | 将value追加到旧value | O(1) |
strlen key | 返回字符串长度 | O(1) |
incrbyfloat key float | 增加key对应的值float | O(1) |
getrange key start end | 获取字符串指定下标所有值 | O(1) |
setrange key index value | 设置指定下标所有对应的值 | O(1) |
key | field | value |
---|---|---|
user:1 | name | tom |
age | 20 | |
sex | male |
命令 | 说明 | 时间复杂度 |
---|---|---|
hget key field | 获取hash key对应field的value | O(1) |
hset key field value | 设置hash key对应field的value | O(1) |
hdel key field | 删除hash key对应field的value | O(1) |
hexists key field | 判断hash key是否有field | O(1) |
hlen key | 获取hash key field数量 | O(1) |
hmget key field1 field2... | 批量获取hash key对应一批field的value | O(n) |
hmset key field1 value1 field2 value2... | 批量设置hash key对应一批field的value | O(n) |
hgetall key | 返回hash key对应所有的field和value | O(n) |
hvals key | 返回hash key对应所有field的value | O(n) |
hkeys key | 返回hash key对应所有field | O(n) |
hmset key field1 value1 field2 value2... | 批量设置hash key对应一批field的value | O(n) |
hsetnx key field value | 设置hash key对应的field的value(如field已经存在,则失败) | O(1) |
hincrby key field intcounter | hash key对应的field的value自增intcounter | O(1) |
hincrbyfloat key field floatcounter | hincrby浮点数版本 | O(1) |
string v1
string v2
hash
命令 | 优点 | 缺点 |
---|---|---|
string v1 | 编程简单,节约内存 | 序列化操作开销大,设置属性要操作整个数据 |
string v2 | 直观,可以部分更新 | 内存占用较大,key较分散 |
hash | 直观,节省空间,可以部分更新 | 编程稍微复杂,ttl不好控制 |
key | elements |
---|---|
user:1:msg | a,b,c,d |
命令 | 说明 | 时间复杂度 |
---|---|---|
rpush key value1 value2... | 从列表右端插入值(1-N个) | O(1-n) |
lpush key value1 value2... | 从列表左端插入值(1-N个) | O(1-n) |
lpop key | 从列表左侧弹出一个value | O(1) |
rpop key | 从列表右侧弹出一个value | O(1) |
linsert key before/afer value newValue | 在list指定的值前/后插入newValue | O(n) |
lrem key count value | 根据count值,从列表删除所有value相等的项 | O(n) |
ltrim key start end | 按照索引范围修剪列表 | O(n) |
lrange key start end | 获取列表指定索引范围所有value | O(n) |
lindex key index | 获取列表指定索引的value | O(n) |
llen key | 获取列表长度 | O(1) |
lset key index newValue | 设置列表指定索引值为newValue | O(n) |
blpop key timeout | lpop阻塞版本,timeout是阻塞超时时间,timeout=0为永不阻塞 | O(1) |
brpop key timeout | rpop阻塞版本,timeout是阻塞超时时间,timeout=0为永不阻塞 | O(1) |
lrem key count value
key | elements |
---|---|
user:1:follow | music,sport,read |
命令 | 说明 | 时间复杂度 |
---|---|---|
sadd key element | 向集合key添加element(如果已存在,添加失败) | O(1) |
srem key element | 删除集合key中的element | O(1) |
scard key | 计算集合大小 | |
sismember key element | 判断element是否在集合中 | |
srandmember key count | 从集合中随机挑count个元素,不会破坏家伙 | |
spop key | 从集合中随机弹出一个元素,元素从集合移除 | |
smembers key | 获取集合所有元素 | |
sdiff key1 key2 | 差集 | |
sinter key1 key2 | 交集 | |
suNIOn key1 key2 | 并集 | |
sdiff/sinter/sunion + store desTKEy | 将差集、交集、并集结果报错在destkey中 |
sadd=tagging spop/srandmember=randon item sadd+sinter=social graph
key | score | value |
---|---|---|
user:rank | 1 | tom |
user:rank | 5 | peter |
有序集合 | 集合 |
---|---|
无重复元素 | 无重复元素 |
有序 | 无序 |
element+score | element |
有序集合 | 列表 |
---|---|
无重复元素 | 有重复元素 |
有序 | 有序 |
element+score | element |
命令 | 说明 | 时间复杂度 |
---|---|---|
zadd key score element | 添加score和element(可以多对) | O(logN) |
zrem key element | 删除元素(可以多个) | O(1) |
zscore key element | 返回元素分数 | O(1) |
zincrby key increScore element | 增加或减少元素分数 | O(1) |
zcard key | 返回元素总个数 | O(1) |
zrange key start end [WITHSCORES] | 返回指定索引范围内的升序元素[分值] | O(logN+m) |
zrangebyscore key minScore maxScore[WITHSCORES] | 返回指定分数范围内的升序元素[分值] | O(logN+m) |
zcount key minScore maxScore | 返回有序集合内在指定分数范围内的个数 | O(logN+m) |
zremrangebyrank key start end | 删除指定排名内的升序元素 | O(logN+m) |
zremrangebyscore key minScore maxScore | 删除指定分数内的升序元素 | O(logN+m) |
--结束END--
本文标题: redis 详解(2)API
本文链接: https://lsjlt.com/news/3217.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0