基于memcached client for java的cache封装
?
//把数据放入缓存,如果与key对应的缓存值已存在,则替换public boolean set(String key, T value) {if (key == null) {return false;}key = base + key;//这里对key值做了一个简单的处理,请忽略之...boolean result = false;if (pool.getServers().length < 2) {//如果只设置了一个服务器,则直接存入result = memCachedClient.set(key, value);} else {int hashCode = HashCodeUtil.getHash(key);//一次hash算法result = memCachedClient.set(key, value, hashCode);//存入主服务器hashCode = getRehashCode(key, hashCode);//二次hash算法memCachedClient.set(key, value, hashCode);//存入从服务器}return result;}//rehash方法private int getRehashCode(String key, int oldHashcode) {String host = pool.getHost(key, oldHashcode);//获取主服务int rehashTries = 0;int hashCode = HashCodeUtil.getHash(rehashTries + key);while (host.equals(pool.getHost(key, hashCode))) {//查找从服务器,直到查找到不同的一台服务器为止rehashTries++;hashCode = HashCodeUtil.getHash(rehashTries + key);}return hashCode;}?
?
具体的实现代码在附件中。
1 楼 guazi 2011-06-08 怎么没人来说两句,踩顶都没关系,发个意见 2 楼 andylo25 2011-06-08 总体来说,封装得不错,但是文章介绍短了点,不够清晰,看起来比较吃力. 3 楼 guazi 2011-06-08 andylo25 写道总体来说,封装得不错,但是文章介绍短了点,不够清晰,看起来比较吃力.