redis學習——基礎指令

Hiway發表於2019-09-15

其他更多java基礎文章:
java基礎學習(目錄)


學習資料:
redis指令目錄
redis學習筆記

通用命令

命令 描述 備註
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

  1. LPUSH + LPOP = Stack(棧)
  2. LPUSH +RPOP = Queue(佇列)
  3. LPUSH + LTRIM = Capped Collection(固定集合)
  4. 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(有序集合)

結構

redis學習——基礎指令

redis學習——基礎指令

命令

命令 描述 備註
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/…

相關文章