Java最新使用Redis和Java进行数据库缓存 - DZone数据库(2),springboot面试问题

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

下面是一个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()

.loader( mapLoader );

RMap<K, V> map = redisson.getMap( “test”, options );

/* or */

RMapCache<K, V> map = redisson.getMapCache( “test”, options );

/* or with boost up to 45x times */

RLocalCachedMap<K, V> map = redisson.getLocalCachedMap( “test”, options );

/* or with boost up to 45x times */

RLocalCachedMapCache<K, V> map = redisson.getLocalCachedMapCache( “test”, options );

Redis中的直写缓存


下面是一个Java示例,说明如何在Redis中使用Redis中的Redis使用直写缓存。

在MapWriter对象更新缓存和数据库之前,缓存更新方法不会返回:

MapWriter<String, String> mapWriter = new MapWriter<String, String>()

{

@Override

public void writeAll( Map<String, String> map )

{

PreparedStatement preparedStatement = conn.prepareStatement( “INSERT INTO student (id, name) values (?, ?)” );

try {

for ( Entry<String, String> entry : map.entrySet() )

{

preparedStatement.setString( 1, entry.getKey() );

preparedStatement.setString( 2, entry.getValue() );

preparedStatement.addBatch();

}

preparedStatement.executeBatch();

} finally {

preparedStatement.close();

}

}

@Override

public void write( String key, String value )

{

PreparedStatement preparedStatement = conn.prepareStatement( “INSERT INTO student (id, name) values (?, ?)” );

try {

preparedStatement.setString( 1, key );

preparedStatement.setString( 2, value );

preparedStatement.executeUpdate();

} finally {

preparedStatement.close();

}

}

@Override

public void deleteAll( Collection keys )

{

PreparedStatement preparedStatement = conn.prepareStatement( “DELETE FROM student where id = ?” );

try {

for ( String key : keys )

{

preparedStatement.setString( 1, key );

preparedStatement.addBatch();

}

preparedStatement.executeBatch();

} finally {

preparedStatement.close();

}

}

@Override

public void delete( String key )

{

PreparedStatement preparedStatement = conn.prepareStatement( “DELETE FROM student where id = ?” );

try {

preparedStatement.setString( 1, key );

preparedStatement.executeUpdate();

写在最后

为了这次面试,也收集了很多的面试题!

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

是部分面试题截图

[外链图片转存中…(img-vyNe0Oul-1715424571025)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值