java: 2009年10月アーカイブ

memcached(java編)

| | コメント(0) | トラックバック(0)
memcachedを使う。

///////////////////////////
  memcachedのインストール  
///////////////////////////

■バージョン
 libevent(1.4.12)
 memcached(1.4.2)

■手順
 
 1.libeventのインストール
  
  $ tar zxf libevent-1.4.12-stable.tar.gz
  $ cd libevent-1.4.12-stable
  $ ./configure
  $ make
  $ sudo make install
  
 2.memcachedのインストール
  
  $ tar zxf memcached-1.4.2.tar.gz
  $ cd memcached-1.4.2
  $ ./configure
  $ make
  $ sudo make install
  

■参考サイト
http://ameblo.jp/takaichi501011/entry-10165364843.html
http://sj6.org/memcached_install_with_php/

///////////////////////////
  memcachedの起動方法    
///////////////////////////

■起動
 
 $ /usr/local/bin/memcached -p 11211 -m 64m -vv
 
 ※起動オプションについては、「■起動オプション」参照
 ※rootで実行する場合は、起動オプションで起動ユーザを指定する必要がある。
 
 ※下記のようなlibeventが見つからないというエラーが出る場合は、
  環境変数を設定するかld.so.confを編集し、libeventが見つかるようにする必要がある。
  
   memcached: error while loading shared libraries: libevent ~省略~
  
  (1)環境変数
   
   $ export LD_LIBRARY_PATH=/usr/local/lib/
   
  (2)ld.so.conf
    
   1.ld.so.confを編集し、/usr/local/lib/を追加
    
    $ vi /etc/ld.so.conf
    
   2.ldconfigの実行
    
    # /sbin/ldconfig
    
    
■起動確認
 
 1.telnetでmemcachedに接続
  
  $ telnet localhost 11211
  
 2.statsコマンドで動作状況を確認
  
  $ stats
  $ STAT pid 34304
  $ STAT uptime 26
    ~省略~
  $ STAT threads 1
  $ END
  
  上記のような結果が返ってくれば正常に動作している。

■終了
 
 $ killall memcached
 

■起動オプション
 
 -l <ip_addr>        memcachedがListenするIPアドレス。 セキュリティを考慮するときちんと指定したほうがよい。
 -d                デーモンとして起動   
 -s <file>            Unixソケットへのパス   
 -P <filename>        PIDファイルの指定。デーモンとして動作した場合のみ有効。   
 -u <username>        memcachedを起動するユーザーを指定。root権限で実行した場合のみ有効。   
 -p <num>            ListenするTCPポート番号。
 -U <num>            ListenするUDPポート番号。
 -m <num>            キャッシュとして利用するメモリの最大容量。単位はMB。
 -c <num>             最大同時接続数。
 -M                メモリを使い果たしたとき勝手にキャッシュを削除しないでエラーを返す   
 -n <bytes>        キャッシュ1件(key+value+flags)に割り当てる最小サイズ 単位はバイト。   
 -v                errorとwarningを出力   
 -vv                -vに加えてクライアントコマンドとレスポンスを出力   
 -i                ライセンス表示   
 -h                バージョンとヘルプの表示   
 -r                コアファイルのサイズ制限を最大化する。   
 -k                巨大なキャッシュを扱うときにキケンなオプション。   
 -f <factor>        チャンクサイズの増加係数
 -b                管理されたインスタンスの起動
 
 
■参考サイト
http://tech.feedforce.jp/memcached.html
http://l-w-i.net/t/memcached/0install_001.txt


////////////////////////////////////////////
  memcached client for javaのインストール 
////////////////////////////////////////////

■バージョン
 memcached client for java
 (2.0.1 JDK5 builtin in logger)

■手順
 
 java_memcached-release_2.0.1.jarへのクラスパスを通すのみ。

Quote!(引用する!) はてなブックマークに追加
久々にServletで悩みました。機種依存文字ってEUC-JPベースで動かしていると難しいですね。
機種依存文字を含んでいたらエラーにしたいのですが、悩んだあげくEUC->MS932へ変換できるどうかで判断することにしました。(邪道かな?)


//request.setCharacterEncoding("euc-jp");

/**EUC文字列として取得*/
byte[] bstr = request.getParameter("themename").getBytes("8859_1");       
String strThemeName = new String(bstr, "EUC-JP");

try {
    //MS932へ変換し、変換できない文字が含まれているかチェックする
    CharBuffer cb = CharBuffer.wrap(strThemeName.toCharArray());
    Charset charset = Charset.forName("MS932");
    CharsetEncoder encoder = charset.newEncoder();
    ByteBuffer bb     = encoder.encode(cb);
  } catch (UnmappableCharacterException e) {
  変換できない文字が含まれている
  }
Quote!(引用する!) はてなブックマークに追加

プロフィール

Tomoki Kuriki

コツコツやれば良い事あるさ!!

横浜天気

2009年10月: 月別アーカイブ

ウェブページ

アルバム

Twitter

このアーカイブについて

このページには、2009年10月以降に書かれたブログ記事のうちjavaカテゴリに属しているものが含まれています。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。