Accelerate Bitrix with Redis: Cache, Sessions, Queues

When standard caching mechanisms can no longer handle the load, a Bitrix site starts to slow down, and imports from 1C paralyze operations. We configure Redis for cache, sessions, and queues to speed up page generation and offload the server. Our team delivers the project turnkey—from auditing the current configuration to implementation and ongoing support, ensuring stable performance even during peak times.

Our competencies:

Frequently Asked Questions

Why Redis and Not Memcached?

On an e-commerce project with a catalog of 120,000 products and a peak load of 500 concurrent users, Memcached failed to handle tagged cache. Tag invalidation required scanning all keys—with 50,000+ keys it took 3–5 seconds, blocking page generation. Each import from 1C turned into site downtime. According to Wikipedia, Redis uses native Set structures: each tag stores a set of keys, invalidation is an atomic SMEMBERS + DEL operation taking milliseconds. We migrated the cache to Redis, and cleanup time dropped to 50 ms, boosting catalog page load speed by 40%. Beyond cache, Redis is used for sessions, business process queues, and pub/sub in on-premise Bitrix24. Get a consultation on Redis tuning for your project—we'll select the optimal configuration.

Installation and Basic Configuration

Install packages:

apt install redis-server php-redis 

Configure /etc/redis/redis.conf for Bitrix:

# Network access
bind 127.0.0.1
port 6379
protected-mode yes

# Memory
maxmemory 2gb
maxmemory-policy allkeys-lru

# Persistence (can be disabled for cache)
save "" # disable RDB snapshot
appendonly no # disable AOF

# For sessions — enable persistence
# save 900 1
# appendonly yes

# Performance
tcp-backlog 511
tcp-keepalive 300
hz 20

# Logging
loglevel notice
logfile /var/log/redis/redis-server.log

maxmemory-policy allkeys-lru — evicts least recently used keys when limit is reached. Correct policy for cache. For sessions use noeviction: better to get an error than lose a user session. Disable persistence for cache—no point writing to disk what will be invalidated anyway.

Connecting to Bitrix

Via the sprint.migration module or directly in .settings.php:

// /bitrix/.settings.php
return [
    'cache' => [
        'value' => [
            'type' => \Bitrix\Main\Data\CacheEngineRedis::class,
            'redis' => [
                'host' => '127.0.0.1',
                'port' => 6379,
                'db' => 0,
            ],
            'sid' => md5($_SERVER['DOCUMENT_ROOT']),
        ],
    ],
    'session' => [
        'value' => [
            'mode' => 'default',
            'handlers' => [
                'general' => [
                    'type' => 'redis',
                    'host' => '127.0.0.1',
                    'port' => 6379,
                    'db' => 1, // separate DB from cache
                ],
            ],
        ],
    ],
];

Separate cache (db:0) and sessions (db:1)—different eviction policies, separate monitoring.

Comparison: Memcached vs Redis for Bitrix

Parameter Memcached Redis
Data types only strings strings, lists, sets, hashes
Tag invalidation scan all keys (O(N)) atomic via Set (O(1))
Persistence no optional (RDB/AOF)
Queues no List, Pub/Sub, Stream
Sessions third-party libraries built-in support
High availability client-side balancing Sentinel/Cluster

Redis wins due to native structures and flexibility. For Bitrix, it's the only choice for tagged cache in large catalogs.

Redis Sentinel for High Availability

A single Redis server is a single point of failure. Redis Sentinel provides automatic failover:

redis-master (10.0.0.10:6379) redis-replica (10.0.0.11:6379) sentinel-1, sentinel-2, sentinel-3 (port 26379) 

sentinel.conf:

sentinel monitor bitrix-master 10.0.0.10 6379 2
sentinel down-after-milliseconds bitrix-master 5000
sentinel failover-timeout bitrix-master 10000
sentinel parallel-syncs bitrix-master 1

Quorum 2—if the master is unreachable, two of three sentinels must agree on a failover. Bitrix connects to Sentinel, not directly to the master—requires a custom cache class or using Predis with Sentinel support.

How to Monitor Redis in Production?

redis-cli info stats | grep -E "keyspace_hits|keyspace_misses|evicted_keys|connected_clients"
redis-cli info memory | grep -E "used_memory_human|maxmemory_human|mem_fragmentation_ratio"
redis-cli --bigkeys

mem_fragmentation_ratio > 1.5 — severe memory fragmentation. Run redis-cli memory purge or restart Redis during maintenance. If evicted_keys grows — maxmemory is too low. Increase it or analyze what's consuming memory. Aim for metrics: if keyspace_misses exceeds 5% of hits, reconsider the eviction policy.

Configuring Redis Queues for B24

For the on-premise version of Bitrix24, use Redis as the backend for push notification queues and real-time events. Enable the push server and set the queue type via API:

\Bitrix\Pull\Common::ConfigSet(['push' => ['queue' => 'redis']]);
CPullOptions::SetQueueServerType('redis');
CPullOptions::SetRedisConfig([
    'host' => '127.0.0.1',
    'port' => 6379,
    'db' => 2,
]);

After this, all events pass through Redis—latency drops by 30% compared to MySQL.

How to Set Up Fault-Tolerant Redis with Sentinel?

For high-load projects, we deploy a Sentinel cluster. Process:

  1. Install a replica and three sentinels.
  2. Configure master monitoring.
  3. In Bitrix, use the predis/predis library—it supports Sentinel connections.
  4. In .settings.php, specify the Sentinel connection point.
  5. Test failover: stop the master, wait 5 seconds, verify that the replica becomes master.

This achieves 99.9% availability for cache and sessions without data loss during server failure.

Eviction Policies: Which One for What?

Policy Behavior Use Case
allkeys-lru Evicts LRU keys Info block cache
volatile-lru Evicts LRU among keys with TTL Cache with limited lifetime
allkeys-random Random eviction Rarely
noeviction Returns error on limit Sessions

What's Included in the Work

We provide turnkey Redis setup:

  • Audit of current cache and session configuration.
  • Installation and optimization of Redis on the server.
  • Integration with Bitrix via .settings.php.
  • Sentinel configuration if needed.
  • Monitoring and alerts (metrics, dashboards).
  • Operations documentation.
  • Team training on basic operations.
  • Support for 2 weeks after implementation.

We have over 5 years of experience with Bitrix and Redis, completed 50+ site acceleration projects. We guarantee at least a 2x increase in page load speed. Contact us for a project evaluation—we'll select a configuration for your load.