本文實例講述了Python使用redis pool的一種單例實現方式。分享給大家供大家參考,具體如下:
為適應多個redis實例共享同一個連接池的場景,可以類似于以下單例方式實現:
import redisclass RedisDBConfig: HOST = '127.0.0.1' PORT = 6379 DBID = 0def operator_status(func): '''''get operatoration status ''' def gen_status(*args, **kwargs): error, result = None, None try: result = func(*args, **kwargs) except Exception as e: error = str(e) return {'result': result, 'error': error} return gen_statusclass RedisCache(object): def __init__(self): if not hasattr(RedisCache, 'pool'): RedisCache.create_pool() self._connection = redis.Redis(connection_pool = RedisCache.pool) @staticmethod def create_pool(): RedisCache.pool = redis.ConnectionPool( host = RedisDBConfig.HOST, port = RedisDBConfig.PORT, db = RedisDBConfig.DBID) @operator_status def set_data(self, key, value): '''''set data with (key, value) ''' return self._connection.set(key, value) @operator_status def get_data(self, key): '''''get data by key ''' return self._connection.get(key) @operator_status def del_data(self, key): '''''delete cache by key ''' return self._connection.delete(key)if __name__ == '__main__': print RedisCache().set_data('Testkey', "Simple Test") print RedisCache().get_data('Testkey') print RedisCache().del_data('Testkey') print RedisCache().get_data('Testkey')更多關于Python相關內容感興趣的讀者可查看本站專題:《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答
圖片精選