ホームページ > バックエンド開発 > PHPチュートリアル > Redisの組み立てと使い方、およびphpでredisを拡張し、redisを動作させるためのphpを実装する例

Redisの組み立てと使い方、およびphpでredisを拡張し、redisを動作させるためのphpを実装する例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:23:06
オリジナル
842 人が閲覧しました

Redis のインストールと使用法、および php で redis を拡張し、redis の php 操作を実現する例

1. ソース コード パッケージ redis-2.8.21.tar.gz をダウンロードします。を指定し、指定したディレクトリ /urs/src、 にアップロードしてから解凍します:

[[email protected] src]# tar - xvf redis- 2.8.21.tar.gz

解凍したディレクトリを入力し、次のコマンドを実行してインストール ディレクトリを /urs/local/redis: として指定します。

[[email protected] src]# cd redis-2.8.21

[[email protected] redis-2.8.21]# make PREFIX=/usr/local/redis install

redis が正常にインストールされると、/usr/local/redisbin が表示されます。 > > ディレクトリには、次のファイルが含まれています:

[[email protected] ~]# cd /usr/local/redis/bin/

[[email protected] ] bin] # ls

redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server

2. を追加します。 >redis

サービスへのスクリプトを開始します:

/etc/rc.d/init.d

ディレクトリにファイルを作成しますredis (説明: /etc/rc.d/init.d/ ディレクトリ内のスクリプトは、システムの起動が実行されます)、次の内容をファイルに追加します: [[email protected] ~]# vim /etc/init.d/redis

#! /bin/ bash

# Redis の初期化ファイル

# chkconfig: - 80 12

# description: redis デーモン

# processname: redis

# config: /etc/redis.conf

# pidfile: /var/run/redis.pid

source /etc/init.d/functions

BIN= "/usr/local/redis/bin"

CONFIG="/etc/redis/redis.conf"

PIDFILE="/var/run /redis.pid"

### 構成の読み取り

[ -r "$SYSCONFIG" ] && ソース "$SYSCONFIG"

RETVAL=0

prog= "redis-server"

desc="Redis サーバー"

start() {

if [ -e $PIDFILE ];then

echo " $desc はすでに実行中です...."

exit 1

fi

echo -n $"Starting $desc: "

デーモン$BIN/ $ Prog $ config

Retval = $?

Echo

[$ Retval-EQ 0] && Touch/VAR/LOCK/SUBSYS/$ Prog

> return $RETVAL

}

stop() {

echo -n $"Stop $desc: "

killproc $prog

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE

return $ RETVAL

}

restart() {

stop

start

}

case "$1" in

開始)

開始

;;

停止)

停止

;;

restart)

restart

;;

condrestart)

[ -e / var/lock/ subsys/$prog ] && restart

RETVAL=$?

;;

status)

status $prog

RETVAL= $?

;;

*)

echo $"使用法: $0 {start|stop|restart|condrestart|status}"

RETVAL= 1

esac

exit $RETVAL

redis ディレクトリに構成ファイルを解凍しますredis.conf/etc/redis/redis.conf にコピーされます (redis と一致する必要があります)起動スクリプト内のパスは同じです )

[[email protected] ~]# mkdir /etc/redis

[[email protected] ~]# cp / usr/ src/redis-2.8.21/redis.conf /etc/redis/redis.conf

次に、登録されたサービスに redis を追加します。

[[email protected] ~]# chkconfig --add redis

[[email protected] ~]# chkconfig redis on

[[email protected] ~] # chkconfig --list redis

redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off

再起動redis

[[email protected] ~]# service redis restart

Redis サーバーを停止: . >

起動が成功したかどうかを確認します:

[[email protected] ~]# ps -ef | grep redis

root 2984 1 0 13:40 ? /usr /local/bin/redis-server 0.0 0.0:6379

root 2989 2444 0 13:40 pts/1 00:00:00 grep redis

変更

/etc/redis/redis.conf

redis プロセスをバックグラウンド デーモンとして設定し、パスワード :[[ email protected] ~]# vim /etc/redis/6379.conf

daemonize yes //daemonize

: バックグラウンド

daemon モードを使用するかどうかrequirepass 20082009 //

パスワードを

20082009 に設定します。 完了しました。その後、 redis

:

[[email protected] ~]# service redis restart

環境変数ファイルを作成し、次の内容を追加します:

vim /etc/profile

#set redis path

export REDIS_HOME=/usr/local/redis

エクスポート PATH=${REDIS_HOME}/bin:${PATH}

source /etc/profile

3 を通じてすぐに有効にし、redis を呼び出します簡単な操作のための -cli コマンド (パスワード検証が有効かどうかに注意してください):

[[email protected] ~]# redis-cli

127.0.0.1 :6379> ping

(エラー) NOAUTH 認証が必要です。

127.0.0.1:6379> 認証 20082009 //パスワードが必要です

OK

127.0.0.1:6379> ping

PONG

127.0.0.1:6379> (エラー) エラー構文エラー

127.0.0.1:6379> set name "lebron james"

//

スペースを含む文字列には "" を追加する必要があります OK

127.0.0.1:6379> 名前を取得

"lebron james"

127.0.0.1:6379>

OK

127.0.0.1:6379> 名前を取得

"lebronjames"

127.0.0.1:6379>

4.php

redis:

php

phpredis の拡張機能をダウンロードします。のソース コード パッケージ phpredis-2.2.4.tar.gz をサーバー上の指定された場所にアップロードして解凍し、解凍されたディレクトリ に入ります。 tar -xvf phpredis-2.2.4.tar.gz

cd phpredis-2.2.4

phpize

を使用してconfigure設定ファイル[[email protected] phpredis-2.2.4]# /usr/local/php/bin/phpize

次に、次のコマンドを実行します:

[[email protected] phpredis-2.2.4]# ./configure --with-php-config=/usr/local/php/bin/php-config

[[email protected] phpredis-2.2.4]# make && make install

Configure

php

Supportphpredis、次の内容を php.ini ファイルに追加します: vim /usr/local/php/lib/php.ini

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

redis.so

その後それぞれ再起動と再起動

nginx

php-fpm、および redis:service nginx restart

service php-fpm restart

service redis restart

次に示すように、

phpinfo()

を表示します。 phpExtensionredis成功を示します:


php

redis を操作する簡単な例:

<?php   $redis = new Redis();   $redis->connect('127.0.0.1', '6379') or die ("Could not to connect to redis"); //或者具体主机的IP地址也行   $redis->set("test", “php handle redis");   var_dump($redis->get('test'));   echo "<br/>";   $redis->del('test');   //删除赋值   var_dump($redis->get('test'));  ?>
ログイン後にコピー


出力結果:


結果から、redis が役割を果たしていないことがわかります。後の分析では、パスワード ログイン redis.conf ファイルで設定されていたことがわかりました。 >redis 制限事項。今は、redis.confrequirepass 20082009 this 内に置くだけです。 #requirepass 20082009 という文をコメントアウトして、redis を再起動します: service redis restart

php ファイルを再度実行すると、次の結果が表示され、php を操作していることがわかります。 redis成功:


Redis

マスター/スレーブマスター/スレーブクラスター構成:

マスター: 172.16.2.33 6379

スレーブ:172.16.2.42 63791

master には redis が設定されているので、slave を設定するには、次のようにします。

1

) redis ソース コード パッケージ redis-2.8.21 .tar.gzscp 経由で スレーブ ホストにリモートでコピーし、解凍し、解凍されたファイルを入力して実行しますコマンド: make PREFIX=/usr/local/redis install。これにより、redisスレーブ ;2

) 次に、環境変数ファイルを変更します:

vim etc/profile を追加します。 export REDIS_HOME =/usr/local/redis export PATH=${REDIS_HOME}/bin:${PATH}source; 3) 次に、

master/etc/init.d/redis ホスト上の slave に対応するディレクトリに移動し、ホスト / 上の master も配置します。 etc/redis/redis。conf ファイルも スレーブ ホストの対応するディレクトリにコピーされます。

4) 次に、ホスト上の slaveredis.conf を変更します。 を変更するだけです。 # スレーブ IP に変更されますPORT: つまり、次のように変更します: slaveof 172.16.2.33 6379; 5;次に、

redis

chkconfig リストに追加します。 chkconfig --add redis ; chkconfig redis on;その後、redis:service redis restart;6)

マスター

ホストに関する情報を表示します: [[email protected] ~]# redis -cli info replication# レプリケーション

role:master

connected_slaves:1

slave0:ip=172.16.2.42,port=63791,state=オンライン、オフセット=924、ラグ=1

master_repl_offset:924

。 。 。

スレーブ

ホストの情報を表示します:

[[email protected] ~]# redis-cli -p 63791 info replication # レプリケーション

role:slave

master_host:172.16.2.33

master_port:6379

master_link_status:up

。 。 。

7) 書き込み同期テスト (

マスター

ホスト上の書き込みデータは

スレーブ ホストに同期されます): マスターホスト上:

[[email protected] ~]# redis-cli 127.0.0.1:6379> set name james

OK

127.0.0.1:6379> 名前を取得

"james"

スレーブ

ホスト上:

[[email protected] ~]# redis-cli -p 63791127.0.0.1:63791> get name

"james"

127.0.0.1:63791> ; set name "lebron james"

(error) READONLY 読み取り専用スレーブ モードに対して書き込むことはできないため、スレーブはデータを書き込むことができません。マスターサーバーからスレーブサーバーに同期されます)

必要に応じて、スレーブ にもデータを書き込むことができます。構成ファイル redis.conf

を変更します。

slave-read-only はい

slave-read- に変更します。 no のみを実行し、redis を再起動します (これを構成した後、slave はデータを書き込むように構成できますが、以下に示すように、マスター とは同期しません:) マスター上の スレーブ: [[ email protected] ~]# redis-cli -p 63791 127.0.0.1:63791> set name "lebron james"OK

127.0.0.1:63791> get;名前「レブロン・ジェームズ」

ホスト上の

マスター (スレーブ ホスト上のデータは マスター と同期されていません):

[[email protected] ~]# redis-cli

127.0.0.1:6379> 名前

"james"

127.0 を取得します。 0.1: 6379>



著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート