0


django4.0使用hiredis优化redis缓存数据库的访问

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确实在起作用了。有条件的小伙伴可以进一步性能测试,在同一个视图函数中,使用两次或两次以上的缓存方法,看看响应时间是否有所提升。

标签: redis 缓存 数据库

本文转载自: https://blog.csdn.net/brandon_l/article/details/123529935
版权归原作者 brandon_l 所有, 如有侵权,请联系我们删除。

“django4.0使用hiredis优化redis缓存数据库的访问”的评论:

还没有评论