NoSQL-Redisサービス
51290 ワード
NoSQL-Redis 一、概要 二、主流NoSQLソフトウェア 三、Redisサービス 3.1、Redis紹介 3.2、Redisサービスのインストール 3.3、Redis初期構成 3.4、管理Redisサービス 3.5、接続Redisサービス 3.6、Redis共通コマンド 3.6.1、コマンドset、mset、get、mget set key名key値 mset key名リスト get key名 mget 3.6.2、コマンドkeys、type、exists、del keys type key名 del key名 exists key名 3.6.3、コマンドttl、expire、move、flushdb、flushall、save、shutdown、select ttl、expire move key名庫番号 selectデータベース番号0-15 flushdb flushall save shutdown 3.7、プロファイル解析 3.7.1、配置分類 3.7.2、共通の構成項目 3.7.3、IPアドレス、ポート、パスワードの変更 3.7.4、メモリ管理 四、配置LNMP+Redis 4.1、LNMPサイト環境の導入 4.1.1、インストールソースnginx、インストールphp-fpm 4.1.2、サービス開始 4.1.3、試験配置 4.2、配置PHPサポートRedis 4.2.1、redisモジュールを提供するソフトウェアをインストール 4.2.2、redisモジュールのロード 4.3、テスト構成 4.3.1、モジュールの表示 4.3.2、アクセスデータのphpスクリプトを作成してスクリプトにアクセス 4.3.2、データベースサーバー本体でデータを表示 一、概説
NoSQL(Not Only SQL)データベースのみならず 汎指非関係型データベース 予めデータ記憶構造を定義する必要はない 各レコードには、異なるデータ型およびフィールド数 があり得る
二、主流のNoSQLソフトウェア Memcached Redis MongoDB CouchDB Neo4j FlockDB
三、Redisサービス
3.1、Redis紹介Remote Dictionary Server(リモートディクショナリサーバ) 高性能(key/Value)分散メモリデータベース データ永続化をサポート(定期的にメモリのデータをハードディスクに格納) 複数種類のデータ型string、list、hash... をサポートmaster-salveモードデータバックアップをサポート オープンソースソフトウェア 3.2、Redisサービスのインストール
ソースパッケージredis-4.0.8を準備する.tar.gzソースコードコンパイルインストール
3.3、Redis初期構成初期化 デフォルト構成を使用 ポート-6379 メインプロファイル——/etc/redis/6379.conf ログファイル——/var/log/redis_6379.log データベースディレクトリ--/var/lib/redis/6379 サービス起動プログラム--/usr/local/bin/redis-server コマンドライン接続コマンド--/usr/local/bin/redis-cli 3.4、Redisサービスの管理サービス停止 サービス開始 プロセスの表示 ポートの表示
3.5.Redisサービスへの接続
3.6、Redis常用コマンド
3.6.1、コマンドset、mset、get、mget
set key名key値個々のデータを格納
mset key名リスト複数のデータを格納
get key名単一データ取得
mget複数のデータを取得
3.6.2、コマンドkeys、type、exists、del
keysすべての変数keys* を表示表示指定変数
type key名keyタイプの表示
del key名指定したkeyを削除
exists key名key名が存在するかどうかをテスト
3.6.3、コマンドttl、expire、move、flushdb、flushall、save、shutdown、select
ttl、expirekey生存時間を表示する-ttl key名 key有効時間の設定-expire key名数
move key名ライブラリ番号指定ライブラリへキーを移動
selectデータベース番号0-15切替ライブラリ
flushdbライブラリのすべてのキーを削除
flushallメモリ内のすべてのキーを削除
saveすべてのキーをハードディスクに保存
shutdownサービス停止
3.7、構成ファイルの解析
3.7.1、構成分類
名前
説明
NETWORK
ネットワーク
GENERAL
標準
SNAPSHOTTING
スナップショット
REPLICATION
コピー
SECURITY
安全
CLIENTS
クライアント
MEMORY MANAGEMENT
メモリ管理
3.7.2、よく使う構成項目 port 6379 ポート bind 127.0.0.1 IPアドレス daemonize yes デーモン方式運転 databases 16 データベース個数 logfile/var/log/redis_6379.log ログファイル maxclients 10000 同時接続数 dir/var/lib/redis/6379 データベースディレクトリ
3.7.3、IPアドレス、ポート、パスワードの修正
サービス接続時にIPアドレスとポートを指定する必要があります
3.7.4、メモリ管理
四、LNMP+Redisの配置
2台の仮想マシン
4.1.LNMPウェブサイト環境の配置
4.1.1、インストールソースnginx、インストールphp-fpm
4.1.2、サービスを開始する
4.1.3、テスト構成
4.2、配置PHPはRedisをサポートする
4.2.1、redisモジュールを提供するソフトウェアをインストールするインストールredisサービス 構成サポートRedis
4.2.2、redisモジュールをロードする
4.3、テスト構成
4.3.1、モジュールの表示
4.3.2.アクセスデータのphpスクリプトを作成し、スクリプトにアクセスする
4.3.2、データベースサーバーのネイティブでデータを見る
NoSQL(Not Only SQL)
二、主流のNoSQLソフトウェア
三、Redisサービス
3.1、Redis紹介
ソースパッケージredis-4.0.8を準備する.tar.gz
[root@client ~]# rpm -q gcc
[root@client ~]# yum -y install gcc
[root@client ~]# tar -zxf redis-4.0.8.tar.gz
[root@client ~]# cd redis-4.0.8/
[root@client redis-4.0.8]# make && make install
3.3、Redis初期構成
[root@client redis-4.0.8]# ./utils/install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
[root@client redis-4.0.8]# netstat -utnlp |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 5140/redis-server 1
[root@client ~]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@client ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@client ~]# ps -C redis-server
PID TTY TIME CMD
5157 ? 00:00:00 redis-server
[root@client ~]# netstat -utnlp |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 5157/redis-server 1
3.5.Redisサービスへの接続
[root@client redis-4.0.8]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name abc //
OK
127.0.0.1:6379> get name //
"abc"
127.0.0.1:6379> exit
[root@client redis-4.0.8]#
3.6、Redis常用コマンド
3.6.1、コマンドset、mset、get、mget
set key名key値
127.0.0.1:6379> set name abc //
OK
127.0.0.1:6379> get name //
"abc"
mset key名リスト
127.0.0.1:6379> MSET age 19 sex boy
OK
get key名
127.0.0.1:6379> get name
"abc"
mget
127.0.0.1:6379> MGET age sex
1) "19"
2) "boy"
3.6.2、コマンドkeys、type、exists、del
keys
127.0.0.1:6379> keys *
1) "sex"
2) "name"
3) "age"
127.0.0.1:6379> keys ??? //
1) "sex"
2) "age"
127.0.0.1:6379> keys ???? //
1) "name"
127.0.0.1:6379> keys a* // a
1) "age"
type key名
127.0.0.1:6379> type age // set
string
del key名
127.0.0.1:6379> del age
(integer) 1
exists key名
127.0.0.1:6379> EXISTS age // 0
(integer) 0
127.0.0.1:6379> EXISTS sex // 1
(integer) 1
3.6.3、コマンドttl、expire、move、flushdb、flushall、save、shutdown、select
ttl、expire
127.0.0.1:6379> TTL sex // -1,
(integer) -1
127.0.0.1:6379> EXPIRE sex 20 // 20
(integer) 1
127.0.0.1:6379> TTL sex // 14
(integer) 14
127.0.0.1:6379> ttl sex // -2
(integer) -2
127.0.0.1:6379> EXISTS sex //
(integer) 0
move key名ライブラリ番号
127.0.0.1:6379> MOVE name 1 // name 1
(integer) 1
selectデータベース番号0-15
127.0.0.1:6379> select 1 // 1
OK
127.0.0.1:6379[1]> keys * //
1) "name"
flushdb
127.0.0.1:6379[1]> FLUSHDB
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
flushall
127.0.0.1:6379[1]> FLUSHALL
OK
save
127.0.0.1:6379[1]> SAVE
OK
shutdown
127.0.0.1:6379[1]> SHUTDOWN
not connected> exit
[root@client redis-4.0.8]# netstat -utnlp | grep redis-server //
[root@client redis-4.0.8]#
[root@client ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@client ~]# netstat -utnlp | grep redis-server
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1570/redis-server 1
3.7、構成ファイルの解析
3.7.1、構成分類
名前
説明
NETWORK
ネットワーク
GENERAL
標準
SNAPSHOTTING
スナップショット
REPLICATION
コピー
SECURITY
安全
CLIENTS
クライアント
MEMORY MANAGEMENT
メモリ管理
3.7.2、よく使う構成項目
3.7.3、IPアドレス、ポート、パスワードの修正
[root@client ~]# sed -n '70p;93p;501p' /etc/redis/6379.conf //
bind 127.0.0.1
port 6379
# requirepass foobared
[root@client ~]# vim /etc/redis/6379.conf
bind 192.168.4.50
port 6350
requirepass 123456
[root@client ~]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@client ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@client ~]# netstat -utnlp | grep redis
tcp 0 0 192.168.4.50:6350 0.0.0.0:* LISTEN 1702/redis-server 1
サービス接続時にIPアドレスとポートを指定する必要があります
[root@client ~]# redis-cli -h 192.168.4.50 -p 6350
192.168.4.50:6350> ping
(error) NOAUTH Authentication required.
192.168.4.50:6350> AUTH 123456 //
OK
192.168.4.50:6350> ping
PONG
[root@client ~]# redis-cli -h 192.168.4.50 -p 6350 -a 123456
192.168.4.50:6350> ping
PONG
3.7.4、メモリ管理
四、LNMP+Redisの配置
2台の仮想マシン
4.1.LNMPウェブサイト環境の配置
4.1.1、インストールソースnginx、インストールphp-fpm
[root@lnmp ~]# yum -y install gcc pcre-devel zlib-devel
[root@lnmp ~]# tar -zxf nginx-1.12.2.tar.gz
[root@lnmp ~]# ls
[root@lnmp ~]# cd nginx-1.12.2/
[root@lnmp nginx-1.12.2]#
[root@lnmp nginx-1.12.2]# ./configure
[root@lnmp nginx-1.12.2]# make && make install
[root@lnmp nginx-1.12.2]# yum -y install php-fpm
[root@lnmp ~]# vim +65 /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
4.1.2、サービスを開始する
[root@lnmp ~]# /usr/local/nginx/sbin/nginx -t //
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@lnmp ~]# /usr/local/nginx/sbin/nginx
[root@lnmp ~]# netstat -utnlp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4022/nginx: master
[root@lnmp ~]# systemctl start php-fpm.service
[root@lnmp ~]# netstat -utnlp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 4090/php-fpm: maste
4.1.3、テスト構成
[root@lnmp ~]# vim /usr/local/nginx/html/test.php
<?php
echo "l love china" ;
?>
[root@lnmp ~]# curl http://127.0.0.1/test.php
l love china
4.2、配置PHPはRedisをサポートする
4.2.1、redisモジュールを提供するソフトウェアをインストールする
[root@lnmp ~]# tar -zxf redis-4.0.8.tar.gz
[root@lnmp ~]# cd redis-4.0.8/
[root@lnmp redis-4.0.8]# make && make install
[root@lnmp redis-4.0.8]# ./utils/install_server.sh
[root@lnmp ~]# yum -y install php php-devel automake autocon
[root@lnmp ~]# tar -zxf php-redis-2.2.4.tar.gz
[root@lnmp ~]# ls
[root@lnmp ~]# cd phpredis-2.2.4/
[root@lnmp phpredis-2.2.4]# phpize // php-config configure
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@lnmp phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
[root@lnmp phpredis-2.2.4]# make
[root@lnmp phpredis-2.2.4]# make install
Installing shared extensions: /usr/lib64/php/modules/
[root@lnmp phpredis-2.2.4]# ls /usr/lib64/php/modules/
curl.so fileinfo.so json.so phar.so redis.so zip.so
4.2.2、redisモジュールをロードする
[root@lnmp ~]# vim +728 /etc/php.ini
extension_dir = "/usr/lib64/php/modules/"
; On windows:
extension = "redis.so"
[root@lnmp ~]# systemctl restart php-fpm.service
4.3、テスト構成
4.3.1、モジュールの表示
[root@lnmp ~]# php -m | grep -i redis
redis
4.3.2.アクセスデータのphpスクリプトを作成し、スクリプトにアクセスする
[root@lnmp ~]# vim /usr/local/nginx/html/x.php
<?php
$redis = new redis();
$redis->connect("192.168.4.50","6350");
$redis->auth("123456");
$redis->set("school","abc");
echo $redis->get("school");
?>
[root@lnmp ~]# curl http://127.0.0.1/x.php
4.3.2、データベースサーバーのネイティブでデータを見る
192.168.4.50:6350> keys *
1) "school"
192.168.4.50:6350> get school
"abc"