Redis 簡介
NoSQL(not only sql):非關系型數據庫
支持 key-value, list, set, zset, hash 等數據結構的存儲;支持主從數據備份,集群;支持發布,訂閱,通知,key 過期等特性
Redis 的所有操作都是原子性的
應用場景:
- 緩存:內存數據庫
- 可以在某些特定應用場景下替代關系數據庫,比如社交類的應用
- 在一些大型系統中,實現一些特定功能,比如 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
