redisの概要とインストール


1、redis紹介:
    REmote DIctionary Server (redis)
key-valueキー値ペアに基づく永続化データベースストレージシステムです.redisはmemcachedキャッシュサーバに似ていますが、string(文字列)、list(チェーンテーブル)、set(セット)、zest(秩序セット)など、redisがサポートするデータストレージのタイプはより豊富です.
これらのデータ型はpush/pop,add/removeおよび交差を取り,差セットを集合するなどの豊富な動作をサポートし,これらの動作はすべて原子的である.これに基づいて、redisは様々な方法のソートをサポートします.Memcahcedキャッシュサービスと同様に、効率を保証するために、データはメモリにキャッシュされてサービスを提供します.Memcacheとは異なり、redis永続化キャッシュサービスは、更新されたデータをディスクに周期的に書き込むことや、変更された操作記録をファイル記録に追加することで、memcachedよりも優れているのは、redisがmaster-slave同期をサポートする点で、リレーショナルデータベースMySQLに似ている.
redisの出現は、memcachedのようなkey-valueメモリキャッシュサービスの不足をある程度解消し、一部の場合、関係データベースに良い補完作用を果たすことができる.redisはPython、Ruby、Erlang、PHPクライアントを提供し、使いやすい.
公式サイト:http://www.redis.io/documentation
         http://www.redis.cn/
2、redisの優勢:
パフォーマンスが高い:Redisは100 K+毎秒の読み書き周波数をサポートします.(データベースも数百の同時で、数千はもう高いです)
豊富なデータ型:Redisはバイナリのstrings、lists、Hashes、Sets、Orderedなどのデータ型をサポート
原子:Redisのすべての操作は原子性であり、同時にRedisはいくつかの操作の完全な並列後の原子性の特徴をサポートしている.
豊富な特性:Redisはpubish、subecirbe、通知、keyの期限切れなどの特性もサポートしています.
redisは非同期プライマリ・スレーブ・レプリケーションをサポート
3、redisのデータ型(以下、一般的な5種類):
    String、Hash、List、Set、Sorte set
4、Redisの応用シーン:
従来のMYSQL+MemcacheのWebサイトアーキテクチャで発生した問題:
mysqlデータは実際には大量のデータストレージに適しており、Memcachedを通じてホットスポットデータをメモリcacheに保存することで、データアクセスを加速させる目的を達成しているため、ほとんどの会社がこのようなアーキテクチャを使用したことがあるが、業務データ量の増加とアクセス量の増加に伴い、多くの問題が露呈している.(例えば予熱、再起動操作)
1、Mysqlを絶えず解体する必要があり、Memcachedも絶えず拡張する必要があり、拡張とファイル作業は大量の開発運営時間を占めている.
2、MemcachedとMysqlデータベースのデータの一致性は大きな問題である.
3、Memcachedデータのヒット率が低いかdown機で、大量のアクセスが直接データベースを貫通し、Mysqlがアクセスをサポートできない.
4、機械室にまたがるcacheの同期一致性の問題;
    
redis最適適用シーン:
1、redisの最適適用シーンはすべてのデータin-memoryであり、
2、redisのより多くのシーンはMemcachedの代替品として使用される.(開発協力が必要)
3、key/value以外のデータ型サポートが必要な場合は、redisを使用するのが適切です.
4、持続化をサポートする.
5、ロードバランシングが必要なシーン(redisマスター同期)
推奨:http://blog.nosqlfan.com/専門家のブログ(楽視の仕事)
#Redis bitmapを使用したアクティブなユーザー統計:http://blog.nosqlfan.com/html/3501.html
5、redisのインストール配置:
wget 
tar xf redis-2.8.9.tar.gz 
cd redis-2.8.9
less README 
less INSTALL 
#      
make MALLOC=jemallocmake 
PREFIX=/application/redis-2.8.9 install
ln -s /application/redis-2.8.9/ /application/redis
LANG=EN
tree /application/redis/bin/
/application/redis/bin/   
|-- redis-benchmark        
#redis       ,     telnet           
|-- redis-check-aof        
#redis      ,  redis                ;
|-- redis-check-dump       
#      
|-- redis-cli              
#         
|-- redis-server           
#redis    daemon    
0 directories, 5 files

6.redisサービスの構成と起動:
a、環境変数の構成:
       echo "PATH=/application/redis/bin/:$PATH">>/etc/profile       source/etc/profile
b、redisのプロファイルディレクトリの作成:mkdir/application/redis/conf
c、コピープロファイル:cp-ap/tools/redis/redis-2.8.9/redis.conf /application/redis/conf/
d、ヘルプ情報表示:/アプリケーション/redis/bin/redis-server--helpUsage:./redis-server [/path/to/redis.conf] [options]       ./redis-server - (read config from stdin)       ./redis-server -v or --version       ./redis-server -h or --help       ./redis-server --test-memory Examples:       ./redis-server (run the server with default conf)       ./redis-server/etc/redis/6379.conf       ./redis-server --port 7777       ./redis-server --port 7777 --slaveof 127.0.0.1 8888       ./redis-server/etc/myredis.conf --loglevel verboseSentinel mode:       ./redis-server/etc/sentinel.conf --sentinel
ヒント:メモリが不足している場合は、次の文を実行します.
             sysctl vm.overcommit_memory=1#コマンドライン実行時現在有効
#または/etc/sysctlに追加します.conf
起動:redis-server/application/redis/conf&
#プロファイルの指定
チェック:lsof-i:6379
閉じる:redis-cli shutdown
7.クライアントによるredisサービスのテスト
redis-cliクライアントヘルプ:
        redis-cli  --help
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
              -h <hostname>      Server hostname (default: 127.0.0.1).
              -p <port>          Server port (default: 6379).
              -s <socket>        Server socket (overrides hostname and port).
              -a <password>      Password to use when connecting to the server.
#       :
[root@IDC-D-1098 ~]# redis-cli 
127.0.0.1:6379> help set 

  SET key value [EX seconds] [PX milliseconds] [NX|XX]
  summary: Set the string value of a key
  since: 1.0.0
  group: string

127.0.0.1:6379> set num002  kong
OK
127.0.0.1:6379> get num002
"kong"
127.0.0.1:6379> quit
[root@IDC-D-1098 ~]# redis-cli -h 119.10.115.82 -p 6379 set num003 ling
OK
[root@IDC-D-1098 ~]# redis-cli -h 119.10.115.82 -p 6379 get num003 
"ling"
[root@IDC-D-1098 ~]# redis-cli del num002
(integer) 1
[root@IDC-D-1098 ~]# redis-cli -h 119.10.115.82 -p 6379 get num002 
(nil)
[root@IDC-D-1098 ~]# telnet 127.0.0.1 6379
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set num003 ling
+OK
get num003
$4
ling

本文は“思想が技術より大きい”ブログから出て、転載をお断りします!