通用命令:git
keys * [pattern] --- 遍歷當前reids全部的key O(n)redis
dbsize --- 計算key的總數 O(1)後端
exists [key] --- 判斷key是否存在 O(1)api
del [key...] --- 刪除一個或多個指定的key O(1)數據結構
expire key [seconds] --- key在seconds秒後過時 O(1)app
ttl [key] --- 查看key剩餘的過時時間 O(1)優化
persist [key] --- 去掉key的過時時間 O(1)spa
type [key] --- 返回key的數據結構類型 O(1)索引
String相關命令:element
get [key] --- 獲取key對應的value O(1)
mget [key1 ke2 ...] --- 批量獲取key,原子操做 O(n)
getset [key newValue] --- 設置key新值爲newValue並返回舊的value O(1)
getrange [key start end] --- 獲取字符串指定下標全部的值 O(1)
set [key value] --- 設置key-value O(1)
setrange [key index value] --- 設置指定下標全部對應的值 O(1)
mset [key1 value1 key2 value2 ...] --- 批量設置key-value O(n)
append [key value] --- 將value追加到舊的value O(1)
setnx [key value] --- key不存在,才設置 O(1)
set [key value xx] --- key存在,才設置 O(1)
setex [key value seconds] --- 設置key,同時設置過時時間 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)
incrbyfloat [key 3.5] --- 增長key對應的float值3.5 如需減法,傳負值便可 O(1)
decrby [key k] --- key自減k,若是key不存在,自減後get(key)=-k O(1)
strlen [key] --- 返回字符串的長度(注意中文佔用字節數的問題)O(1)
Hash相關命令:
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的數量,redis內部維護了這個值的計數,而不是每次遍歷,效率高 O(1)
hmget [key field1 field2 ...] --- 批量獲取hash key的一批field對應的值 O(n)
hmset [key field1 field2 ...] --- 批量設置hash key的一批field的value O(n)
hincrby [key field count] --- 設置hash key的field字段自增count O(1)
hincrbyfloat [key field float] --- hincrby的浮點數版 O(1)
hgetall [key] --- 返回hash key對應全部的field和value O(n)
hvals [key] --- 返回hash key對應全部field的value O(n)
hkeys [key] --- 返回hash key對應的全部field O(n)
hsetnx [key field value] --- 設置hash key對應的field的value 如過field存在,則失敗 O(1)
List相關命令:
rpush [key value1 value2...valueN] --- 從列表右端(後端)插入值 (1-N個) O(1~n)
lpush [key value1 value2...valueN] --- 從列表左側(頭部)插入值 (1-N個) O(1~n)
linsert [key before|after value newValue] --- 在list指定的值(前 | 後)插入newValue,須要遍歷 O(n)
lpop [key] --- 從列表左側彈出一個item O(1)
rpop [key] --- 從列表右側彈出一個item O(1)
lrem [key count value] --- 根據count值,從列表中刪除全部value相等的項 O(n)
(1) count > 0,從左到右,刪除最多count個與value相等的項
(2) count < 0,從右到左,刪除最多count個與value相等的項
(3) count = 0,刪除list中全部與value相等的項
ltrim [key start end] --- 按照索引範圍修剪列表 O(n)
lrange [key start end] --- 獲取list指定索引範圍的全部item,end爲-1時,取到末尾 O(n)
lindex [key index] --- 獲取list指定索引的item,index爲-1,取最後一個item O(n)
llen [key] --- 獲取list長度,內部優化值 O(1)
lset [key index newValue] --- 設置list指定索引值爲newValue O(n)
blpop [key timeout] --- lpop阻塞版本,timeout是阻塞超時時間,timeout=0爲永不阻塞 O(1)
brpop [key timeout] --- rpop阻塞版本,timeout是阻塞超時時間,timeout=0爲永不阻塞 O(1)
Set相關命令:
sadd [key element] --- 向集合key添加element(若是element存在,添加失敗) O(1)
srem [key element] --- 將集合key中的element移除掉 O(1)
scard [key] --- 計算集合大小 O(1)
sismember [key value] --- 判斷value是否在集合中
srandmember [key count] --- 從集合中隨機挑count個元素,只是選取,不會提出
spop [key] --- 從集合中隨機彈出一個元素
smembers [key] --- 獲取集合全部元素,返回結果無序,若是集合大當心使用
sdiff [key1 key2] --- 取兩個集合的差集
sinter [key1 key2] --- 取兩個集合的交集
sunion [key1 key2] --- 取兩個集合的並集
sdiff | sinter | sunion + store destkey --- 將差集、交集、並集結果保存到destkey中
Zset相關命令:
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)
zrank [key element] --- 返回element在集合中的排名,從小到大排
zrevrank [key element] --- 返回element在集合中的排名,從大到小排
zrange [key start end withscores] --- 獲取指定排名範圍的的元素和它的分數,能夠不帶withscores,即不打印分數 O(log(n)+m)
zrevrange [key start end withscores] --- zrange的倒序版本
zrangebyscore [key minScore maxScore withscores] --- 返回指定分數範圍的升序元素 O(log(n)+m)
zrevrangebyscore [key minScore maxScore withscores] --- zrangebyscore降序版本
zcount [key minScore maxScore] --- 返回有序集合指定分數範圍的元素個數 O(log(n)+m)
zremrangebyrank [key start end] --- 刪除指定排名內的升序元素 O(log(n)+m)
zremrangebyscore [key minScore maxScore] --- 刪除指定分數內的升序元素 O(log(n)+m)
zinterstore --- 取兩集合交集並存儲
zunionstore --- 取兩集合並集並存儲
Bitmap相關命令:
setbit [key offset value] --- 給位圖指定索引設置值(0或1)注意offset偏移量設置,可能有較大耗時
getbit [key offset] --- 獲取位圖指定索引的值
bitcount [key start end] --- 獲取位圖指定範圍內(start到end,單位爲字節,若是不指定就是獲取所有)值爲1的個數
bitop [op destkey key...] --- 作多個bitmap的and、or、not、xor操做,並將結果保存在destkey中
bitpos [key targetBit start end] --- 計算位圖指定範圍(start到end,單位爲字節,若是不指定就是獲取所有)第一個偏移量對應的值等於targetBit(0或1)的位置
HyperLoglog相關命令:
pfadd [key element...] --- 向hyperloglog添加元素
pfcount [key...] --- 計算hyperloglog的獨立總數
pfmerge [destkey sourcekey...] --- 合併多個sourcekey到destkey
GEO相關命令(redis3.2版本):
geoadd [key longitude latitude member ...] --- 增長一個或多個地理位置信息
geopos [key member...] --- 獲取一個或多個member的經緯度
geodist [key member1 member2 unit] --- 按某個單位(unit:m、km、mi、ft)獲取兩個地理位置的距離
georadius --- 功能參數太多,使用查api
geo說明:
type geoKey = zset
沒有刪除api:zrem key member