redis是什么?
redis是用于操作内存的一个软件。

1 1、可以做持久化,且有两种模式:AOF和RDB
2 2、相当于一个大字典,存储的是key/value
3 3、单进程单线程,请求多则排队,一个个处理
4 4、支持5大数据类型
5     a.字符串
6     b.列表
7     c.集合
8     d.字典
9     e.有序集合
特点


1.服务器上安装redis

pass


2.python安装redis模块

pip3 install redis

 

3.redis的基本连接和增查

import redis

# redis的基础操作
conn = redis.Redis(host='182.254.210.59',port=6379,password='123123') # 创建连接redis

conn.set('k1','v1') # 往redis中插入一条数据
val = conn.get('k1')	# 查询插入的数据
print(val)	# 打印值

 

4.redis的连接池创建及使用

pool = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123')    # 创建一个连接池
conn = redis.Redis(connection_pool=pool,max_connections=1000)   	# 调用连接池,并指定最多连接数
conn.set('k2','v2')	# 设置值
print(conn.get('k2'))	# 取值

如果想更方便的使用,则创建一个redis_pool的连接池,将pool = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123',max_connections=1000)放到这个文件中,具体方法
在redis_pool文件中
import redis
POOL = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123',max_connections=1000)

在redis操作文件中
from redis_oper.redis_pool import POOL
conn = redis.Redis(connection_pool=POOL) 
conn.set('k2','v2')
print(conn.get('k2'))

 

5.Django中操作redis
安装django-redis模块

pip3 install django-redis

在setting配置:

# reids_configure
CACHES = {
    "default":{
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://182.254.210.59:6379", # 连接地址
        "OPTIONS": {
            "CLIENT_CALSS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 1000},
            "PASSWORD":"123123", # 连接密码
        }
    }
}

在views中调用

def index(request):
    conn = get_redis_connection('default')
    conn.hset('dic','age',22)
    return HttpResponse('设置成功')


def order(request):
    conn = get_redis_connection('default')
    val = conn.hget('dic','age')
    val = val.decode('utf-8')
    return HttpResponse('取值成功 '+val)

 

6.全站缓存
全站缓存要用到中间件了,在settings中间件配置的 MIDDLEWARE 模块中,加两条配置

'django.middleware.cache.UpdateCacheMiddleware', # 加到中间件的最上面
'django.middleware.cache.FetchFromCacheMiddleware', # 加到中间件的最下面
附加:
CACHE_MIDDLEWARE_ALIAS = "" # 设置缓存的别名
CACHE_MIDDLEWARE_SECONDS = "" # 设置缓存的超时时间
CACHE_MIDDLEWARE_KEY_PREFIX = "" 

全站缓存指的是每次在请求过来的时候先经过中间件,然后到缓存,如果缓存中没有的话去就去数据库中找,在返回数据的时候顺便放到缓存中一份

7.单个视图缓存
方式一: 给想要被缓存的单个视图加装饰器

from django.views.decorators.cache import cache_page # 在views中调用

@cache_page(60 * 15) 
def index(request):
    ...

方式二:在配置url的同时直接指定缓存

from django.views.decorators.cache import cache_page

urlpatterns = [
    url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
]

 

 

8.局部视图缓存
8.1 引入TemplateTag

{% load cache %}

8.2 使用缓存

{% cache 5000 缓存key %} # 指5000秒 缓存key 指缓存存放的地方

    <div></div> # 要被缓存的单独一块内容

{% endcache %}	
posted on 2019-03-08 10:51  花豆豆  阅读(828)  评论(0编辑  收藏  举报