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