數據結構 | 說明 | 簡介 |
---|---|---|
String | 字符串 | key-val |
Hash | 哈希 | filed-val 映射表 |
List | 列表 | 雙向鏈表 |
Set | 集合 | element(元素無重複) |
Sorted Set | 有序集合 | element+score(元素無重複+分值) |
命令 | 做用 | 時間複雜度 |
---|---|---|
keys pattern | 查找全部符合匹配的key | O(n) |
dbsize | 返回當前數據庫的數量 | O(1) |
flushdb | 清空當前數據庫全部key | O(n) |
flushall | 清空全部數據庫全部key | O(n) |
type key | 返回key的數據類型 | O(1) |
rename key new_key | 修改key名稱 | O(1) |
exists key | 檢查給定key是否存在 | O(1) |
del key | 刪除key | O(1) |
expire key seconds | 給key設定過時時間 | O(1) |
ttl key | 查看key剩餘過時時間 | O(1) |
persist key | 移除key剩餘過時時間 | O(1) |
命令 | 做用 | 時間複雜度 |
---|---|---|
set key val | 設置key val | O(1) |
get key | 獲取key | O(1) |
del key | 刪除key | O(1) |
set key val xx | 更新key(不存在key時更新失敗) | O(1) |
setnx key val | key不存在時設置key | O(1) |
setex key val seconnds | 設置key並設置過時時間 | O(1) |
mset key1 val1 key2 val2 ... | 批量設置key | O(n) |
mget key1 key2 ... | 批量獲取key | O(n) |
incr key val | key自增1;key不存在,set key val後自增1 | O(1) |
decr key val | key自減1;key不存在,set key val後自減1 | O(1) |
incrby key n | key自增k;key不存在,set key val後自增k | O(1) |
decrby key n | key自減k;key不存在,set key val後自減k | O(1) |
getset key val | set key val並返回舊的值 | O(1) |
append key val | 給key追加值val | O(1) |
strlen key | 獲取key長度 | O(1) |
incrbyfloat key f | 給key增長小數 | O(1) |
setrange key offset val | 用val從offset開始覆蓋 | O(1) |
getrange key start end | 獲取指定區間的val | O(1) |
命令 | 做用 | 時間複雜度 |
---|---|---|
hset key filed val | 設置key filed val | O(1) |
hget key filed | 獲取key filed | O(1) |
hdel key filed | 刪除key filed | O(1) |
hexists key filed | 檢測key filed是否存在 | O(1) |
hlen key | 獲取key屬性值個數 | O(1) |
hsetnx key filed | key filed不存在時設置key filed | O(1) |
hincrby key filed n | key filed自增/自減(n能夠爲負數) | O(1) |
hincrbyfloat key filed f | key filed自增/自減(f能夠爲負數) | O(1) |
hmset key filed1 val1 filed2 val2 ... | 批量設置key filed | O(n) |
hmget key filed1 filed2 ... | 批量獲取key filed | O(n) |
hgetall key | 獲取key全部filed值 | O(n) |
hgetkeys key | 獲取key全部filed key | O(n) |
hgetvals key | 獲取key全部filed val | O(n) |
命令 | 做用 | 時間複雜度 |
---|---|---|
lpush key val1 val2 ... | 從頭部插入一個/多個val | O(1~n) |
lpop key | 移除並返回頭部第一個元素 | O(1) |
rpush key val1 val2 ... | 從尾部插入一個/多個val | O(1~n) |
rpop key | 移除並返回尾部第一個元素 | O(1) |
lrang key start end | 返回指定區間元素 | O(s+n) s爲偏移量, n=e-s |
ltrim key start stop | 對列表進行修剪, 保留指定區間的元素 | O(n) |
llen key | 獲取key長度 | O(1) |
lset key index val | 設置指定索引index val | O(1~n) |
linsert key before/after existing_val new_val | 在指定存在值以前/以後插入元素 | O(n) |
lindex key position | 獲取指定position元素 | O(1~n) |
lrem key count val | 移除與count相等的val | O(n) |
lpushx key val1 val2 ... | 從頭部插入一個/多個已存在列表的val | O(1~n) |
rpushx key val1 val2 ... | 從尾部插入一個/多個已存在列表的val | O(1~n) |
blpop key seconds | 阻塞式lpop | O(1) |
brpop key seconds | 阻塞式rpop | O(1) |
場景 | 命令方法 |
---|---|
棧(Stack) | lpush + lpop |
隊列(Queue) | lpush + rpop |
固定列表(Capped Collection) | lpush + ltrim |
消息列表(Message Queue) | lpush + brpop |
命令 | 做用 | 時間複雜度 |
---|---|---|
sadd key val1 val2 ... | 向集合添加一個/多個元素(已存在元素則忽略) | O(n) |
smembers key | 獲取全部集合元素 | O(n) |
sismember key val1 | 檢測集合元素是否存在 | O(1) |
srandmember key {count} | 隨機獲取指定個數集合元素(不會刪除) | O(1~n) |
spop key | 隨機移除一個集合元素並返回(會刪除) | O(1) |
srem key val val1 ... | 刪除集合元素 | O(1~n) |
smove key key1 val | 將key集合中val移到key1集合 | O(1) |
scard key | 獲取集合數量 | O(1) |
sinter key key1 ... | 獲取集合交集 | O(n) |
sunion key key1 ... | 獲取集合並集 | O(n) |
sdiff key key1 ... | 獲取集合差集 | O(n) |
sinterstore new_key key key1 ... | 獲取集合交集並存儲到新集合 | O(n) |
sunionstore new_key key key1 ... | 獲取集合並集並存儲到新集合 | O(n) |
sdiffstore new_key key key1 ... | 獲取集合差集並存儲到新集合 | O(n) |
命令 | 做用 | 時間複雜度 |
---|---|---|
zadd key score val ... | 向集合添加一個/多個元素 | O(log(N) * M) M 元素個數 |
zcard key | 獲取集合數量 | O(1) |
zscore key val | 獲取元素分數值 | O(1) |
zcount key mix max | 獲取分數區間[mix, max]集合元素數量 | O(log(N) + M) |
zlexcount key mix max | 獲取元素字典區間[mix, max]集合元素數量 | O(log(N) + M) |
zincrby key score val | 集合元素val自增/自減分數score | O(log(N)) |
zrank key val | 獲取集合元素val的排名(從小到大) | O(log(N)) |
zrevrank key val | 獲取集合元素val的排名(從大到小) | O(log(N)) |
zrange key start end [withscores] | 獲取指定區間分數排名(從小到大)元素 | O(log(N) + M) |
zrevrange key start end [withscores] | 獲取指定區間分數排名(從大到小)元素 | O(log(N) + M) |
zrangebyscore key min max [withscores] | 獲取指定區間分數排名(從小到大)元素 | O(log(N) + M) |
zrevrangebyscore key max min [withscores] | 獲取指定區間分數排名(從大到小)元素 | O(log(N) + M) |
zrangebylex key min max | 獲取字典區間內集合元素 | O(log(N) + M) |
zrem key val val1 ... | 刪除集合元素 | O(log(N) * M) |
zremrangebyscore key min max | 刪除指定區間分數區間元素 | O(log(N) + M) |
zremrangebyrank key start stop | 刪除指定排名rank內元素 | O(log(N) + M) |
zremrangebylex key min max | 刪除字典區間內集合元素 | O(log(N) * M) |
zinterstore new_key n key key1 ... | 獲取集合交集存儲到new_key(n 集合個數) | O(N K)+O(M log(M)) |
zunionstore new_key n key key1 ... | 獲取集合並集存儲到new_key(n 集合個數) | O(N)+O(M log(M)) |
PS: 更多文章請關注微信公衆號:浮話redis