django做mysql redis缓存_Django-Redis:在Django中使用redis作为缓存

戚峻
2023-12-01

Django-Redis

参考资料:

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

关闭保护模式

未完待续……

 类似资料: