この記事ではDrupal7でMemcacheを設定する方法を詳しく紹介します。この方法が役立つことを願っています。
Memcache の構成については詳しく説明しません。Drupal には多くのモジュールがあり、データベース呼び出しが頻繁に行われるため、Drupal サイトでは memcache の構成が必要になります。便宜上、この記事で簡単に説明します。
1. memcache サービスをインストールし、memcached を起動します。
2. drupalのmemcacheモジュールをインストールします。 (http://drupal.org/project/memcache)
3. settings.phpを設定します
コードは次のとおりです | コードをコピー |
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; // 「cache_form」ビンには不揮発性ストレージを割り当てる必要があります。 $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['memcache_key_prefix'] = 'something_unique'; |
Drupal モジュールのディレクトリ構成の概要で述べたように、memcache モジュールは通常 contrib フォルダーの下に配置されるため、パスは sites/all/modules/contrib になる可能性があります。 /memcache/memcache.inc.
さらに、memcache_key_prefix を設定することをお勧めします。
4. 複数の memcachd サービス。
デフォルトでは、memcache_servers と memcache_bins が設定されていない場合、Drupal はサーバーが 127.0.0.1:11211 のみであると認識します。複数の memcache インスタンスがある場合は、次の設定を追加する必要があります。
コードは次のとおりです | コードをコピー |
$conf['memcache_servers'] = array( '10.1.1.1:11211' => 'デフォルト', '10.1.1.1:11212' => 'デフォルト', '10.1.1.2:11211' => 'デフォルト', '10.1.1.3:11211' => 'cluster2', '10.1.1.4:11211' => 'クラスター2' ); $conf['memcache_bins'] = array( 'キャッシュ' => 'デフォルト', 'cache_filter' => 'cluster2', 'cache_menu' => 'cluster2' ); |
準備は完了です。
最後に、単一マシン上に複数の memcache インスタンスを構成する方法、つまり単一マシン上に memcache クラスターを構築する方法を説明しましょう。
2 つのファイルを変更する必要があります。1 つは起動スクリプト /etc/init.d/memcached-multi で、もう 1 つは設定ファイル /etc/sysconfig/memcached です。
コードは次のとおりです | コードをコピー |
/etc/sysconfig/memcached |
複数の memcache インスタンスのサイズを設定するために使用されます
コードは次のとおりです | コードをコピー |
ポート="11211" USER="memcached" MAXCONN = "1024" CACHESIZE="512" オプション="" マルチバケット = "2" CACHESIZEARRAY[1]="1024" CACHESIZEARRAY[2]="128"/etc/init.d/memcached-multi |
はmemcacheコレクション群を起動するために使用されます。(開始、停止、再起動)
代码如下 | 复制幣 |
#! /bin/sh # #chkconfig: - 55 45 # description: memcached デーモンは、ネットワーク メモリ キャッシュ サービスです。 # プロセス名: memcached # 設定: /etc/sysconfig/memcached # pidfile: /var/run/memcached/memcached.pid # 標準LSB関数 #。 /lib/lsb/init-functions # ソース関数ライブラリ 。 /etc/init.d/functions ポート=11211 ユーザー=memcached マックスコン=1024 キャッシュサイズ=64 オプション="" マルチバケット="" if [ -f /etc/sysconfig/memcached ];then 。 /etc/sysconfig/memcached ふぃ [ -z "$MULTIBUCKET" ] && マルチバケット=1 # ネットワークが起動していることを確認してください。 。 /etc/sysconfig/ネットワーク if [ "$NETWORKING" = "いいえ" ] それでは 0番出口 ふぃ RETVAL=0 prog="memcached" 開始 () { echo -n $"$prog を開始します: " # /var/run/memcached に適切な権限があることを確認します if [ "`stat -c %U /var/run/memcached`" != "$USER" ];それでは chown $USER /var/run/memcached ふぃ for i の `/usr/bin/seq 1 $MULTIBUCKET`;する このキャッシュサイズ=$キャッシュサイズ [ ${#CACHESIZEARRAY[*]} -gt 0 -a ${CACHESIZEARRAY[$i]:-0} -gt 0 ] && THISCACHESIZE=${CACHESIZEARRAY[$i]} daemon --pidfile /var/run/memcached/memcached.pid memcached -d -p $PORT -u $USER -m $THISCACHESIZE -c $MAXCONN -P /var/run/memcached/memcached-$i.pid $OPTIONS RETVAL=$RETVAL+$? にしましょう PORT=$PORT+1 とします 完了しました エコー [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached } やめて(){ echo -n $"$prog を停止しています: " for i の `/usr/bin/seq 1 $MULTIBUCKET`;する killproc -p /var/run/memcached/memcached-$i.pid /usr/bin/memcached RETVAL=$RETVAL+$? にしましょう 完了しました エコー if [ $RETVAL -eq 0 ] ;それでは rm -f /var/lock/subsys/memcached rm -f /var/run/memcached.pid ふぃ } 再起動() { やめて スタート } # 私たちがどのように呼ばれたかを見てください。 「$1」の場合 開始) スタート ;; やめて) やめて ;; ステータス) echo 「警告: このステータス チェックはばかげています。netstat または ps の出力を手動で調べてください。」 ステータスがmemcached ;; 再起動|リロード|強制リロード) 再起動 ;; コンリスタート) [ -f /var/lock/subsys/memcached ] && 再起動 || : ;; *) echo $"使用法: $0 {start|stop|status|restart|reload|force-reload|condrestart}" 1番出口 えさっく $RETVAL を終了します |
ここまでいくつかの就寝グループ。