LinuxでRedisを正しくインストールするには

9867 ワード

1.redisとは何か


REmote DIctionary Server(リモートディクショナリサーバ).完全にオープンソースで無料で、C言語で作成され、BSDプロトコルを遵守しています.高性能(key/value)分散型メモリデータベースであり、メモリに基づいてnosqlデータベースを実行し、持続化することをサポートし、現在最も人気のあるnosqlデータベースの一つであり、データ構造サーバとも呼ばれている.
Redisは他のnosqlデータベースと比較して、3つの特徴があります.
a.Redisはデータの永続化をサポートし、メモリのデータをディスクに保存し、再起動時に再ロードして使用できる
b.Redisは単純なkey-valueタイプのデータだけでなくlist,set,zset,hashなどのデータ構造の記憶も提供する
c.Redisはデータバックアップ、すなわちmaster-slaveモードのデータバックアップをサポートする
Redisは何をしますか.
a.メモリストレージと永続化:redisは非同期でメモリのデータをハードディスクに書き込むことをサポートし、サービス継続に影響しない
b.最新のn個のデータを取る操作、例えば、最新の10個のコメントのIDをRedisのリストセットに入れることができる
c.シミュレーションはHttpSessionのように期限切れを設定する必要がある機能
d.発行、購読メッセージシステム
e.タイマー

2.Redisのインストール


第1歩、公式サイトはRedis圧縮パッケージをダウンロードして、住所:http://redis.io/download.stableは安定版を表す.ここでダウンロードしたバージョンは3.2.9です
第2のステップでは、リモート管理ツール(ここではxftpを使用しています)を使用して、圧縮パッケージをLinuxサーバにコピーします(ここでは/usr/localの下に保存されています).
ステップ3、/usr/localディレクトリに入り、ファイルを解凍します.
tar -zxvf redis-3.2.9.tar.gz

/usr/localにredis-3.2.9のディレクトリが表示されます.
ステップ4、redis-3.2.9ディレクトリに入り、コンパイル

cd redis-3.2.9
make

仮想マシンシステムにgccが欠けているため、ccが見つからないコマンドが発生する可能性があります.gccをインストールすれば問題を解決できるので、先にインストールする必要があります.

yum install gcc-c++

致命的なエラー:jemalloc/jemalloc.h:この問題を解決するために、そのファイルまたはディレクトリがない場合は、次のコマンドを実行する必要があります.

make MALLOC=libc

ステップ5、srcディレクトリに入り、インストール

make install

ステップ6、ユーザーとグループの追加

groupadd redis
useradd -c Redis Server -s /sbin/nologin -d /var/lib/redis -g redis -G root

reidsパラメータ解釈:-cユーザー記述情報-sユーザー実行スクリプト.ここではセキュリティ上の考慮で、redisユーザーはリモートログインが許可されていないため、/sbin/nologin-dユーザーホームディレクトリを使用します.ここでは/homeディレクトリの下でredisサブディレクトリを作成する必要がないため、/var/lib/redis空ディレクトリに-G拡張ユーザーグループを配置します.つまり、このユーザーがrootユーザーグループに属していることを示します.
ここまでredisのインストールが完了しました

3.redisの起動


管理を容易にするためにredisファイルを重いredis.confプロファイルと共通コマンドは統一フォルダに移動し、ここで共通コマンドは自動的に/usr/local/binディレクトリに移動したので、ここではredis-3.2.9ディレクトリのredisを直接移動します。confファイルも/usr/local/binディレクトリに移動しました。 [root@localhost redis-3.2.9]# mv redis.conf /usr/local/bin コマンドを直接実行してredisを起動します。 ./redis-server ./redis.conf 次の効果が表示されます。 [root@localhost bin]# ./redis-server ./redis.conf 11164:M 10 Jul 19:02:02.049 * Increased maximum number of open files to 10032 (it was originally set to 1024).                _._                                                             _.-``__ ''-._                                                  _.-``    `.  `_.  ''-._           Redis 3.2.9 (00000000/0) 64 bit .-`` .-```.  ```\/    _.,_ ''-._                                   (    '     ,       .-` | `,   )     Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379 |    `-._   `._    /     _.-'   |     PID: 11164  `-._    `-._  `-./  _.-'   _.-'                                   |`-._`-._    `-.__.-'   _.-'_.-'|                                   |    `-._`-._        _.-'_.-'    |           http://redis.io          `-._    `-._`-.__.-'_.-'    _.-'                                   |`-._`-._    `-.__.-'   _.-'_.-'|                                   |    `-._`-._        _.-'_.-'    |                                    `-._    `-._`-.__.-'_.-'    _.-'                                        `-._    `-.__.-'   _.-'                                                `-._        _.-'                                                        `-.__.-'                                               ​ 11164:M 10 Jul 19:02:02.071 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 11164:M 10 Jul 19:02:02.072 # Server started, Redis version 3.2.9 11164:M 10 Jul 19:02:02.072 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 11164:M 10 Jul 19:02:02.073 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 11164:M 10 Jul 19:02:02.073 * The server is now ready to accept connections on port 6379 ^C11164:signal-handler (1499684525) Received SIGINT scheduling shutdown... 11164:M 10 Jul 19:02:05.537 # User requested shutdown... 11164:M 10 Jul 19:02:05.537 * Saving the final RDB snapshot before exiting. 11164:M 10 Jul 19:02:05.545 * DB saved on disk 11164:M 10 Jul 19:02:05.545 * Removing the pid file. 11164:M 10 Jul 19:02:05.545 # Redis is now ready to exit, bye bye... 起動は成功したが、この時点でフロントが実行するので、redisサービスのバックグラウンドを実行する必要があるので、Ctrl+Cを終了し、redisを編集します。confファイル、daemonizeプロパティをyesに変更(バックグラウンドで実行する必要があることを示し、デフォルトはno) [root@localhost bin]# netstat -tunpl | grep 6379 [root@localhost bin]# ls dump.rdb  redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis.conf  redis-sentinel  redis-server [root@localhost bin]# vi redis.conf 変更、保存終了、redisの再起動: [root@localhost bin]# ./redis-server ./redis.conf [root@localhost bin]# netstat -tunpl | grep 6379 tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      11172/./redis-serve redis-serveが6379ポートを占有することがわかる(redisのデフォルトポートは6379). redisを起動するクライアント: [root@localhost bin]# ./redis-cli 127.0.0.1:6379> keys * (empty list or set) 起動成功!