Django-Redis:在Django中使用redis作为缓存

Django-Redis

参考资料:

https://django-redis-chs.readthedocs.io/zh_CN/latest/

http://www.redis.cn/documentation.html

Redis可以干什么?

记录评论数、热度、浏览量等。(使用hash)

记录我的收藏、我的文章等列表类型的数据。(使用zset)

记录某篇文章的点赞人员列表。(使用zset)

缓存频繁访问但又不太多的东西,例如:热门推荐。(使用hash)

记录与当前浏览的对象相关的对象,例如:与当前文章相关的文章。(使用list)

记录分类排行榜。(使用zset)

缓存历史记录,如:登录历史等。(使用zset或hash)

Redis的数据结构

不管什么数据类型,在Redis总是以key,value的形式存在,可以通过key获得value的值,redis数据结构类型的差异取决于value的类型。

例如:string类型的value是string,set类型的value是set,zset的value的类型是zset,而key都是string。

=========================================================================================
string(字符串)       {"key1":"hello Wrold" }  
set(集合)            {"key2":{'a':null,'b':null}}      set相当于字典,只是所有键对应的值都是null
zset(有序集合)        有顺序的set      
hash(字典)          {"key3":{'url1':'http://22'}}     可以用来存储用户信息
list(列表)           {"key4": [1,2,4,3]                 
=========================================================================================

string的应用

常见的用途:缓存用户基本信息。
将用户的基本信息序列化成JSON字符串,然后将序列化后的字符串保存到 Redis 来缓存。反过来,当取用户
信息时,会经过一次反序列化。

list的应用

通常用作异步队列、存储列表数据。

hash的应用

无序字典,字典的值只能是字符串。

hash的最后一个元素删除后,该数据结构自动被删除。

hash也可以存储用户的信息,和string不同的是,hash可以对用户信息的每个字段单独存储。

set集合的应用

set的最后一个元素删除后,该数据结构自动被删除。

set中不存在重复元素,利用这个特性,我们可以用来存储防止重复事件发生的情况。例如:在抽奖活动系统中存储中奖用户,防止重复中奖。

Django-Redis

Django 支持 Redis cache/session 后端的全功能组件。

说明

Django-Redis可以和Django配合使用,充当cache/session

Django-Redis依赖于pyredis

功能

作为session后端

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

作为cache后端

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

思考

为什么使用Django-Redis时,在配置文件里配置一下,就能生效?

以缓存为例,请对比一下三个类:RedisCache,DatabaseCache,MemcachedCache

from django_redis.cache import RedisCache
from django.core.cache.backends.db import DatabaseCache
from django.core.cache.backends.memcached import MemcachedCache

CentOS安装redis

tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

启动服务

redis-server

关闭连接

强行终止 Redis 进程可能会导致数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:

redis-cli shutdown

配置文件

常用参数说明

参数 说明
daemonize yes 使Redis以守护进程模式运行
pidfile /var/run/redis_端口号.pid 设置Redis的PID文件位置
port 端口号 设置Redis监听的端口号
dir /var/redis/端口号 设置持久化文件存放位置
protected-mode no 关闭保护模式

未完待续……

原文地址:https://www.cnblogs.com/tantanjishu/p/11697396.html