Memcached Setup for 1C-Bitrix: Caching, Sessions, Composite
A Bitrix site with 20,000 products starts slowing down during catalog filtering — page generation takes 5–7 seconds, and the database struggles with queries. The first thing we do in such projects is replace file-based cache with Memcached. This gives a 5–10x speed boost on catalog pages and reduces database load by up to 90%. In this article, we explain how to configure Memcached correctly to avoid issues with invalidation and data eviction.
Why Memcached Is Critical for High-Load Sites
Bitrix has built-in support for Memcached via the caching module. When properly configured, component cache, HTML pages (composite site), and sessions are stored in memory, bypassing the file system. On a server with HDD, Memcached is 5–10x faster than file cache. Memcached uses consistent hashing to distribute keys across nodes — this guarantees minimal redistribution when adding or removing a server.
Typical Pain Points That Memcached Solves
- Slow catalog page loads due to reading cache from disk
- Increased database load during peak traffic (up to 5000 rps)
- Cache loss after web server restart (file cache does not persist)
- Inefficient memory usage: file cache consumes disk space instead of RAM
How We Set Up Memcached Turnkey
Our engineers have 10+ years of experience with Bitrix and have completed over 100 optimization projects. We use only current versions: PHP 8.1+, Memcached 1.6+, php-memcached extension. We guarantee stability and performance gains. Typical cost: $500–$1500 depending on complexity, but the investment recoups within 2–3 months through reduced server expenses.
Our Process
- Analysis — measure current performance, identify bottlenecks (up to 2 hours)
- Design — calculate memory size, connection count, kernel parameters
- Installation and Configuration — set up Memcached, connect to Bitrix via .settings.php
- Testing — check hit rate, invalidation, compatibility with composite mode
- Optimization — configure TTL, tagged caching, monitor evictions
- Documentation — hand over configs and maintenance instructions
Timeline: 1 to 3 business days depending on project architecture. Cost is determined after analysis; typically recouped within 2–3 months through reduced server load.
What's Included
- Memcached configuration files with optimal parameters
- Connection setup to Bitrix (.settings.php, php.ini for sessions)
- Enable tagged caching and configure cache_flags.php
- Monitoring scripts for statistics (hit rate, evictions)
- Documentation: configuration description and maintenance guide
- Training: cache management consultation for your administrator
- Support: 2 weeks after setup to resolve any issues
How to Avoid Evictions
Evictions occur when Memcached removes old data to make room for new data. If evictions grow continuously, you need more memory. In Bitrix, this often happens when caching large HTML blocks (e.g., catalog sections). The solution is to increase the -m parameter in the configuration. For a project with 10,000 products and 500 daily visitors, 2 GB is usually sufficient.
Example configuration for an average project
```bash # /etc/memcached.conf -m 2048 # 2 GB -I 32m # max object size 32 MB -t 4 # 4 threads (matching CPU cores) ``` This is enough for 95% of projects. If hits exceed 1 million/day, increase to 4 GB.How to Connect Memcached to Bitrix
Installation and basic configuration:
apt install memcached php-memcached # Configuration /etc/memcached.conf -d # daemon mode -m 1024 # memory in MB -u memcache -l 127.0.0.1 # localhost only -p 11211 -c 1024 # max connections -I 32m # max item size (for large cache objects) -t 4 # threads (= number of cores) The -I 32m parameter is critical: the default limit is 1 MB, but a catalog page with 50 products may generate HTML of 2–5 MB. Without increasing it, the cache silently fails to store large objects.
Connecting to Bitrix:
<?php // /bitrix/.settings.php return [ 'cache' => [ 'value' => [ 'type' => 'memcache', 'memcache' => [ 'host' => '127.0.0.1', 'port' => '11211', ], 'sid' => 'bitrix_cache', ], ], ]; ?> ; php.ini for session cache session.save_handler = memcached session.save_path = "127.0.0.1:11211" Alternatively, use the admin panel: Settings → Product Settings → Cache and select "Memcache".
How to Check Cache Efficiency
# Basic statistics echo "stats" | nc 127.0.0.1 11211 | grep -E "curr_items|bytes|get_hits|get_misses|evictions" # Calculate hit rate hits=$(echo "stats" | nc 127.0.0.1 11211 | grep get_hits | awk '{print $3}') misses=$(echo "stats" | nc 127.0.0.1 11211 | grep get_misses | awk '{print $3}') echo "Hit rate: $(echo "scale=2; $hits / ($hits + $misses) * 100" | bc)%" Hit rate is the key metric. If below 80%, the cache is inefficient: either TTL is too short or objects are evicted prematurely. Monitor evictions — if they increase, increase -m.
Memcached vs Redis for Bitrix
| Criterion | Memcached | Redis |
|---|---|---|
| Performance | Faster for simple get/set (Memcached is up to 30% faster) | Comparable |
| Persistence | No (data lost on restart) | Yes (RDB/AOF) |
| Data structures | Only strings | Strings, lists, hashes, sets |
| Clustering | No native cluster | Redis Cluster |
| Bitrix support | Native | Via module or custom class |
For component cache and HTML, Memcached is sufficient. For task queues, counters, pub/sub, use Redis.
Common Configuration Mistakes
| Mistake | Consequence | Solution |
|---|---|---|
Small -I (1 MB) |
Large HTML blocks not cached | Set -I 32m |
Insufficient memory (-m) |
Constant evictions, low hit rate | Increase -m to 2–4 GB |
| No tagged cache | Invalidation fails, stale cache | Enable tags in cache_flags.php |
Wrong sid |
Key conflict on multisite setups | Unique sid per site |
Typical Problem: Stale Cache After Updates
Bitrix invalidates cache by tags. When a product is updated, all caches containing that product's tag are invalidated. If invalidation doesn't work, check that the tag system is correctly configured in cache_flags.php:
<?php // bitrix/php_interface/cache_flags.php $GLOBALS['CACHE_FLAGS'] = [ 'iblock_id_list' => true, 'catalog_price' => true, ]; ?> Also ensure that components have not disabled tagged caching in their settings. After proper setup, you reduce server hardware costs and accelerate project ROI.
Additional Resources
For more on Memcached, see Wikipedia. For Bitrix-specific setup, refer to the 1C-Bitrix documentation.
Contact us for a free consultation and project analysis. Order our turnkey Memcached setup and get a speed boost in 1–3 days.

