Redisの5つの基本データ型と特殊データ型の使い方

5510 ワード

親測定有効#後はメソッドコメント
Redis-Keyタイプ
    keys *        #     key
    set name linailong   #set key   
    keys   *
       :name
    set age 1
    keys *
       :"age" "name"
    exists name  #    key    
       : 1     1    
    expire  name   10   #  key          
    ttl name   #  key    
    type name  #     key     

Stringタイプ
    set key1 v1     #   
    get key1         #   
    exists  key1       #    key    
    append key1"hello"     #     ,    key   ,    set key
    strlen key1         #       
    ---------------------------------------------------------------------------------------------------------------------
    i++
       i+=
    set views 0    #       0
    incr views     #  1       1
    decr  views    #  1      1
    incrby  views  10    #      ,    ,     10
    decrby  views  3    #       3,           3

    ---------------------------------------------------------------------------------------------------------------------

          range
    set key1 "hello,linailong"        #  key1  
    getrange key1 0 3        #     [0,3]
       :hell
    getrange key1  0 -1     #        
       :hello,linailong

    ---------------------------------------------------------------------------------------------------------------------
      
    set key2 abcdefg
    setrange key2 1 xx        #            
       :axxdefg

    ---------------------------------------------------------------------------------------------------------------------
    setex(set  with  expire)        #      
    setnx(set if not exist)          #key      (          )
    setex key3 30 "hello"        #  key3   hello  30    
    setnx mykey  "redis"        #  mykey     mykey
    setnx mykey "MongoDB"     #  mykey  ,    
    get mykey      #     redis  MongoDB

    ---------------------------------------------------------------------------------------------------------------------

    mset
    mget
    mset k1 v1 k2 v2 k3 v3         #       
    keys *
        k1 k2 k3
    mget k1 k2 k3          #       
       :v1 v2 v3
    msetnx k1 v1 k4 v4         #msetnx        ,            
    get k4
       :(nil)

    ---------------------------------------------------------------------------------------------------------------------

       
     set user:1{name:zhangsan,age:3}     #     user:1    json          
             #   key        user:{id}:{filed},     redis     
    mset user:1:name zhangsan  user:1:age 2   
    mset user:1:name  user:1:age
       :zhangsan  2

    ---------------------------------------------------------------------------------------------------------------------

    getset    # get   set
    getset db redis        #      ,   (nil)
    get db  
       :redis
    getset db mongodb    #     ,            
       :redis
    get db
       :"mongodb    "

     ---------------------------------------------------------------------------------------------------------------------
      :
            String       :value                  
            1,   
            2,        
            3,   
            4,      

Listタイプ:すべてのlistコマンドはlで始まる
    LPUSH list one      #        ,       ( )
    LPUSH list  two    
    LPUSH list three
    lrange list 0 -1         #    list   
       :three,two,one
    lrange list 0 1        #          
       :three,two
    Rpush list right        #         ,       ( )
    Lrange list 0 -1
       :three,two,one,right  

---------------------------------------------------------------------------------------------------------------------

     LPOP
     RPOP
     lpop list        #  list      
        :  three
     rpop list        #  list       
        :right



 ---------------------------------------------------------------------------------------------------------------------

    llen  #       
    llen list        #       

 ---------------------------------------------------------------------------------------------------------------------

  lrem        #      
  lrem list 1 one        #  list        value    
 ---------------------------------------------------------------------------------------------------------------------

 rpoplpush        #           ,          
 rpush mylist hello
 rpush mylist  hello1
 rpush mylist  hello2
 rpoplpush mylist myotherlist         #           ,          
 lrange mylist 0 -1
    :hello,hello1
 lrange myotherlist 0 -1
    hello2 

---------------------------------------------------------------------------------------------------------------------
lset        #                  ,    
lpush list value1
lrange list 0 0
   :value1
lset list 0 item
lrange list 0 0 
   :item
        #  ,         ERR index out of range

---------------------------------------------------------------------------------------------------------------------

  :
    1,list        ,
    2,  key   ,      
    3,  key  ,    
    4,         ,   ,      
    5,          ,    !    ,         

Setタイプsadd myset hello#setセットにデータを追加
    smembers myset     #  set     
    sismember myset hello     #        set 
    scard myset        #  set      
    srem myset hello        #  set            

   ---------------------------------------------------------------------------------------------------------------------

     set       ,    
   srandmember  myset        #        
   srandmember  myset        #