Redis 簡單使用 and 連接池(python)


Redis 簡介

NoSQL(not only sql):非關系型數據庫

支持 key-value,  list,  set,  zset,  hash 等數據結構的存儲;支持主從數據備份,集群;支持發布,訂閱,通知,key 過期等特性

Redis 的所有操作都是原子性的

應用場景:

  1. 緩存:內存數據庫
  2. 可以在某些特定應用場景下替代關系數據庫,比如社交類的應用
  3. 在一些大型系統中,實現一些特定功能,比如 session 共享,購物車等

redis 官網:https://redis.io/

redis 中文官網:http://redis.cn/

 

redis 連接池

redis.py 使用 ConnectionPool 來管理對一個 redis server 的連接,避免每次建立、釋放連接的開銷。默認,每個 Redis 實例都會維護一個自己的連接池。可以直接建立一個連接池,然后作為參數Redis,這樣就可以實現多個Redis實例共享一個連接池。

# coding: utf-8
import redis as redis_db
from conf.setting import REDIS_HOST, REDIS_PORT, PASSWORD, DB, KEY


class RedisPool(object):
    __Pool = None

    # def __init__(self):
    def __init__(self):
        self.session = self.get_conn()

    @staticmethod
    def get_conn():
        if not RedisPool.__Pool:
            RedisPool.__Pool = redis_db.ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, password=PASSWORD, db=DB)
        #
        session = redis_db.StrictRedis(connection_pool=RedisPool.__Pool)
        return session

    def add_one(self, value):
        ret = self.session.lpush(KEY, value)
        return ret

    def take_one(self):
        vlaue = self.session.rpop(KEY)
        return vlaue


redis_pool = RedisPool()

 

參考鏈接:https://www.cnblogs.com/xiaoming279/p/6293583.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM