● 简单介绍Hibernate的缓存?
hibernate一级缓存又称为“Session缓存”。
Session缓存内置不能卸载,Session的缓存是事务范围的缓存,即Session对象的生命周期通常对应一个数据库事务或者一个应用事务。
hibernate二级缓存又称为“SessionFactory缓存”。
由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能存在并发问题,因此需要采用适当的并发访问策略,该策略为被缓存数据提供了事务隔离级别。
第二级缓存是可选的,是一个可配置的插件,默认SessionFactory不会启用这个插件,需要手动开启。
Hibernate提供org.hibernate.cache.CacheProvider接口,它充当缓存插件与Hibernate之间的适配器。
什么数据需要存放在第二级缓存中?
1) 很少被修改的数据
2) 经常被查询的数据
3) 不是很重要的数据,允许出现偶尔并发的数据,不会被并发访问的数据。
4) 常量数据。
Hibernate的二级缓存默认是不支持分布式缓存,使用memcahe,redis等中央缓存来代替二级缓存。
● WebService的使用场景?
webservice是一个SOA的架构,它不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间交互。
(1) 异构系统的整合。
(2) 不同客户端的整合。
● 如何操作Linux?
使用xshell来连接服务器,使用xftp来实习文件上传下载。连接和上传、下载必须依赖于服务器的ssh、sftp服务。
● 如何选择适当的数据数引擎?
在开发中,我们经常使用的存储引擎MyISAM/innodb/memory。
MyISAM存储引擎:没有事务要求,同时是以查询和添加为主,我们考虑MyISAM 存储引擎,比如bbs中的发帖表,回复表。
Innodb存储引擎:对事务要求高,保存的数据都是重要数据,我们建议使用innodb,比如订单表,账号表。
Memory存储引擎:我们数据变化频繁,不需要入库,同时有频繁的查询和修改,我们考虑使用memory,速度极快。
● MyISAM与Innodb有什么区别?、
(1) 事务安全MyISAM不支持事务,而Innodb支持。
(2) 查询和添加速度MyISAM更快。
(3) 支持全文检索。MyISAM支持,Innodb不支持。
(4) MyISAM只支持表锁,而Innodb还支持行锁(事务)。
(5) MyISAM不支持外键,而Innodb支持。