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