2011年2月28日月曜日

groovyとJRedisでDBのkeyの数を取得する

groovyとJRedisでDBのkeyの数を取得するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
println "number of keys in DB:" + jrc.dbsize()

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

2011年2月27日日曜日

gmongoでデータベースを列挙する

gmongoでデータベースを列挙するには、以下のコードを実行します。

@Grab(group='com.gmongo', module='gmongo', version='0.7')
import com.mongodb.*
import com.gmongo.*

mongo = new GMongo("192.168.1.25", 27017)
// データベースを列挙する
for(dbname in mongo.mongo.getDatabaseNames()){
println dbname
}

動作環境
Groovy 1.7.8, JDK6 Update24, gmongo 0.7

関連情報
gmongoのウェブサイト
https://github.com/poiati/gmongo
groovyとMongoDBのまとめ

groovyとApache Derbyで現在のトランザクション分離レベルを取得する

groovyとApache Derbyで現在のトランザクション分離レベルを取得するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// 現在のトランザクション分離レベルを取得する
query = """
select current isolation as curis
from sysibm.sysdummy1
"""
sql.eachRow(query){
println("${it.curis}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月26日土曜日

groovyとJRedisで指定したkeyの値をデクリメントする

groovyとJRedisで指定したkeyの値をデクリメントするには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.set("key1", "20")
jrc.decr("key1")
println "value:" + DefaultCodec.toStr(jrc.get("key1"))
jrc.decrby("key1",10)
println "value:" + DefaultCodec.toStr(jrc.get("key1"))

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

groovyとmemcached-java-clientで接続プールの各種設定を行う

groovyとmemcached-java-clientで接続プールの各種設定を行うには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
// 初期接続数
siop.setInitConn(10)
// 最小接続数
siop.setMinConn(10)
// 最大接続数
siop.setMaxConn(100)
// スレッドのbusyタイムアウト
siop.setMaxBusyTime(10*1000)
// ソケット読み取りタイムアウト
siop.setSocketTO(7*1000)
// ソケット接続タイムアウト
siop.setSocketConnectTO(5*1000)
// スレッドの最大アイドルタイム
siop.setMaxIdle(15 * 60 * 1000)
// プール・メインテナンス・スレッドのスリープ時間
siop.setMaintSleep(5 * 60 * 1000)
// フェイル・オーバー有効
siop.setFailover(true)

siop.initialize()
mcc = new MemCachedClient()

// key-valueを設定
mcc.set("key1", "value1")
println mcc.get("key1")


※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月25日金曜日

groovyとApache Derbyで現在のスキーマを取得する

groovyとApache Derbyで現在のスキーマを取得するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// 現在のスキーマを取得する
query = """
select current schema as curschema
from sysibm.sysdummy1
"""
sql.eachRow(query){
println("${it.curschema}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月24日木曜日

groovyとmemcached-java-clientでatomicな更新を行う

groovyとmemcached-java-clientでatomicな更新を行うには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// key-valueを設定
mcc.set("key1", "value1")

// getsで値を取得
mi = mcc.gets("key1")
println "cas unique value:" + mi?.getCasUnique()
println "value:" + mi?.getValue()
// 更新される
if( mcc.cas("key1", "value1b", mi?.getCasUnique()) ){
println "key1 is updated successfully."
}
// cas unique valueが変わったので更新されない
if( mcc.cas("key1", "value1c", mi?.getCasUnique()) ){
println "key1 is updated successfully."
}

println mcc.get("key1")


※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月23日水曜日

groovyとApache Derbyでシーケンスを一覧表示する

groovyとApache Derbyでシーケンスを一覧表示するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// シーケンスを一覧表示する
viewName = "VIEW_EMPLOYEE"
query = """
select sequencename, currentvalue
from sys.syssequences
"""
sql.eachRow(query){
println("${it.sequencename}:${it.currentvalue}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月22日火曜日

groovyとmemcached-java-clientでvalueの前後に文字列を追加する

groovyとmemcached-java-clientでvalueの前後に文字列を追加するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// key-valueを設定
mcc.set("key1", "value1")
println mcc.get("key1")

// 値の前に追加
mcc.prepend("key1", "_prepend_")
println mcc.get("key1")

// 値の後に追加
mcc.append("key1", "_append_")
println mcc.get("key1")

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月21日月曜日

groovyとJRedisで指定したkeyの値をインクリメントする

groovyとJRedisで指定したkeyの値をインクリメントするには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.set("key1", "1")
jrc.incr("key1")
println "value:" + DefaultCodec.toStr(jrc.get("key1"))
jrc.incrby("key1",10)
println "value:" + DefaultCodec.toStr(jrc.get("key1"))

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

groovyとApache Derbyでビュー定義を取得する

groovyとApache Derbyでビュー定義を取得するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// ビュー定義を取得する
viewName = "VIEW_EMPLOYEE"
query = """
select viewdefinition
from sys.systables tab
join sys.sysviews vw
on (tab.tableid = vw.tableid)
where tabletype = 'V'
and tablename = ${viewName}
"""
sql.eachRow(query){
println("${it.viewdefinition}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月20日日曜日

groovyとmemcached-java-clientでキャッシュをダンプする

groovyとmemcached-java-clientでキャッシュをダンプするには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

slabs = [] as Set
servers = mcc.statsSlabs()
servers.each { server, stats ->
// slab番号を取得
stats.each { key, value ->
if( key.indexOf(':') != -1 ){
slabs.add(Integer.parseInt(
key.substring(0, key.indexOf(':'))
))
}
}
}
for( slab in slabs ){
// キャッシュダンプ
cdr = mcc.statsCacheDump(slab, 10000/*= limit */)
cdr.each { server, caches ->
println "server : ${server}"
caches.each { key, value ->
println "$key : $value"
}
}
}

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月19日土曜日

groovyとApache Derbyでビューのみを列挙する

groovyとApache Derbyでビューのみを列挙するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// ビューのみを列挙する
query = """
select tablename from sys.systables
where tabletype = 'V'
"""
sql.eachRow(query){
println("${it.tablename}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月18日金曜日

groovyとmemcached-java-clientでSlab統計を取得する

groovyとmemcached-java-clientでSlab統計を取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// Slab統計を取得
servers = mcc.statsSlabs()
servers.each { server, stats ->
println "server : ${server}"
stats.each { key, value ->
println "$key : $value"
}
}


統計の項目は以下を参照
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月17日木曜日

groovyとApache Derbyでシノニムのみを列挙する

groovyとApache Derbyでシノニムのみを列挙するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// シノニムのみを列挙する
query = """
select tablename from sys.systables
where tabletype = 'A'
"""
sql.eachRow(query){
println("${it.tablename}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月16日水曜日

groovyとJRedisでkeyをリネームする

groovyとJRedisでkeyをリネームするには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
jrc.set("key1", "value1")
jrc.rename("key1", "renamed_key1")
println "old:" + jrc.get("key1")
println "new:" + DefaultCodec.toStr(jrc.get("renamed_key1"))

※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

groovyとmemcached-java-clientでアイテム統計を取得する

groovyとmemcached-java-clientでアイテム統計を取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// アイテム統計を取得
servers = mcc.statsItems()
servers.each { server, stats ->
println "server : ${server}"
stats.each { key, value ->
println "$key : $value"
}
}


統計の項目は以下を参照
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月15日火曜日

groovyとApache Derbyでユーザテーブルのみを列挙する

groovyとApache Derbyでユーザテーブルのみを列挙するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// ユーザーテーブルのみを列挙する
query = """
select tablename from sys.systables
where tabletype = 'T'
"""
sql.eachRow(query){
println("${it.tablename}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月14日月曜日

groovyとmemcached-java-clientでサーバの統計を取得する

groovyとmemcached-java-clientでサーバの統計を取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// 統計を取得
servers = mcc.stats()
servers.each { server, stats ->
println "server : ${server}"
stats.each { key, value ->
println "$key : $value"
}
}


統計の項目は以下を参照
http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月13日日曜日

groovyとApache Derbyでスキーマを列挙する

groovyとApache Derbyでスキーマを列挙するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// スキーマを列挙する
query = """
select schemaname from sys.sysschemas
"""
sql.eachRow(query){
println("${it.schemaname}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月12日土曜日

groovyとmemcached-java-clientでサーバのキャッシュをクリアする

groovyとmemcached-java-clientでサーバのキャッシュをクリアするには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

mcc.set("key1", "value1")
mcc.set("key2", "value2")

// サーバーのキャッシュをクリア
mcc.flushAll()

// クリアされているのでnullが返る
println mcc.get("key1")
println mcc.get("key2")

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月11日金曜日

groovyとJRedisでkeyが存在するか確認する

groovyとJRedisでkeyが存在するか確認するには、以下のコードを実行します。

import org.jredis.ri.alphazero.*
import org.jredis.ri.alphazero.support.*

jrc = new JRedisClient("192.168.1.25", 6379)
if( jrc.exists("key1") ){
println DefaultCodec.toStr(jrc.get("key1"))
} else {
println("key1 does not exist. put a new key.")
jrc.set("key1", "value1")
}


※jredis-core-all-a.0-SNAPSHOT-jar-with-dependencies.jarを
$GROOVY_HOME/libにコピーしておく。

動作環境
groovy 1.7.6, JDK6 Update23, JRedis2.0.0

groovyとApache Derbyでテーブルのカラムを列挙する

groovyとApache Derbyでテーブルのカラムを列挙するには、以下のコードを実行します。

import groovy.sql.Sql
import java.sql.*

sql = Sql.newInstance(
"jdbc:derby:test1db",
"org.apache.derby.jdbc.EmbeddedDriver")

// カラムを列挙する
table = "EMPLOYEE"
query = """
select
col.columnname,
col.columndatatype
from
sys.systables tab
join sys.syscolumns col
on (tab.tableid = col.referenceid)
where
tab.tablename = ${table}
order by
col.columnnumber
"""
sql.eachRow(query){
println("${it.columnname}:${it.columndatatype}")
}

// シャットダウン
try
{
Sql.newInstance(
"jdbc:derby:;shutdown=true",
"org.apache.derby.jdbc.EmbeddedDriver")
}
catch(SQLException sqlex)
{
if( sqlex.getSQLState().equals("XJ015") ){
println("shutdown normally.")
}
}


動作環境
groovy 1.7.6, JDK6 Update23, Apache Derby 10.7.1.1

2011年2月10日木曜日

groovyとmemcached-java-clientで複数のkey-valueを一度に取得する

groovyとmemcached-java-clientで複数のkey-valueを一度に取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

mcc.set("key1", "value1")
mcc.set("key2", "value2")

// 複数のkey-valueを取得
kvs = mcc.getMulti(["key1", "key2"] as String[])
kvs.each { key, value ->
println "$key -> $value"
}

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月9日水曜日

groovyとmemcached-java-clientで複数の値を一度に取得する

groovyとmemcached-java-clientで複数の値を一度に取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

mcc.set("key1", "value1")
mcc.set("key2", "value2")

// 複数の値を配列で取得
values = mcc.getMultiArray(["key1", "key2"] as String[])
for(value in values){
println value
}

※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

2011年2月8日火曜日

groovyとSpiderDBでテーブルのカラムがNULL値可かどうかを取得する

groovyとSpiderDBでテーブルのカラムがNULL値可かどうかを取得するには、以下のコードを実行します。

import groovy.sql.Sql
import com.avdheshyadav.spiderdb.*

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/liferay",
"postgres",
"postgres",
"org.postgresql.Driver")

dbc = new DBCrawler(sql.getConnection(), ConfigEnum.MAXIMUM)
db = dbc.getDatabase()
tab = "test1"
// テーブルのカラムがNullableかを表示
for( schema in db.getSchemaSet().getSchemas() ){
println "-----------------"
println "schema:${schema}"
for(table in schema.getTableSet().getTables()){
if( table.getTableName() == tab ){
println "table:${table.tableName}"
for(column in table.getColumnSet().getColumns()){
println "name:${column.getColumnName()}"
// カラムがNullableを取得
println "null?:${column.isNullable()}"
}
}
}
}


※以下のjarをGROOVY_HOME/libにコピーしておく
commons-lang-2.5.jar
spiderdb-1.7.jar

動作環境
JDK6 Update22, groovy 1.7.5, SpiderDB 1.7

関連情報
SpiderDBのプロジェクトページ
http://code.google.com/p/spiderdb/

2011年2月7日月曜日

groovyとmemcached-java-clientでaddOrIncrを使用してインクリメントする

groovyとmemcached-java-clientでaddOrIncrを使用してインクリメントするには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// カウンターがなければ、カウンターの作成。
// カウンターがあれば、インクリメント。
mcc.addOrIncr("counter2",1)

// カウンター値を取得
println mcc.getCounter("counter2")


※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ