3.Redis文字列コマンド

6373 ワード

SET key value##
このコマンドは、指定したキーに値を設定するために使用され、1つのキーには最大512 Mが格納され、キーが存在する場合、同じ名前で上書きされます.
SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]
  • EX seconds指定期限を設定します.単位は秒
  • です.
  • px milliseconds指定の有効期限をミリ秒
  • で設定
  • NXはキー値が存在しない場合のみ設定に成功し、そうでなければ失敗し、新規作成のみに使用することに相当し、
  • を上書きすることはできない.
  • XXキー値が存在する場合のみ設定に成功します.そうしないと、エラーが発生し、上書きのみに使用することに相当し、
    127.0.0.1:6379> SET redis hello
    OK
    127.0.0.1:6379> GET redis
    "hello"
    
    //      ,NX        
    127.0.0.1:6379> SET redis world NX
    (nil)
    127.0.0.1:6379> GET redis
    "hello"
    
    //      ,XX    ,XX      
    127.0.0.1:6379> SET redis world XX
    OK
    127.0.0.1:6379> GET redis2 world XX
    (error) ERR wrong number of arguments for 'get' command
    
    //        
    127.0.0.1:6379> set redis 'hello world' EX 5
    OK
    127.0.0.1:6379> TTL redis
    (integer) 3
    127.0.0.1:6379> TTL redis
    (integer) -2
    127.0.0.1:6379> EXISTS redis
    (integer) 0
    
    //         
    127.0.0.1:6379> set redis 'hello world' PX 5000
    OK
    127.0.0.1:6379> PTTL redis
    (integer) 752
    127.0.0.1:6379> EXISTS redis
    (integer) 0
    
    // EX PX     ,         
    127.0.0.1:6379> set redis 'hello world' EX 10 PX 50000
    OK
    127.0.0.1:6379> TTL redis
    (integer) 42
    127.0.0.1:6379> set redis 'hello world' PX 50000 EX 5
    OK
    127.0.0.1:6379> TTL redis
    (integer) 2
    
  • は新規作成されません.
    GET key##
    keyに基づいて対応する値が見つかり、存在しない場合はnilを返し、タイプが文字列でない場合はエラーを報告します.
    GET key
    

    GETSET key value##
    指定したkeyの値を設定し、古い値を返します.存在しない場合はnilを返します.
    127.0.0.1:6379> GETSET redis 'stronger'
    "hello world"
    127.0.0.1:6379> GET redis
    "stronger"
    127.0.0.1:6379> GETSET str1 'hello'
    (nil)
    127.0.0.1:6379> GET str1
    "hello"
    

    MSET key value [key value...]
    複数のキー値ペアを一度に設定
    127.0.0.1:6379> MSET str1 'text1' str2 'text2' str3 'text3'
    OK
    

    MGET key [key...]
    複数のキー値ペアを一度に取得
    127.0.0.1:6379> MGET str1 str2 str3 str4
    1) "text1"
    2) "text2"
    3) "text3"
    4) (nil)
    

    STRLEN key
    取得keyの文字列長
    127.0.0.1:6379> STRLEN str1
    (integer) 5
    127.0.0.1:6379> STRLEN str4 
    (integer) 0  //      0
    

    SETRANGE key offset value
    文字列の置換keyが存在しない場合、keyが作成されます.設定したkeyの元の文字列の長さがoffsetより小さい場合は、ゼロバイト(x 00)で入力されます.
    127.0.0.1:6379> SET str4 'hello world'
    OK
    127.0.0.1:6379> SETRANGE str4 6 'Redis'
    (integer) 11
    127.0.0.1:6379> GET str4
    "hello Redis"
    127.0.0.1:6379> EXISTS str5
    (integer) 0   // str5   
    127.0.0.1:6379> SETRANGE str5 5 'redis'
    (integer) 10
    127.0.0.1:6379> GET str5
    "\x00\x00\x00\x00\x00redis"
    

    GETRANGE key start end
    キー文字列に格納された値、オフセットによって決定されたサブ列の開始と終了(両方を含む)を取得します.負のオフセットは、文字列の最後のオフセットから使用されることを提供することができる.
    127.0.0.1:6379> SET redis 'hello world'
    OK
    127.0.0.1:6379> GETRANGE redis 0 4
    "hello"
    127.0.0.1:6379> GETRANGE redis 6 -1
    "world"
    127.0.0.1:6379> GETRANGE redis 6 1000
    "world"
    

    SETNX key value
    keyが存在しない場合のみ設定に成功し、成功して1を返し、失敗して0を返します.
    127.0.0.1:6379> SETNX str5 'hello'
    (integer) 0
    127.0.0.1:6379> SETNX str6 'hello'
    (integer) 1
    127.0.0.1:6379> MGET str5 str6
    1) "\x00\x00\x00\x00\x00redis"
    2) "hello"
    

    SETEX key seconds value
    キーの有効期限の単位を秒に設定し、設定値と有効期限の動作は原子的です.
    127.0.0.1:6379> SETEX str6 5 'redis'
    OK
    127.0.0.1:6379> GET str6
    "redis"
    127.0.0.1:6379> TTL str6
    (integer) 2 //          
    127.0.0.1:6379> GET str6
    (nil) // 5    
    

    MSETNX key value [key value]
    keyが存在しない場合のみ設定に成功し、複数同時に設定できます.1つの失敗があれば、全体がすべて失敗し、成功は1を返し、失敗は0を返します.
    127.0.0.1:6379> MSETNX str5 'text5' str6 'text6'
    (integer) 0
    127.0.0.1:6379> EXISTS str6
    (integer) 0
    127.0.0.1:6379> EXISTS str5
    (integer) 1  // str5    ,     MSETNX  
    127.0.0.1:6379> MSETNX str6 'text6' str7 'text7'
    (integer) 1 // str6 str7   ,  
    127.0.0.1:6379> EXISTS str6
    (integer) 1
    127.0.0.1:6379> EXISTS str7
    (integer) 1
    

    PSETEX key milliseconds value
    キーの有効期限の単位をミリ秒に設定し、設定値と有効期限の動作は原子的です.使用方法はSETEXと同じです
    127.0.0.1:6379> PSETEX str7 5000 'text7'
    OK
    127.0.0.1:6379> PTTL str7
    (integer) 344
    127.0.0.1:6379> PTTL str7
    (integer) -2
    127.0.0.1:6379> EXISTS str7
    (integer) 0
    

    INCR key
    keyに格納されている数字+1に対して、keyが存在しない場合はkeyを追加し、値は1である.キーが数字でない場合は保存され、キーに格納されているのは整数でなければなりません.
    127.0.0.1:6379> SET page 1
    OK
    127.0.0.1:6379> INCR page
    (integer) 2
    127.0.0.1:6379> GET page
    "2"
    127.0.0.1:6379> SET redis 'test'
    OK
    127.0.0.1:6379> INCR redis
    (error) ERR value is not an integer or out of range
    127.0.0.1:6379> EXISTS count
    (integer) 0
    127.0.0.1:6379> INCR count
    (integer) 1
    

    INCRBY key increment
    keyに格納されている数字に指定した増分を加えるには、増分は整数でなければなりません.
    127.0.0.1:6379> SET page 1
    OK
    127.0.0.1:6379> INCR page
    (integer) 2
    127.0.0.1:6379> INCRBY page 5
    (integer) 7
    127.0.0.1:6379> INCRBY page 1.2
    (error) ERR value is not an integer or out of range
    

    INCRBYFLOAT key increment
    キーに格納されている数字に指定した増分を加えると、浮動小数点数と整数になります.
    127.0.0.1:6379> INCRBYFLOAT page 1.2
    "8.2"
    127.0.0.1:6379> INCRBYFLOAT page 5
    "13.2"
    

    DECR key
    キーに格納されている数字-1をINCRと同じ構文で
    DECRBY key decrement
    keyに格納されている数字から指定された量を減算するには、整数でなければなりません.構文はINCRBYと同じです.
    127.0.0.1:6379> SET page '10'
    OK
    127.0.0.1:6379> DECR page
    (integer) 9
    127.0.0.1:6379> DECRBY page 5
    (integer) 4
    127.0.0.1:6379> DECRBY page2 5
    (integer) -5
    127.0.0.1:6379> DECRBY page2 -5
    (integer) 0
    

    注意:DECRBYFLOATはありません!!!DECRBYFLOATはありません!!!DECRBYFLOATはありません!!!
    APPEND key append
    文字列の末尾に内容を追加し、keyが存在しなければSET操作を実行したに相当し、戻り値は文字列の長さである
    127.0.0.1:6379> EXISTS redis
    (integer) 0
    127.0.0.1:6379> APPEND redis 'hello'
    (integer) 5
    127.0.0.1:6379> APPEND redis ' world'
    (integer) 11
    127.0.0.1:6379> GET redis
    "hello world"