2012年1月6日金曜日

memcashed

memcachedプロトコル

1.KVSにネットワーク経由でアクセスするための事実上標準プロトコル
2.TCP 11211番ポートを使用
3.テキストベースのプロトコル

コマンドについて
◆memcachedのインストール・起動
# cd /usr/ports/databases/memcached

# make installコンパイルとインストールが終わったら以下のようにしてデーモンの起動を行います。

# vi /etc/rc.conf
(以下の行を追加して保存します)
memcached_enable="YES"

# /usr/local/etc/rc.d/memcached start
以下のようにmemcachedが11211番ポートを待ち受ければ起動成功
IPv6にも対応しています。

% sockstat
grep memcached
nobody memcached 35580 16 tcp6 *:11211 *:*
nobody memcached 35580 17 tcp4 *:11211 *:*
nobody memcached 35580 18 udp6 *:11211 *:*
nobody memcached 35580 19 udp4 *:11211 *:*

memcachedプロトコルの主なコマンド
set データの保存
add データの保存 キーが既に存在しない場合のみ
replace データの保存 キーが既に存在する場合のみ
append 値への後方追加
prepend 値への前方追加
get データの取得
delete データの削除
incr 値への加算
decr 値への減算
stats 各種ステータスを表示
version ソフトウェアのバージョンを表示

※ memcachedプロトコルの仕様書は以下にあります。
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

<コマンド> <key> <flags> <exptime> <bytes>
<data> <key>は保存するためのキー名を指定します。実装によっても異なりますが、最大長は250byteです。
<flags>はアプリケーション特有の32bitの値(0 04294967295)を指定することができ、データの取得時に格納した時の値が返されます。
<exptime>はデータの有効期間を秒数で指定します。指定した時間経過すると、自動的にキーが削除されます。0を指定すると自動削除されませんが、memcachedのようにキャッシュで動いている場合は、キャッシュの容量によって自動削除されることもあります。
<bytes>は以下の<data>で指定するデータのサイズです。例えば”abcde”と5文字を格納する場合は、5と指定します。
<data>は格納するデータです。実装によっても異なりますが、最大長は約1MBytesとなります。
データの取得・削除を行うコマンド(get,delete)は、以下のような文法となり、引数に対象のキー名を指定します。

<コマンド> 値の加減算を行うコマンド(incr,decr)は、以下のような文法となり、引数に対象のキー名と加減算する数値を指定します。
<コマンド> では、これらのコマンドをいくつか実際に試してみます。
========================
telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.

--- set,getコマンド ---
set name 12345 0 6
sakura
STORED
get name
VALUE name 12345 6
sakura
END

--- replaceコマンド ---
replace name 54321 0 6
ohkubo
STORED
get name
VALUE name 54321 6
ohkubo
END

--- appendコマンド ---
append name 0 0 3
123
STORED
get name
VALUE name 54321 9
ohkubo123
END

--- prependコマンド ---
prepend name 0 0 3
123
STORED
get name
VALUE name 54321 12
123ohkubo123
END

--- deleteコマンド ---
delete name
DELETED
get name
END

--- incr,decrコマンド ---
set age 0 0 2
29
STORED
incr age 10
39
decr age 9
30
get age
VALUE age 0 2
30
END

--- statsコマンド ---
stats
STAT pid 35580
STAT uptime 71089
STAT time 1268969708
STAT version 1.4.4
STAT pointer_size 32
STAT rusage_user 0.136690
STAT rusage_system 0.281422
STAT curr_connections 10
STAT total_connections 16
STAT connection_structures 11
STAT cmd_get 29
STAT cmd_set 24
STAT cmd_flush 0
STAT get_hits 22
STAT get_misses 7
STAT delete_misses 1
STAT delete_hits 4
STAT incr_misses 0
STAT incr_hits 3
STAT decr_misses 0
STAT decr_hits 1
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 1111
STAT bytes_written 1864
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 54
STAT curr_items 1
STAT total_items 20
STAT evictions 0
END

--- versionコマンド ---
version
VERSION 1.4.4

--- 終了 ---
quit

2012年1月5日木曜日

Xampp Mysql5.5の漢字コード

Mysql5.5における漢字コードの設定について
まずは設定ファイル
クライアント側はwindowsということで、
またサーバ側はutf8をしようということで。

[client]
default-character-set=cp932

[mysqld]
character_set_server=utf8

[mysqldump]
character_set_server=utf8

[mysql]
character_set_server=utf8

====================================
上記の設定をして、MYSQLを再起動すると、
漢字コードが変更される。
クライアントから見ると

mysql> status

・・・・
Server version: 5.5.16 MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: cp932
Conn. characterset: cp932
TCP port: 3306
・・・
となりました。

[mysqld]にskip-character-set-client-handshakeを書きこむと、
クライアント側はutf8になりますので注意が必要。
クライアント側はset name cp932;にすれば対応は可能。
標準的にはすべてutf8にしておくほうが便利。
漢字コードが統一されているほうがよいです。
=============
[mysqld]
character_set_server=utf8
skip-character-set-client-handshake

[mysqldump]
character_set_server=utf8

[mysql]
character_set_server=utf8
=============

2012年1月4日水曜日

Xamppのバージョンアップ

2009年からXamppのバージョンがそのまま、今年から新しいものに変更。
Tomcatも付いているとは便利になったものだ。

しかし、Apacheが起動しない??
・80番ポートを使用していないのに、
一応確認は コマンドで「netstat -ano」


Skepe、IISを使用していないのは明白、原因をWebで調べると、Oracleのクライアントが原因でした。

C:\xampp\apache\conf\extra\httpd-perl.confを編集
LoadFile "C:/xampp/perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
PerlSwitches -T
PerlPostConfigRequire "C:/xampp/apache/conf/extra/startup.pl"
・・・・

PerlSwitches -T を追加すると見事に起動。
原因は何でしょうね??
起動する際にOracleのクライアントがインストールされていると、
Perlのモジュールの読み込みに失敗するのでしょうか、謎です。

2012年1月2日月曜日

Javascriptの勉強方法

三が日はゆっくり過ごしましょう、特に2日、3日は箱根駅伝を見て自分自身能力をさらにパワーアップしましょう。

水仙

JavaScriptを勉強するには下記を推薦します。
読みやすくわかりやすい。
これを基本書として、今後、こまごまと書いていきたいと思います。

JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで
  • 作者: 山田 祥寛
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/11/27
  • メディア: 大型本

2012年1月1日日曜日

新年明けましておめでとうございます。

新年明けましておめでとうございます。
本年もよろしくお願いいたします。

今年は、技術記録を書いていきます。

野生のタヌキを見たのは初めて(^_^;)