下面是一个Java示例,说明如何在Redis和Redisson中使用直读缓存。
如果请求的条目在缓存中不存在,则它将由MapLoader对象加载:
MapLoader<String, String> mapLoader = new MapLoader<String, String>()
{
@Override
public Iterable loadAllKeys()
{
List list = new ArrayList();
Statement statement = conn.createStatement();
try {
ResultSet result = statement.executeQuery( “SELECT id FROM student” );
while ( result.next() )
{
list.add( result.getString( 1 ) );
}
} finally {
statement.close();
}
return(list);
}
@Override
public String load( String key )
{
PreparedStatement preparedStatement = conn.prepareStatement( “SELECT name FROM student where id = ?” );
try {
preparedStatement.setString( 1, key );
ResultSet result = preparedStatement.executeQuery();
if ( result.next() )
{
return(result.getString( 1 ) );
}
return(null);
} finally {
preparedStatement.close();
}
}
}
配置使用案例:
MapOptions<K, V> options = MapOptions.< K, V > defaults()
.load