2013年5月2日
摘要: http://www.blogjava.net/caojianhua/archive/2013/01/28/394847.htmlRedis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成。对此有2种解决方法:1.客户端角度,为保证每个客户端间正常有序与Redis进行通信,对连接进行池化,同时对客户端读写Redis操作采用内部锁synchronized。2.服务器角度,利用set 阅读全文
posted @ 2013-05-02 17:14 kkmm 阅读(723) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/redcreen/archive/2011/02/15/1955248.html使用memcache缓存数据,减少对数据库的直接访问,提高网站性能已经成了各大网站最基本的技术.如何更好的提高memcache缓存的利用率及命中次数会在后面的blog中单独介绍,本文主要探讨为何及如何使用本地缓存(java localcache)提高网站性能.localcache与memcache性能比较先来个本地缓存与memcache缓存的性能比较,有个直观上的概念Cache请求方式次数时间平均Localcachehashmap中get请求1亿1344ms0.0000 阅读全文
posted @ 2013-05-02 16:52 kkmm 阅读(358) 评论(0) 推荐(0) 编辑
摘要: Jedis使用总结前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容:【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的说明是:starts a pipeline,which is a very efficient way to send lots of command and read all the responses when you finish sending them。简单点说pipeline适用于批处理。当有大量的操 阅读全文
posted @ 2013-05-02 13:03 kkmm 阅读(770) 评论(0) 推荐(0) 编辑
摘要: 活锁活锁(英文 livelock),指事物1可以使用资源,但它让其他事物先使用资源;事物2可以使用资源,但它也让其他事物先使用资源,于是两者一直谦让,都无法使用资源。所谓饥饿,是指如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁后,系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后,系统又批准了T4的请求......T2可能永远等待,这就是饥饿。活锁有一定几率解开。而死锁(deadlock)是无法解开的。避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先 阅读全文
posted @ 2013-05-02 09:21 kkmm 阅读(367) 评论(0) 推荐(0) 编辑