redis學習——基礎指令
阿新 • • 發佈:2019-12-31
其他更多java基礎文章:
java基礎學習(目錄)
通用命令
命令 | 描述 | 備註 |
---|---|---|
keys [pattern] | 遍歷所有符合的key | keys命令一般不在生產環境使用 |
dbsize | 計算key的總數 | |
exists key | 檢查key是否存在 | 存在返回1,不存在返回0 |
del key | 刪除指定key-value | |
expire key seconds | key在seconds秒後過期 | |
ttl key | 檢視key剩餘的過期時間 | -1表示key存在,並且沒有過期時間 |
persist key | 去掉key的過期時間 | |
type key | 返回key的型別 | string,hash,list,set,zset,none六種 |
字串
命令 | 描述 | 備註 |
---|---|---|
get key | 獲取對應的value | |
set key value | 設定key-value | 不管key是否存在,都設定 |
setnx key value | 設定key-value | key不存在,才設定 |
set key value xx | 設定key-value | key存在,才設定 |
del key | 刪除key-value | |
incr | key自增1,如果key不存在,自增後get(key)=1 | |
decr key | key自減1,如果key不存在,自增後get(key)=-1 | |
incrby key k | key自增k,如果key不存在,自增後get(key)=k | |
decrby key k | key自減k,如果key不存在,自增後get(key)=-k | |
mget key1 key2 key3... | 批量獲取key,原子操作 | |
mset key1 value1 key2 value2 ... | 批量設定key-value | |
getset key newvalue | set key newvalue並返回舊的value | |
append key value | 將value追加到舊的value後 | |
strlen key | 返回字串的長度 | 注意中文 |
incrbyfloat key 3.5 | 增加key對應的值3.5 | |
getrange key start end | 獲取字串指定下標所有的值 | |
setrange key index value | 設定指定下標所有對應的值 |
Hash
命令 | 描述 | 備註 |
---|---|---|
hget key field | 獲取hash key對應的field的value | |
hset key field value | 設定hash key對應的field的value | |
hdel key field | 刪除hash key對應field的value | |
hexists key field | 判斷hash key是否有field | |
hlen key | 獲取hash key field的數量 | |
hmget key field1 field2... | 批量獲取hash key的一批field對應的值 | |
hmset key field1 value1 field2 value2... | 批量設定hash key的一批field value | |
hgetall key | 返回hash key對應所有的field和value | 小心使用,field多的時候執行速度會很慢 |
hvals key | 返回hash key對應所有field的value | |
hkeys key | 返回hash key對應所有的e | |
hsetnx key field value | 設定hash key對應的field的value | 如果field已經存在,則失敗 |
hincrby key field intCounter | hash key對應的field的value自增intCounter | |
hincrbyfloat key field float | 浮點數版 |
list
命令 | 描述 | 備註 |
---|---|---|
rpush key value1 value2... | 從列表右端插入值 | |
lpush key value1 value2... | 從列表左端插入值 | |
linsert key before\after value newvalue | 在list指定的value值前\後插入newvalue | 如果多個相同value值,只會在第一個value處插入 |
lpop key | 從列表左側彈出一個item | |
rpop key | 從列表右側彈出一個item | |
lrem key count value | 根據count值,從列表中刪除所有value相等的項 | 1. count>0,從左到右,刪除最多count個value相等的項。 2.count<0,從右到左,刪除最多count個value相等的項。 3.count=0,刪除所有value相等的項。 |
ltrim key start end | 按照索引範圍修剪列表 | |
lrange key start end | 獲取列表指定索引範圍所有item | 包含end,0\正數從左邊數,負數從右邊數 |
lindex key index | 獲取列表指定索引的item | |
llen key | 獲取列表長度 | |
lset key index newvalue | 設定列表指定索引值為newvalue | |
blpop key timeout | lpop阻塞版本,timeout是阻塞超時時間,timeout=0為永遠不阻塞 | |
brpop | 同上 |
tips
- LPUSH + LPOP = Stack(棧)
- LPUSH +RPOP = Queue(佇列)
- LPUSH + LTRIM = Capped Collection(固定集合)
- LPUSH +BRPOP = Message Queue(訊息佇列)
Set
命令 | 描述 | 備註 |
---|---|---|
sadd key element | 向集合key新增element | 如果element已經存在,新增失敗 |
srem key element | 將集合key中的element移除掉 | |
scard key | 計算集合大小 | |
sismember key element | 判斷element是否在集合key中 | |
srandmember key count | 從集合key中隨機挑count個元素 | |
spop key | 從集合key中隨機彈出一個元素 | |
smembers key | 獲取集合key中所有元素 | 小心使用 |
sdiff key1 key2 | 差集 | |
sinter key1 key2 | 交集 | |
sunion key1 key2 | 並集 | |
sdiff\sinter\sunion + store destkey | 將差集\交集\並集的結果儲存在destkey中 |
ZSet(有序集合)
結構
命令
命令 | 描述 | 備註 |
---|---|---|
zadd key score element(可以是多對) | 新增score和element | score可以重複,element不可重複 |
zrem key element | 刪除元素 | |
zscore key element | 返回元素的分數 | |
zincrby key increScore element | 增加或減少元素的分數 | |
zcard key | 返回元素的總個數 | |
zrange key start end [WITHSCORES] | 返回指定索引範圍內的升序元素 | WITHSCORES是否要返回分數 |
zrangebyscore key minScore maxScore [WITHSCORES] | 返回指定分數範圍內的升序元素 | |
zcount key minScore maxScore | 返回有序集合內在指定分數範圍內的個數 | |
zremrangebyrank key start end | 刪除指定排名內的升序元素 | |
zremrangebyscore key minScore maxScore | 刪除指定分數內的升序元素 | |
zrank key element | 獲取某個元素在集合key中的排名(從小到大) | |
zrevrank key element | 獲取某個元素在集合key中的排名(從大到小) | |
ZINTERSTORE destination numkeys [WEIGHTS weight weight...] [AGGREGATE SUM\ MIN\MAX] | 對給定的有序集合執行類似於集合的交集運算 | www.maiziedu.com/wiki/redis/… |