Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Масштабирование и отказоустойчивость
  5. Включение сжатия данных в кеше

Включение сжатия данных в кеше

При использовании 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.