亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python redis 多進程使用

瀏覽:114日期:2022-06-25 16:58:48

問題描述

class RedisClient(object): def __init__(self):pool = redis.ConnectionPool(host=’127.0.0.1’, port=6379)self.client = redis.StrictRedis(connection_pool=pool)

根據文檔寫了一個帶連接池的redis client,然后生成一個實例全局使用。將一個實例,在多線程中共用測試過正常。但是多進程情況,測試失敗

class ProcessRdeisTest(Process): def __init__(self,client):self._client = client

這樣寫,在執行start時,會報錯,無法序列化之類。改為:

class ProcessRdeisTest(Process): def __init__(self):pass def run(self):self._client = RedisClient()while Ture: dosomething()

這樣倒是能運行起來,不過這種連接方式正確嗎?是否有更好的辦法實現?

在主線程中 直接process1 = ProcessRdeisTest(’p1’) process1.start() 這種方式調用

問題解答

回答1:

樓主,python redis有自己的連接池:

import redisimport threadingclass RedisPool(object): __mutex = threading.Lock() __remote = {} def __new__(cls, host, passwd, port, db):with RedisPool.__mutex: redis_key = '%s:%s:%s' % (host, port, db) redis_obj = RedisPool.__remote.get(redis_key) if redis_obj is None:redis_obj = RedisPool.__remote[redis_key] = RedisPool.new_redis_pool(host, passwd, port, db)return redis.Redis(connection_pool=redis_obj) def __init__(self, host, passwd, port, db):pass @staticmethod def new_redis_pool(host, passwd, port, db):redis_obj = redis.ConnectionPool(host=host, password=passwd, port=port, db=db, socket_timeout=3, max_connections=10) # max_connection default 2**31return redis_obj

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩免费高清视频 | 欧美性色黄大片a级毛片视频 | 亚洲日本高清影院毛片 | 国产三级在线免费 | 日本三级带日本三级带黄国产 | 免费看国产精品麻豆 | 好吊妞gao988在线播放 | 免费黄色网页 | 亚洲国产精品不卡毛片a在线 | 亚洲欧美精品中字久久99 | 中文字幕播放 | 美国特黄特色的免费大片 | 中文字幕无线码中文字幕网站 | 久久是免费只精品热在线 | 日本不卡中文字幕 | 色视频网站人成免费 | 亚洲天天网综合自拍图片专区 | 亚洲欧美激情综合首页 | 国产视频自拍偷拍 | 国产成人精品cao在线 | 成人一区二区丝袜美腿 | 久久精品成人 | 精品精品久久宅男的天堂 | 看片在线观看免费 | 香蕉国产人午夜视频在线 | 欧美伦理一区二区三区 | 男女污污网站 | 丝袜美腿国产精品视频一区 | 香港三级理论在线影院 | 国产欧美精品亚洲桃花岛 | 三级黄色免费网站 | 一级黄色录像免费观看 | 亚洲人人爱| 欧美色片在线观看 | xxxxbbbb性猛hd高清 | 精品国产成人三级在线观看 | 风间中文字幕亚洲一区中文馆 | 最新黄色地址 | 青草免费免费观看视频在线 | 亚洲欧美国产精品久久久 | 性生活免费视频网站 |