diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php
index dfbdd0295659d0449e40e09aacf16c83a0acaa28..56470afa0c5c8e3d6e13088daf88cef248da087b 100644
--- a/lib/private/Memcache/Redis.php
+++ b/lib/private/Memcache/Redis.php
@@ -101,7 +101,13 @@ class Redis extends Cache implements IMemcacheTTL {
 		if (!is_int($value)) {
 			$value = json_encode($value);
 		}
-		return self::$cache->setnx($this->getPrefix() . $key, $value);
+
+		$args = ['nx'];
+		if ($ttl !== 0 && is_int($ttl)) {
+			$args['ex'] = $ttl;
+		}
+
+		return self::$cache->set($this->getPrefix() . $key, $value, $args);
 	}
 
 	/**