1. 程式人生 > 其它 >redis基本操作命令key命令+string命令+事務操作命令

redis基本操作命令key命令+string命令+事務操作命令

key命令

  • 注:Redis是一個key-value的鍵值對的記憶體資料庫。最基本的一些操作就是對這些key的操作。

  • DEL

  • 刪除Key, del key1 key2

  • EXISTS

  • 檢查key是否存在, EXISTS key

  • EXPIRE

  • 設定或者更新到期時間,到期後自動清除,單位秒 設定為-1表示永不過期。 EXPIRE key

  • PERSIST

  • 移除過期時間,key永久儲存。其實就是過期時間設定為-1,永不過期

  • PTTL

  • 以毫秒為單位返回key剩餘的過期時間。

  • TTL

  • 以秒為單位,返回給定key的剩餘生存時間。

  • EXPIREAT

  • 設定key的過期時間,不過設定的是時間戳。

  • PEXPIRE

  • 設定key的過期時間,不過是毫秒單位。

  • PEXPIREAT

  • 設定key的過期時間,不過是時間戳,以毫秒統計。

  • KEYS pattern

  • 查詢匹配給定模式pattern的所有key。

  • KEYS * 匹配資料庫中所有 key 。

  • KEYS h?llo 匹配 hello , hallo 和 hxllo 等。

  • KEYS h*llo 匹配 hllo 和 heeeeello 等。

  • KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。

  • 特殊符號用 \ 隔開

  • MOVE key db

  • 把指定的key移動到資料庫db中。(預設的redis有16個數據庫)

  • SELECT index

  • 切換資料庫(redis預設16個數據庫 編號從0開始)

  • RANDOMKEY

  • 隨機獲取一個key

  • RENAME key newkey

  • 修改key名字。如果newkey已經存在,則刪除newkey。

  • RENAMENX key newkey

  • 僅當newkey不存在時,將key改名為newkey。

  • TYPE key

  • 返回key的型別

string命令

  • GET

  • 獲取

  • MGET

  • 獲取多個

  • SET

  • 設定(新增 修改)

  • MSET

  • 設定一個

  • GETRANGE (加下標)

  • 獲取範圍段

  • 比如一個value是 qwertyuiop

  • 正序 倒序兩種情況。

  • getrange key 0 4 (qwert)

  • getrange key -1 -5 (yuiop)

  • getrange key 0 -1 (qwertyuiop)


  • q w e r t y u i o p

  • 0 1 2 3 4 5 6 7 8 9

  • -10 -9 -8 -7 -6 -5 -4 -3 -2 -1


  • GETSET (獲取當前key值設定新key值)

  • 設定一個值,然後在返回原來老值。

  • SETEX key seconds value

  • 設定一個key,並制定他的過期時間,單位秒

  • PSETEX key milliseconds value

  • 設定一個key,並制定他的過期時間,單位毫秒

  • SETNX

  • 只有在KEY不存在時設定value。就是新增一個(不包含更新)。

  • MSETNX

  • 同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

  • APPEND key value 新增到value尾部

  • 追加到末尾。

  • STRLEN key

  • 長度

  • INCR key 把value自增 類似i++

  • 把key中的數字值增加1

  • INCRBY key increment 設定步長, incrby age 10 把age加10

  • 將key所儲存的值增加一定數量。

  • INCRBYFLOAT key increment

  • 增加一定的浮點數。

  • DECR key 自減

  • 將key儲存數字鍵1

  • DECRBY key decrement 自減設定步長

  • 減去給你的減量值

事務

事務不具有原子性。單條命令列具有原子性。
redis事物簡介(鎖事物)

redis中把事務把所有命令序列化 放入佇列快取 然後按順序執行,事務執行過程中不會接受其他命令執行。

事務執行過程

開始事物

命令佇列

執行事務

MULTI

標記一個事務塊的開始。
事務塊內的多條命令會按照先後順序被放進一個隊列當中,最後由 EXEC 命令原子性(atomic)地執行。

EXEC

執行所有事務塊內的命令。
假如某個(或某些) key 正處於 WATCH 命令的監視之下,且事務塊中有和這個(或這些) key 相關的命令,那麼 EXEC 命令只在這個(或這些) key 沒有被其他命令所改動的情況下執行並生效,否則該事務被打斷(abort)。(所有受監控的鍵都沒有被修改時,才會執行事務)

編譯錯誤 一個佇列內都不執行 ; 執行錯誤 錯誤的命令不執行

等等補充