对于redis连接我的处理有两个方案:
- 每次请求创建一个新的连接(设置redis timeout)
- redis单例作用于每次请求,共用一个连接池
个人觉得第二种可以减少对象创建,销毁的开销,减少redis连接数,但是对于高并发情况下是否不尽人意,或者说对于redis在设置了连接超市的情况下,使用redis单例是否有意义?
对于redis连接我的处理有两个方案:
个人觉得第二种可以减少对象创建,销毁的开销,减少redis连接数,但是对于高并发情况下是否不尽人意,或者说对于redis在设置了连接超市的情况下,使用redis单例是否有意义?
|
1
求指导 :-D
|
|
ipconfigerJul 27, 2015
2
有现成的连接池不用!
|
|
3
我现在的处理如下:
class RedisSinglePool(object): """redis单例""" def __init__(self, db=0): self.db = db if not hasattr(RedisSinglePool, 'pool'): RedisSinglePool.createPool(self.db) self._connection = redis.Redis(connection_pool=RedisSinglePool.pool) @staticmethod def createPool(db): # 创建连接池 RedisSinglePool.pool = redis.ConnectionPool( host=settings.redis_svr_addr, port=settings.redis_svr_addr_port, db=db, password=settings.redis_svr_pass) def getR(self): return self._connection 维护一个连接池。 |
|
vincenttoneJul 27, 2015
4
要看扩展是不是有连接池
|
|
aiskJul 27, 2015
5
没明白你的代码要干嘛,直接全局创建 redis 实例然后 import 不就好了?
|
|
lakechan96Jul 27, 2015
6
见过一个项目的redis把最大连接数设置到了100万个,也许是下下策,慎用
|