Просмотр исходного кода

Switch back to using rpush

Switches back to rpush to keep list order consistent with non capped
collections
Matt Wells 10 лет назад
Родитель
Сommit
12711d133a

+ 4 - 4
src/Monolog/Handler/RedisHandler.php

@@ -75,15 +75,15 @@ class RedisHandler extends AbstractProcessingHandler
     {
         if($this->redisClient instanceof \Redis) {
             $this->redisClient->multi()
-                ->lpush($this->redisKey, $record["formatted"])
-                ->ltrim($this->redisKey, 0, $this->capSize)
+                ->rpush($this->redisKey, $record["formatted"])
+                ->ltrim($this->redisKey, -$this->capSize, -1)
                 ->execute();
         } else {
             $redisKey = $this->redisKey;
             $capSize = $this->capSize;
             $this->redisClient->transaction(function($tx) use($record, $redisKey, $capSize) {
-                $tx->lpush($redisKey, $record["formatted"]);
-                $tx->ltrim($redisKey, 0, $capSize);
+                $tx->rpush($redisKey, $record["formatted"]);
+                $tx->ltrim($redisKey, -$capSize, -1);
             });
         }
     }

+ 4 - 4
tests/Monolog/Handler/RedisHandlerTest.php

@@ -71,7 +71,7 @@ class RedisHandlerTest extends TestCase
 
     public function testRedisHandleCapped()
     {
-        $redis = $this->getMock('Redis', array('multi', 'lpush', 'ltrim', 'execute'));
+        $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'execute'));
 
         // Redis uses multi
         $redis->expects($this->once())
@@ -79,7 +79,7 @@ class RedisHandlerTest extends TestCase
             ->will($this->returnSelf());
 
         $redis->expects($this->once())
-            ->method('lpush')
+            ->method('rpush')
             ->will($this->returnSelf());
 
         $redis->expects($this->once())
@@ -101,10 +101,10 @@ class RedisHandlerTest extends TestCase
     {
         $redis = $this->getMock('Predis\Client', array('transaction'));
 
-        $redisTransaction = $this->getMock('Predis\Client', array('lpush', 'ltrim'));
+        $redisTransaction = $this->getMock('Predis\Client', array('rpush', 'ltrim'));
 
         $redisTransaction->expects($this->once())
-            ->method('lpush')
+            ->method('rpush')
             ->will($this->returnSelf());
 
         $redisTransaction->expects($this->once())