redisノート

5915 ワード

  • redisの概要


  • redisはオープンソースのkey-valueデータベースです.また、データ構造サーバとしてよく考えられます.そのvalueには基本的なstringタイプだけでなくlist,set,sorted set,hashタイプも含まれているからです.もちろんこれらのタイプの要素もstringタイプです.すなわちlist,setのこれらの集合タイプにもstringタイプしか含まれない.これらのタイプで原子的な操作をたくさんすることができます.たとえば、1文字valueに文字列を追加します(APPENDコマンド).1つの数字文字列を加算または減算(INCRコマンドは、もちろん整数で処理される).リストタイプに対してpush、pop要素操作(スタックとキューをシミュレートできます)を行うことができます.setタイプについては、いくつかのセット関連操作(intersection union difference)を行うことができる.memcacheにも+,--に似たコマンドがあります.ただしmemcacheのvalueにはstringタイプのみが含まれています.redisのvalueタイプが豊富ではありません.memcaheと同じように性能のためです.redisのデータは通常メモリに格納されます.もちろんredisは、メモリ内のデータを一定時間間隔でディスクに書き込むことで、データの損失を防ぐことができます.redisは、プライマリ・スレーブ・レプリケーション・メカニズム(master-slave replication)もサポートします.redisの他の特性には、簡単なトランザクションサポートとパブリッシュサブスクリプション(pub/sub)チャネル機能が含まれており、redis構成管理は非常に簡単です.さまざまな言語バージョンのオープンソースクライアントクラスライブラリもあります.
  • redisインストール

  • 1、windows
             ,  cmd,   redis  ,  redis-server.exe redis.conf
          redis-cli.exe -h 127.0.0.1 -p 6379    
    2、linux
              ,  ,         
           ./redis-server redis.conf
    
  • redis基本操作

  • 1、  redis
        src/redis-server  src/redis-server redis.conf
        src/redis-server redis.conf 1>log.log 2>errlog.log
        1     ,2     
        
          Redis    Linux           
        vi /etc/rc.local,     :
        /root/install/redis-2.4.9/src/redis-server
    2、Redis     
        src/redis-cli       
        ./redis-cli -h -p -a    host,port,password
    3、    
        set key value   key  value
        get key           key 
        del key           key
        exists key        key    
        keys *                 key
        move key ad4    key    ad4   
        persit key        key     
        randomkey           key
        rename           key
        type                  
        ping                  
        echo name       
        quit            
        dbsize              key   
        info                 
        monitor                
        config get              
        flushdb              
        flushall             
        
    
  • redis共通構成

  • redis       Redis      ,     redis.conf
    1、   CONFIG           
        >>> CONFIG GET CONFIG_SETTING_NAME
        >>> CONFIG GET *        
    2、     redis.conf       CONFIG set        
        >>> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
    3、    
        redis.conf        
        1、daemonize no
            Redis              ,          ,  yes      
        2、pidfile /var/run/redis.pid
             Redis          ,Redis    pid  /var/run/redis.pid  ,    pidfile        
        3、port 6379
              Redis    ,     6379
        4、timeout 300
                           ,     0,       
        5、loglevel verbose
                     ,Redis        :debug,verbose,notice,warning,   verbose
        6、 logfile stdout
                  ,       ,    redis         ,                 ,        /dev/null(   )
        7、databases 16
                    ,      0,    SELECT            id
        8、save  
                    ,        ,           ,        
            Redis              :
             save 900 1
             save 300 10
             save 60 10000
                 900 (15  )  1   ,300 (5  )  10     60   10000   
        9、dbfilename dump.rdb
                      ,    dump.rdb
        10、dir ./
                       
        11、slaveof  
                 slave   ,  master   ip   , redis   ,     master      
        12、masterauth 
             master     ,slave    master   
        13、requirepass foobared
              Redis    ,         ,      redis     auth       ,    
        14、maxmemory 
              Redis      ,Redis              ,       ,Redis               Key,
                   ,          ,          ,           。
            Redis  vm  ,  Key    ,Value    swap 
        15、appendonly no
                              ,Redis                 ,     ,                   。
               redis            save      ,                    。   no
        16、appendfilename appendonly.aof
                     ,   appendonly.aof
        17、appendfsync everysec
                    ,  3    : 
            no:                  ( ) 
            always:             fsync()       ( ,  ) 
            everysec:        (  ,   )
        18、include /path/to/local.conf
                    ,          Redis             ,                   
    
  • redisデータ型

  • Redis        :string(   ),hash(  ),list(  ),set(  ) zset(sorted set:    )
    
    1、keys
        redis     key-value db,           key.  key       ,  key         
      key  binary safe    ,   "my key" "mykey
    " key redis binary , redis 。 key : exits key key , 1 ,0 del key1 key2 ....keyN key, key ,0 key type key key value 。 none key,string ,list set ... keys pattern key(* [] ?) randomkey key, , rename oldkey newkey key, newkey , , 1 ,0 。 oldkey newkey renamenx oldkey newkey , newkey dbsize key expire key seconds key , 。 1 ,0 key ttl key key -1 key select db-index , 0, 16 。 1 ,0 move key db-index key 。 1 。0 key , flushdb key, 。 flushall key, 。 2、string string redis , string 。 redis string 。 jpg 。 string byte , 1G 。 string ,redis memcached。 string : set key value key string value, 1 ,0 setnx key value , key , 0 。nx not exist get key key string , key nil getset key value key , key 。 key nil mget key1 key2 ... keyN key , key , nil。