django4.0使用hiredis优化redis缓存数据库的访问
如果python版本是3.6+,可以使用hiredis库对redis进行优化。
hiredis官方介绍是:
[翻译]:Python扩展,将协议解析代码包装在hiredis中。它主要加快了多批量回复的解析速度。
django4.0新增了对redis的官方支持,建议开发者用redis库而不是django-redis库轻松配置缓存功能。
官网上对redis 和 hiredis 的描述:
Redis is an in-memory database that can be used for caching. To begin you’ll need a Redis server running either locally or on a remote machine.
After setting up the Redis server, you’ll need to install Python bindings for Redis. redis-py is the binding supported natively by Django. Installing the additional hiredis-py package is also recommended.
官网上建议使用reids库,并使用hiredis库优化,这里介绍hiredis库的使用方法
安装
python -m pip install hiredis
到此,django对redis的优化就结束了,简单吧!惊喜吧!
测试
其实题主也挺惊喜的,但是为了确保hiredis确实在工作,又跑去翻了半天的官方文档,最后刨出一个手动配置hiredis 的方法:
在settings.py中配置
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
'LOCATION': 'redis://192.168.252.123:6379',
'OPTIONS': {
'db': '1',
'parser_class': 'redis.connection.HiredisParser',
'pool_class': 'redis.ConnectionPool',
}
}
}
也就是将parser_class解析对象改成hiredis库中的就可以了。如果你不手动配置,django4.0会默认配置成这样。
这里是为了测试django确实在使用hiredis,所以手动配置了下,并将hiredis卸载掉。
接着我们直接测试,编写一个使用了缓存的视图函数并运行。
from django.core.cache import caches # 新版本这么用
cache_vrfy.set('testkey', '12342342',120)
报错
redis.exceptions.RedisError: Hiredis is not installed
这下说明hiredis确实在起作用了。有条件的小伙伴可以进一步性能测试,在同一个视图函数中,使用两次或两次以上的缓存方法,看看响应时间是否有所提升。
版权归原作者 brandon_l 所有, 如有侵权,请联系我们删除。