При использовании Smarty в кластерном режиме на нескольких серверах и при большой нагрузке от абонентов, вы можете столкнуться с необходимостью сокращения объема хранимых данных в Redis и снижения нагрузки на сеть при передаче данных между серверами Redis и Smarty.
Smarty позволяет сжимать данные при сохранении в кеш. Это может сократить размер данных и трафик вдвое.
Для включения сжатия необходимо добавить в секцию CACHES
OPTIONS
параметр COMPRESSOR
, пример:
CACHES = { "default": { "BACKEND": "core.cache.backends.RedisCache", "LOCATION": "redis://10.0.0.1:7000/0", "OPTIONS": { "COMPRESSOR": "django_redis.compressors.zlib.ZlibCompressor", "REDIS_CLIENT_CLASS": "rediscluster.client.RedisCluster", "REDIS_CLIENT_KWARGS": { "read_from_replicas": True }, "CONNECTION_POOL_CLASS": "core.cache.cluster_connection.ClusterConnectionPool", "CONNECTION_POOL_KWARGS": { "startup_nodes": [ {"host": "10.0.0.1", "port": "7000", "server_type": "master"}, {"host": "10.0.0.1", "port": "7000", "server_type": "slave"}, {"host": "10.0.0.1", "port": "7000", "server_type": "slave"} ] } } } }
Использование компрессии данных может незначительно увеличить нагрузку на CPU.