From 584f4efcb16b41ad88bb81f620dcb3bc0d974410 Mon Sep 17 00:00:00 2001 From: Bernhard Altendorfer Date: Wed, 21 Sep 2016 18:45:13 +0200 Subject: [PATCH] Added possiblity to connect to redis via a unix socket (#1055) * Added possiblity to connect to redis via a unix socket * Improved redis via socket config usage and added config option to blueprints * Updated Changelog * Improved redis via socket by adding a default value and a placeholder in the blueprint --- CHANGELOG.md | 1 + system/blueprints/config/system.yaml | 7 +++++++ system/config/system.yaml | 2 ++ system/src/Grav/Common/Cache.php | 9 ++++++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 582d33b63..854970ae9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ 1. [](#improved) * Add `batch()` function to Page Collection class + * Added new `cache.redis.socket` setting that allow to pass a UNIX socket as redis server # v1.1.5 ## 09/09/2016 diff --git a/system/blueprints/config/system.yaml b/system/blueprints/config/system.yaml index 007c9f52a..84d215d12 100644 --- a/system/blueprints/config/system.yaml +++ b/system/blueprints/config/system.yaml @@ -515,6 +515,13 @@ form: help: PLUGIN_ADMIN.MEMCACHED_PORT_HELP placeholder: "11211" + cache.redis.socket: + type: text + size: medium + label: PLUGIN_ADMIN.REDIS_SOCKET + help: PLUGIN_ADMIN.REDIS_SOCKET_HELP + placeholder: "/var/run/redis/redis.sock" + cache.redis.server: type: text size: medium diff --git a/system/config/system.yaml b/system/config/system.yaml index 9e55166fe..e0bcee64d 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -72,6 +72,8 @@ cache: prefix: 'g' # Cache prefix string (prevents cache conflicts) lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite) gzip: false # GZip compress the page output + redis: + socket: false # Path to redis unix socket (e.g. /var/run/redis/redis.sock), false = use server and port to connect twig: cache: true # Set to true to enable Twig caching diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index 099436dad..411bcac0e 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -196,8 +196,15 @@ class Cache extends Getters case 'redis': $redis = new \Redis(); - $redis->connect($this->config->get('system.cache.redis.server', 'localhost'), + $socket = $this->config->get('system.cache.redis.socket', false); + + if ($socket) { + $redis->connect($socket); + } else { + $redis->connect($this->config->get('system.cache.redis.server', 'localhost'), $this->config->get('system.cache.redis.port', 6379)); + } + $driver = new DoctrineCache\RedisCache(); $driver->setRedis($redis); break;