Redis与CAS结合,探索简单便捷架构(rediscas)

近年来,Redis和CAS(乐观锁技术)的结合技术的出现让分布式单体设计变得越来越流行,它有效地提高了开发效率,降低了企业的技术维护和架构成本。

很多企业都将Redis和CAS结合起来构建了一种可信的分布式单体应用框架,以减少重新部署成本和开发周期,使更多人能够及时享受到分布式应用的优势。

首先要解决的是一致性问题,如何发现并以一致的顺序处理并发请求。这就是Redis(REmote DIctionary Server)能为我们贡献的,它可以提供一致性、可靠性、高可用性和可伸缩性等可靠性服务,从而保证多个分布式结点同时获得授权数据。

再次,要解决的是并发控制问题,如何保证一旦发出的请求,一次只有一个人可以成功处理,未被成功处理的多余请求可以尽快得到反馈,从而节省了浪费的请求时间-这就是CAS(check-and-set)技术非常擅长的地方。它是以乐观的态度去处理并发,在多个分布式节点上实施抢劫,以确保一旦发起的请求,最终只有一台服务器上的操作成功,其余的都返回失败的结果,从而使每个系统间保持了一致性。

有了这两个技术,就可以搭建出一种简单便捷的架构。首先,将数据导入Redis,让它的一致性服务负责分布式节点的授权;再次,利用CAS技术将数据保护安全,防止被意外修改。其次,结合定时任务机制和Redis,可以实现定时实时写入Redis,从而实现一致性属性和可靠性写入,使Redis系统处于最新数据状态。

“`java

//Redis初始化

Jedis jedis = new Jedis(“localhost”);

//执行CAS同步

String script= “if redis.call(‘get’, KEYS[1]) == ARGV[1] then return redis.call(‘set’,KEYS[1],ARGV[2]) else return 0 end”;

Object result = jedis.eval(script, Collections.singletonList(“foo”),

Collections.singletonList(“bar1″,”bar2”));

if (“OK”.equals(result)) {

System.out.println(“set foo success”);

}


从上面可以看出,Redis和CAS的结合使得简单便捷架构的搭建变得简单容易,有效地提升了后台服务的性能,改善了资源利用率,降低了技术保护和架构成本。

数据运维技术 » Redis与CAS结合,探索简单便捷架构(rediscas)