from .conf import host, port, pool_nameimport redis
redis_pool = redis.connectionpool(host=host, port=port, max_connections=20)
class redisoperator(object):
"""redis 操作類"""
def __init__(self):
"""初始化 redis 連線"""
# self._conn = redis.po(host, port)
self._conn = redis.redis(connection_pool=redis_pool)
def gets(self, total=1):
"""從池中返回給定數量的**(取出但不刪除),當 total > pool.size
時,將返回 pool.size 個**。
:param total: 返回的數量
:return: proxies, size=total
"""tmp = self._conn.srandmember(pool_name, total)
return [s.decode('utf-8') for s in tmp]
def puts(self, proxies):
"""將一定量的**壓入 pool 中
:param proxies:
:return:
"""self._conn.sadd(pool_name, *proxies)
def pop(self):
"""彈出乙個**(取出並刪除)
:return: proxy
"""# if self.size == 0:
# raise poolemptyerror
return self._conn.spop(pool_name).decode('utf-8')
@property
def size(self):
"""返回 pool 的 size
:return: pool.size
"""return self._conn.scard(pool_name)
def _flush(self):
"""清空 redis 中的全部內容
:return: none
"""self._conn.flushall()
資料庫連線池 Redis連線池
基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...
redis連線池操作
類描述 redis 工具 功能名 pojo author zxf date 2014年11月25日 public final class redisutil int maxactivity integer.valueof bundle.getstring redis.pool.maxactive i...
Redis 連線池Lettuce Jedis 比較
lettuce 和 jedis 的定位都是redis的client,所以他們當然可以直接連線redis server。jedis在實現上是直接連線的redis server,如果在多執行緒環境下是非執行緒安全的,這個時候只有使用連線池,為每個jedis例項增加物理連線 lettuce的連線是基於ne...