redis連線池的標準用法

2022-03-01 12:42:41 字數 1228 閱讀 4306

from .conf import host, port, pool_name

import 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...