一、Redis介绍
什么是redis?一个专门做数据缓存的软件,将数据在服务器的内存上进行存储,提高数据的查询的效率。与memcache不同的是,redis将数据保存在内存中的同时,会定期将数据也会写到文件中,避免服务器关机等时数据消失。电脑开机的会将数据重新新放在内存上。总结如下:
‘‘‘ 1、用途: 做缓存和做消息队列 2、本质: 将数据存放在内存中 3、特性: 可做持久化 支持存放5种数据格式,如下: ‘‘‘ {"k1":"xxxx" #字符串 "k2":[11,22,33] #列表 "k3":{11,22,33} #集合 "k4":{"k1":"v1","k2":"v2"} #哈希散列表 "k5":{("egon",1),("alex",2)} #有序集合 }
二、redis-py连接池
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
1、方式一
利用redis中的ConnectionPool创建连接池,然后各视图中使用此连接池,实例如下:
#pool.py文件 import redis POOL = redis.ConnectionPool(host=‘47.93.4.198‘,port=6379) #views.py文件 from django.shortcuts import render import redis from pool import POOL def index(request): conn = redis.Redis(connection_pool=POOL) .... def home(request): conn = redis.Redis(connection_pool=POOL) ....
2、方式二
利用django-redis组件实现连接池,安装django-redis组件方式为:pip3 install django-redis ,使用实例如下:
配置文件:
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://47.93.4.198:6379", #服务器ip "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "", #有密码就设置 } } }
使用实例:
import django_redis conn = django_redis.get_redis_connection()