Skip to content
Snippets Groups Projects
Commit 5bb3c403 authored by Thomas Hackl's avatar Thomas Hackl
Browse files

Resolve "Probleme mit dem Redis-Cache in Stud.IP"

Closes #3513

Merge request studip/studip!2400
parent 9091d0ad
No related branches found
No related tags found
No related merge requests found
......@@ -27,8 +27,9 @@ class StudipRedisCache implements StudipCache
*
* @param string $hostname Hostname of redis server
* @param int $port Port of redis server
* @param string $auth Optional auth token/password
*/
public function __construct($hostname, $port)
public function __construct($hostname, $port, string $auth = '')
{
if (!extension_loaded('redis')) {
throw new Exception('Redis extension missing.');
......@@ -40,6 +41,10 @@ class StudipRedisCache implements StudipCache
if (!$status) {
throw new Exception('Could not add cache.');
}
if ($auth !== '') {
$this->redis->auth($auth);
}
}
/**
......@@ -83,7 +88,10 @@ class StudipRedisCache implements StudipCache
public function read($arg)
{
$key = $this->getCacheKey($arg);
return $this->redis->get($key);
$result = $this->redis->get($key);
return ($result === null) ? null : unserialize($result);
}
/**
......@@ -97,7 +105,7 @@ class StudipRedisCache implements StudipCache
public function write($name, $content, $expire = self::DEFAULT_EXPIRATION)
{
$key = $this->getCacheKey($name);
return $this->redis->setEx($key, $expire, $content);
return $this->redis->setEx($key, $expire, serialize($content));
}
/**
......
......@@ -2,16 +2,20 @@
<div>
<label class="col-4">
<span class="required">
<translate>Hostname</translate>
{{ $gettext('Hostname') }}
</span>
<input required type="text" name="hostname" placeholder="localhost" v-model="theHostname">
</label>
<label class="col-2">
<span class="required">
<translate>Port</translate>
{{ $gettext('Port') }}
</span>
<input required type="text" name="port" placeholder="6379" v-model="thePort">
</label>
<label>
{{ $gettext('Passwort/Token zur Authentifizierung') }}
<input type="text" name="auth" v-model="theAuth">
</label>
</div>
</template>
......@@ -26,12 +30,17 @@ export default {
port: {
type: Number,
default: 6379
},
auth: {
type: String,
default: ''
}
},
data () {
return {
theHostname: this.hostname,
thePort: this.port,
theAuth: this.auth
}
},
methods: {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment