Django项目之Django-redis

Django项目之Django-redis

  • 配置
  • 参数解释
    • CACHES
    • BACKEND
    • LOCATION
    • TIMEOUT
    • KEY_PREFIX
    • VERSION
    • OPTIONS
      • MAX_ENTRIES
      • CULL_FREQUENCY
      • CLIENT_CLASS
      • PASSWORD
      • PARSER_CLASS
      • SERIALIZER
      • REDIS_CLIENT_CLASS
      • REDIS_CLIENT_KWARGS
      • CONNECTION_POOL_CLASS
      • CONNECTION_POOL_KWARGS
        • max_connections
        • [本期重点]decode_responses
  • 使用


(声明:本教程仅供本人学习使用,如有人使用该技术触犯法律与本人无关)
(如果有错误,还希望指出。共同进步)


【注】:django-redis 中文文档


配置

在django_settings中添加如下代码

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "TIMEOUT": 60 * 60 * 3,
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
            "PASSWORD": "********",
            "CONNECTION_POOL_KWARGS": {"decode_responses": True}
        },
    }
}

参数解释

CACHES

	声明缓存,可以设置多个声明,如default为默认

BACKEND

	声明缓存后端类型

	可被支持的有
	
	* django.core.cache.backends.db.DatabaseCache
	* django.core.cache.backends.dummy.DummyCache
	* django.core.cache.backends.filebased.FileBasedCache
	* django_redis.cache.RedisCach

【注】 以下以django-redis为例介绍


LOCATION

	默认客户端地址,可列表配置多个(主从配置)

TIMEOUT

	缓存保存时间,  秒 * 分 * 小时 或 500秒 的形式表示, 默认300秒, None表示永不过期

KEY_PREFIX

	缓存key的前缀(默认空)

VERSION

	缓存key的版本(默认1)

OPTIONS

	缓存后端配置参数

MAX_ENTRIES

	最大缓存个数(默认300)

CULL_FREQUENCY

	缓存达到最大个数之后,剔除缓存个数的比例

CLIENT_CLASS

	可扩展客户端, 可通过设置配置集群客户端

PASSWORD

	密码

PARSER_CLASS

	可扩展解析器(需要pip install hiredis)redis-py (django-redis 使用的 Redis 客户端) 支持的纯净 Python Redis 解析器可以满足大部分普通任务, 但如果你想要性能更好, 可以使用 hiredis(hiredis 是一个用 C 写的 Redis 客户端, 并且他的解析器可以用在 django-redis 中),如上配置中

SERIALIZER

	可扩展序列器

REDIS_CLIENT_CLASS

	可扩展redis客户端

REDIS_CLIENT_KWARGS

	可扩展redis客户端参数配置

CONNECTION_POOL_CLASS

	配置自己的连接池子类

CONNECTION_POOL_KWARGS

	连接池配置参数

max_connections

	最大连接池配置

[本期重点]decode_responses

	配置返回数据以utf8解码,django-redis默认使用redis-py 模块,查看redis-py的源码

Django项目之Django-redis_第1张图片

使用

#!/usr/bin/python
# -*- coding: utf8 -*-
import os

if __name__ == '__main__':
	# 在脚本中使用django框架
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "GreenBook.settings")
    import django
    django.setup()
    from django_redis import get_redis_connection
    con = get_redis_connection('default')
    print(con)
    con.set(633, 'aaa')
    con.set(10000, 'dwajdkwdwkalmdlwkamdlamdlw')
    print(con.get(633))


# Redis>>
# aaa
# 如果不配置decode_responses参数
# con.get(633)结果为:
# b'aaa'


你可能感兴趣的:(Django,django-redis,django,redis)