Redisキャッシュデータベースサーバ


RedisキャッシュデータベースサーバRedisは、オープンソースのテクノロジーとメモリを永続化できるログ型であり、Key-ValueデータベースRedisのストレージはメモリストレージ、ディスクストレージ、ログファイルの3つの部分に分けられ、プロファイルには3つのパラメータが構成されています.
利点:Mecachedよりも安全で、格納されているvalueタイプが相対的に多くサポートされています.Redisは、定期的に更新されたデータをディスクに書き込むか、修正操作を追加の記録ファイルに書き込むことにより、マスタースレーブ同期を実現します
/var/log/redis_6379.logログファイル/var/lib/redis/6379データディレクトリ/usr/local/bin/redis-server Redisサーバソフトウェアストレージパス
vim/etc/redis/6379.confプロファイル.....maxmemory最大メモリmaxmemory-policy volatile-lruメモリがいっぱいの場合、LRUアルゴリズムを使用して古いデータdaemonize yesデーモンpidfile/var/run/redis_をクリーンアップ6379.pidプロセスPIDport 6379ポート番号timeout 300接続タイムアウトloglevel noticeログレベルlogfile/var/log/redis_6379.logログファイルdatabases 16データベース個数save 900 1データベースミラー周波数dbfilename dump.rdbミラーバックアップファイル名/var/lib/redis/6379バックアップファイルパスslaveeofプライマリサーバIPおよびポートを設定し、プライマリサーバとデータをアクティブに同期masterauthプライマリ認証パスワードrequirepass foobaredクライアントからサーバに接続した後、パスワードを入力してから、他の操作maxclients 10000最大クライアント同時接続数maxmemory最大メモリ使用量
 key  
>keys *        key
>keys h?llo  ?        
>keys h*llo   *        
>keys h[ae]llo    hello hallo

flushallすべてのデータをクリア
 select id
      ,id     ,      0
 >select 0
 >select 1

 move key db_id
       key   db_id    
>move key 1   key   1    

rename key newkeyはkeyにnewkeyと改名し、newkeyがすでに存在する場合、その値を上書きする
sort key 
 key    
>lpush cost 1 8 7 2 5
>sort cost         ,  
>sort cost desc   

一、redis基礎管理1、tar xzf redis-3.0.6をインストールする.tar.gz cd redis-3.0.6/make && make install
2、初期化./utils/install_server.shヒントの問題はすべて車に戻ることができますが、各種ファイルの保存経路を観察します.
3、サービス管理ls/etc/init.d/redis_6379//起動スクリプトの表示サービスredis_6379 statusステータス表示サービスredis_6379 stopservice redis_6379 startnetstat -nautlp |grep redis
4、サーバー基礎テストredis-cli pingテストサーバーPONG 127.0.0.1:6379>set username songtao設定変数127.0.0.1:6379>get username test値「songtao」127.0.0.1:6379>set counter 10 OK 127.0.0.1:6379>INCR counter 11127.0.1:6379>GET counter"11"127.0.0.1:6379>INCR mycounter設定カウンタmycounter(integer)1127.0.1:6379>INCR mycounterカウンタmycounterによる自己加算(integer)2
5、操作文字列フォーマット:set key value[ex seconds][px milliseconds][nx|xx]キーと値(value)を設定し、有効期限は秒またはミリ秒単位に設定できます.nxはkeyが存在しない限り、keyを操作xxはkeyが存在し、keyを操作する
setrange key  offset value
        key      
set first "hello"
setrange first 5 "xixi"    hellxixi

srtlen  ket
      
strlen  first 

append key value
       ,      key value
    key   
>append myname  jacob

setbit key iffset value
 key     ,             (bit)
value    1 0,odffset 0~2^32  
key   ,    key
>setbit abc  0 1
>setbit abc  1 0
abc: 0  1,    0

bitcount key 
         1      
>setbit  abcd 0 1  //0001
>setbit  abcd 3 1  //1001
>bitcount abcd     //   2

        , key      ,offset      
   offset    1。
>setbit  abcd 100 1  //    100     1 
>setbit  abcd 225 1  //    250     1 
>bitcount abcd     //   2

decr key
 key    1,key         0,  1
>set  test  10
>decr test

decrby  key  decrement
 key   ,  decrement
>set count 100
>decrby count 20

get key
  key        
  key         nil
  key      ,     ,get      

getrange key  start end
          ,     start end
            ,-1        ,-2         
>set first "hello,the world"
>getrange  first -5 -1
>getrange  first 0 4

incr keyはkeyの値に1を加え、keyが存在しない場合は0に初期化してからカウンタに1を追加します.
set page 20incr page
incrby key increment
 key    increment

incrbyfloat key increment
 key              increment
>set num 16.1
>incrbyfloat num 1.1

mget key [key...]
         key  ,    

mset key  value  [key  value ...]
      key  ,    

例・redis-cli 127.0.0.1:6379>set first'hello world'設定文字列変数127.0.0.1:6379>get first"hello world"127.0.0.1:6379>SETRANGE first 6'hehehehehe'は6文字目から修正するhello hehehehehe 127に書き換えられる.0.0.1:6379>get first 127.0.0.1:6379>APPEND username"sudan"変数に127.0.0.1を追加:6379>SETBIT mytest 0 1(integer)0127.0.0.0.1:6379>SETBIT mytest 1 0(integer)0127.0.1:6379>get mytest 127.0.0.1:6379>SETBIT peter 100 1 2進数を設定100位1(integer)0127.0.1:6379>SETBIT peter 105 1 2進数を設定105位1(integer)0127.0.0.1:6379>BITCOUNT peter統計peter 1の桁数がどれくらいあるか(integer)2127.0.1:6379>set num 1 100はnum 1=100 OK 127に相当する.0.0.1:6379>get num 1"100"127.0.0.1:6379>INCR num 1相当num 1+(integer)101127.0.0.1:6379>DECR num 1相当num 1 1-(integer)100127.0.0.1:6379>DECRBY num 1 10#num 1=num 1-10127.0.0.1:6379>INCRBY num 1 10#num 1=num 1+10127.0.0.1:6379>set hi"hello world"127.0.1:6379>STRLEN hi 127.0.0.1:6379> GETRANGE hi 6 -1127.0.0.1:6379> GETRANGE hi 6 1127.0.0.1:6379> set num2 10.5127.0.0.1:6379> INCRBYFLOAT num2 0.3"10.8"127.0.0.1:6379> INCRBYFLOAT num2 -0.8"10"127.0.0.1:6379> MGET num1 num2127.0.0.1:6379> MSET a 10 b "abc"OK127.0.0.1:6379> get a"10,"127.0.0.1:6379> get b"abc"
HashテーブルデータRedis hashはstringタイプのfieldとvalueのマッピングテーブルです.1つのkeyは複数のfieldに対応し、1つのfieldは1つのvalueに対応して1つのオブジェクトをhashタイプに格納し、各フィールドよりもsrtingタイプに格納するとメモリを節約できます.
hset key field value
 hash  field    value
>hset site google 'www.goog.cn'
>hset site baidu 'www.baidu.com'

hget key filed
  hash  field  
>hget  site  google

hmset key field value [field value..]
   hash     field  
>hmset site google www.goog.cn baidu www.baidu.com

hmget key  field [field...]
  hash    field  
>hmget site google  baidu

hkeys key
  hash    field  
>hmset site google www.goog.cn  baidu  www.baidu.com
>hkeys site

hgetall key 
  hash    field  

hvals key 
  hash    field  
>hvals  key

hdel key  field [field...]
  hash    field  ,      
>hdel site google baidu

例:redis-cli 127.0.0.1:6379> hset site google "www.google.com"(integer) 1127.0.0.1:6379> hset site baidu "www.baidu.com"(integer) 1127.0.0.1:6379> HGET site google"www.google.com"127.0.0.1:6379> hget site baidu"www.baidu.com"127.0.0.1:6379> hmset site2 tudu "www.tedu.cn"tar "www.tarler.com"127.0.0.1:6379> hmget site2 tudu tar127.0.0.1:6379>HKEYS site keyに存在するvalue 127を表示する.0.0.1:6379> HKEYS site2127.0.0.1:6379>HGETALL siteはfieldとvalue 127を返す.0.0.1:6379>HVALssiteはsite中のすべてのvalue 127を返す.0.0.1:6379>HDEL site google siteからgoogleを削除
listリストRedisのlistは1つの文字キューで1つのkeyは複数の値を持つことができます
lpush key value [value...]
       value     key   
key   ,   key
>lpush  list a b c  //list1    c b a
   lpush list a;lpush  list b;lpush  list c

lrange  key start stop
       key   stop  
>lrange xixi 0  2    0    ,  2   
>lrange xixi 0  -1           
>lrange xixi 0  -2          2   

lpop key 
            ,key      nil
>lpop xiix         ,      

llen  key
    key   

lindex key index
      index  
>lindex  key 0
>lindex  key -2

lset key index value
 key index       value
>lset abc 3 test  list  3     test

rpush  key value [value..]
 value   key   
>rpush  haha  a b c   //haha  a b c
>rpush  haha  d       //    d

例:redis-cli 127.0.0.1:6379> LPUSH mylist chenshun chenglixin yegutian127.0.0.1:6379>LRANGE mylist 1-1リストの1位から最後の1位までの値127.0.0.1:6379>LPUSH mylist mayang 127.0.0.1:6379>LRANGE mylist 0-1すべての値を表示127.0.0.1:6379>help@#tabキー127.0.0.1:6379>help@list 127.0.0.1:6379> RPUSH mylist wanghong127.0.0.1:6379> LRANGE mylist 0 -1127.0.0.1:6379> LSET mylist 2 chenyuan127.0.0.1:6379> LLEN mylist127.0.0.1:6379> LPOP mylist127.0.0.1:6379> RPOP mylist127.0.0.1:6379> LINDEX mylist 1127.0.0.1:6379> get username127.0.0.1:6379>ttl username#表示生存期間127.0.0.1:6379>PERSIST username#設定期限切れ127.0.0.1:6379>EXPIRE username 30#生存時間30秒127.0.0.1:6379>del mylist#削除mylist#削除mylist 127.0.0.1:6379>keys#すべてのkey 127を表示する.0.0.1:6379> set hello 10OK127.0.0.1:6379> set hllo 20OK127.0.0.1:6379> set habllo 30OK127.0.0.1:6379> set hfllo 40OK127.0.0.1:6379> KEYS h?llo # ?一致文字127.0.0.1:6379>KEYS hllo#一致0から複数の任意の意味文字127.0.0.1:6379>KEYS h[a-z]llo#[]一致文字127.0.0.1:6379>set h 1 llo 5127.0.0.1:6379>KEYS h[a-z 0-9]llo 127.0.0.1:6379> KEYS h[ade0-9]llo127.0.0.1:6379>KEYS 127.0.0.1:6379>FLUSHALLクリア全データ127.0.0.1:6379>KEYS 127.0.0.1:6379>set username zhangsan 127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 1127.0.0.1:6379[1]> get username(nil)127.0.0.1:6379[1]> select 0127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 0127.0.0.1:6379> MOVE username 1(integer) 1127.0.0.1:6379> get username(nil)127.0.0.1:6379> select 1OK127.0.0.1:6379[1]>get username"zhangsan"127.0.0.1:6379[1]>127.0.0.1:6379[1]>127.0.0.1:6379[1]>keys 1)「username」127.0.0.1:6379[1]>RENAME username name#改名OK 127.0.0.1:6379[1]>keys*1)「name」127.0.0.1:6379[1]>get name「zhangsan」127.0.0.1:6379[1]>lpush mylist 10 2 38 69 42127.0.0.1:6379[1]>SORT mylist#はmylist 127を変更しない.0.0.1:6379[1]>LRANGE mylist 0-1127.00.0.1:6379[1]>sort mylist desc#降順127.0.0.1:6379[1]>lpush names zhangsan lisi bob alice 127.0.0.1:6379[1]>sort names alpha#アルファベット順
アルファベット順に並べ替え、下に1と表記された単語から2項127.0.0.1:6379[1]>SORT names alpha limit 1 2127.0.0.0.1:6379[1]>SORT names alpha limit 1 2 descを取り出す
mylistをソートしてmylist 2127として保存します.0.0.1:6379[1]> sort mylist store mylist2127.0.0.1:6379[1]> LRANGE mylist2 0 -1
      redis  

1、プライマリサーバは既存のredisを使用する
2、サーバーyum install-y gcc gcc-c++tar xzf redis-3.0.6.tar.gz cd redis-3.0.6/make && make install./utils/install_server.sh
3、マスターサーバは同期パスワードvim/etc/redis/6379を設定.confプロファイルrequirepass redis 123サーバパスワードの設定
サービスの再起動:サービスredis_6379 restartまたは/etc/init.d/redis_6379 restart
4、サービスを閉じる認証パスワードvim/etc/initを設定.d/redis_6379 $CLIEXEC -a redis123 -p $REDISPORT shutdown
サービスの再起動:サービスredis_6379 restart
5、セカンダリサーバプロファイルvim/etc/redis/6379を構成する.conf slaveeof 192.168.4.1 6379プライマリサーバipmasterauth redis 123
サービスの再起動:サービスredis_6379 restart
6.主従データが同じかどうかを検証する登録主:redis-cli-h 192.168.4.1-a redis 123192.168.4.1:6379> set aaa 100
From:redis-cli 127.0.0.1:6379>keys*127.0.0.1:6379>get aaa