Jedis 配置

 

redis 打算使用这款缓存系统

Jedis 是官方推荐的一款封装组建。

以下是遇到的几个问题

 

1、使用都非常简单,但是经过我封装之后,使用默认设置。从服务器端看连接数60多个,前段就已经报超时了。所以,有必要对配置文件做一番研究。

经过检查原来是写单例的时候,没给值给值,导致没一个链接就是一个新的请求。改完后,问题解决。

 但是当多线程的时候,会出现问题2的现象。

 

2、新的问题出现,经过多次刷新对缓存的调用的时候。会抛出错误。

redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: o

经谷歌查出,我对JEDIS 使用了单例,他并不是线程安全的。官方建议使用线程池来解决这个问题。

发现用了连接池以后,好像还是默认配置的8个就,线程就开始进入等待状态,不行。

经谷歌,百度翻阅问题几天,调整了线程最大值,什么的。归还线程等等,依然未果。

我试了两种方案,一种是使用线程池的,但是从服务器端窗口看到到60个线程客户端就开始拿不到可用链接,很郁闷。

另一种是单例的不使用线程池的,这种可以解决访问线程卡死的问题,响应很快,但是使用多线程并发测试的时候,JEDIS客户端不是线程安全的,会出现

线程间共享资源问题(我使用的是单例模式),于是尝试了加锁,但是这样极大的降低了响应速度,一个页面连续刷几次就会抛出 READ TIME OUT错误。

最后没办法,启用第一种,继续尝试各种方法,考虑服务端版本问题,去了官网查阅。下了一个最新的64位的版本,线程问题迎刃而解

 

 

posted on 2012-12-18 17:41  petroe  阅读(8516)  评论(4编辑  收藏  举报

导航