- void Open(String sIP, long nPort=11211)
-
- sIP
-
memcachedサーバーのIPアドレス。
- nPort
-
memcachedサーバーのTCPポート。
- 戻り値
-
[なし]
memcachedサーバーへ接続します。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
nPortに0を指定することでsIPに冗長化され、分散されたサーバー群を指定することができます。
複数台のmemcachedサーバーを指定することでサーバー不具合時にはコールドスタンバイが自動で利用されます。
また、sNameを元に記憶値をN台に分散してストアできます。
- [sURL の記述方法]
-
{URL1},{URL1'};{URL2},{URL2'},...;|{PoolNum}
- [例]
-
set o = createobject("memcachedCOM.Distributed"):
o.Open "mc01.local:11211,mc99.local:11211;mc02.local:11211,mc99.local:11211;|20":
- {URL1}
- memcachedサーバー1台目
- {URL1'}
- memcachedサーバー1台目のコールドスタンバイ
- {URL2}
- memcachedサーバー2台目
- {URL2'}
- memcachedサーバー2台目のコールドスタンバイ
- {PoolNum}
- 各サーバーへの接続をプールする最大数(Default:256)
- void Close()
-
- 戻り値
-
[なし]
memcachedサーバーへの接続を解除します。
- Bool IsOpen()
-
- 戻り値
-
接続しているか否か。
memcachedサーバーへ接続しているか否かを返します。
- Bool TryOpen(String sIP, long nPort=11211)
-
- sIP
-
memcachedサーバーのIPアドレス。
- nPort
-
memcachedサーバーのTCPポート。
- 戻り値
-
接続に成功したか否か。
memcachedサーバーへ接続を試みます。
"Open(...)" とは違い、接続に失敗したりすでに接続されている場合でもエラーにはなりません。
接続に成功したか否かは戻り値で判断可能です。
接続の冗長化(コネクションプーリング)に利用可能です。
【例】memcachedサーバー3台で冗長化する場合
set o = createobject("memcachedCOM")
o.tryOpen("192.168.1.101") '// サーバーダウンなどで失敗しても何も起こらない
o.tryOpen("192.168.1.102") '// すでに接続されていれば何も起こらない
o.tryOpen("192.168.1.103") '// すでに接続されていれば何も起こらない
o("abc") = "ABC"
- Bool TryClose()
-
- 戻り値
-
接続解除に成功したか否か。
memcachedサーバーへ接続を解除を試みます。
"Close(...)" とは違い、解除に失敗したりすでに解除されている場合でもエラーにはなりません。
解除に成功したか否かは戻り値で判断可能です。
- void Set(String sKey, Variant* pValue, long nExptime=0)
-
- sKey
-
キャッシュされる値に付けるキー。
- pValue
-
キャッシュされる値。
- nExptime
-
有効期限(秒)。
- 戻り値
-
[なし]
memcached に set コマンドを送ります。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- void Add(String sKey, Variant* pValue, long nExptime=0)
-
- sKey
-
キャッシュされる値に付けるキー。
- pValue
-
キャッシュされる値。
- nExptime
-
有効期限(秒)。
- 戻り値
-
[なし]
memcached に add コマンドを送ります。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- void Replace(String sKey, Variant* pValue, long nExptime=0)
-
- sKey
-
キャッシュされる値に付けるキー。
- pValue
-
キャッシュされる値。
- nExptime
-
有効期限(秒)。
- 戻り値
-
[なし]
memcached に replace コマンドを送ります。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- Variant Get(String sKey)
-
- sKey
-
キャッシュされている値に付けられたキー。
- 戻り値
-
キャッシュされていた値。
memcached に get コマンドを送ります。
存在しなかった場合 Empty が返ります。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- void Delete(String sKey)
-
- sKey
-
キャッシュされている値に付けられたキー。
- 戻り値
-
[なし]
memcached に delete コマンドを送ります。
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- Variant Gets(String sKey, Variant* pCasUnique)
-
- sKey
-
キャッシュされている値に付けられたキー。
- pCasUnique
-
メソッドが成功すると cas unique値 が入ります。
- 戻り値
-
キャッシュされていた値。
memcached に gets コマンドを送ります。
存在しなかった場合 Empty が返ります。
【例】
value = o.Gets("aaa", cu)
value = value & "!!!"
o.Cas "aaa", cu, value
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- void Cas(String sKey, Variant* pCasUnique, Variant* pValue, long nExptime=0)
-
- sKey
-
キャッシュされている値に付けられたキー。
- pCasUnique
-
Gets で得られた cas unique値。
- pValue
-
キャッシュされる値。
- nExptime
-
有効期限(秒)。
- 戻り値
-
[なし]
memcached に cas コマンドを送ります。
【例】
value = o.Gets("aaa", cu)
value = value & "!!!"
o.Cas "aaa", cu, value
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。
- Variant Stats(String sType="")
-
- sType
-
取得する統計情報の型。
- 戻り値
-
統計情報の入ったDictionary。
memcached に stats コマンドを送ります。
対応している統計情報は "","slabs","items" のいずれかです。
【例】
aHosts = Array("192.168.1.101", "192.168.1.102", "192.168.1.103")
for each sHost in aHosts
if o.tryOpen(sHost) then
set s = o.stats()
wscript.echo "Alive:" & s("pid")
else
wscript.echo "DEAD!!!"
end if
o.tryClose()
next
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
実装されていません。"memcachedCOM.Distributed"ではなく"memcachedCOM"をご利用ください。
- Object Execute(Object pCommand, String sKey="", long nExptime=0)
-
- pCommand
-
Executeのための準備が整った ADODB.Command オブジェクト。
- sKey
-
キャッシュされる ADODB.Recordset に付けるキー。
空文字列("")を指定すると pCommand を元に自動でキーを内部的に生成します。
- nExptime
-
有効期限(秒)。
- 戻り値
-
ADODB.Recordset オブジェクト。
キャッシュされた Recordset を取得します。
まだキャッシュされていない場合には pCommand を Execute してキャッシュを作成します。
【例】
set cmd = createobject("ADODB.Command")
cmd.activeConnection = "Provider=..."
cmd.commandText = "select * from ..."
set rs = o.Execute(cmd)
do until rs.EOF
'// ...
rs.moveNext
loop
【 分散オブジェクト(memcachedCOM.Distributed)の場合 】
sKeyから得られたHash値を元にコマンドを送るサーバーが決定されます。