示例如下代码分别对应读和写:
v = cache.get(k)
if(v == null) {
v = sor.get(k)
cache.put(k, v)
}
v = newV
sor.put(k, v)
cache.put(k, v)
这种方式是将与缓存通过客户端应用程序主动管理来进行同步,这不是很好的使用方式。
2、Read-Through模式
相比上面的由客户端应用程序来管理和缓存同步的方式,这种模式缓存会配有一个缓存中间件,该中间件来负责数据和缓存之间的同步问题。当我们应用要获取缓存数据时,这个缓存中间件要确认缓存中是否有该数据,如果没有,从加载,然后放入缓存,下次以后再访问就可以直接从缓存中获得。
3、Write-Through模式
这种模式就是缓存能够感知数据的变化。
也就是说在更新的同时也要更新缓存,该模式其实也是弱一致性,当更新数据失败的时候,缓存不能继续更新数据,要保持和缓存的最终一致性。
4、Write-behind模式
该模式是以缓存为优先,将缓存更新的数据存放队列中,然后定时批量从队列中取出数据更新。
九、Spring3.2+Ehcache2.10.2的使用
为了使例子更加简单易懂,我没有直接去连接而模拟了一些操作目的主要是演示Spring结合Ehcache的使用。
JavaBean代码如下:
public class User {
public Integer id;
public String name;
public String password;
// 这个需要,不然在实体绑定的时候出错
public User(){}
public User(Integer id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ "]";
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25691-4.html