当前位置: 首页>>代码示例>>PHP>>正文


PHP Memcached::increment方法代码示例

本文整理汇总了PHP中Memcached::increment方法的典型用法代码示例。如果您正苦于以下问题:PHP Memcached::increment方法的具体用法?PHP Memcached::increment怎么用?PHP Memcached::increment使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Memcached的用法示例。


在下文中一共展示了Memcached::increment方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: increment

 /**
  * increment
  *
  * @param mixed $identifier identifier to increment the value for
  *
  * @return boolean/int
  */
 public function increment($identifier = null)
 {
     if (!$identifier) {
         throw new \InvalidArgumentException('identifier is a required argument');
     }
     return $this->memcached->increment($this->fileName($identifier));
 }
开发者ID:websoftwares,项目名称:throttle,代码行数:14,代码来源:Memcached.php

示例2: inc

 function inc($key)
 {
     $key = str_replace('\\', '/', $key);
     if (!$this->memcached->increment($key)) {
         $message = sprintf('Memcache::increment() with key "%s" failed', $key);
         \ManiaLib\Utils\Logger::error($message);
     }
 }
开发者ID:kremsy,项目名称:manialib,代码行数:8,代码来源:Memcached.php

示例3: increment

 public function increment($key, $value)
 {
     $this->ensureTriedToConnect();
     try {
         return $this->instance->increment($key, $value);
     } catch (BaseException $e) {
         return null;
     }
 }
开发者ID:justthefish,项目名称:hesper,代码行数:9,代码来源:PeclMemcached.php

示例4: collect

 public function collect()
 {
     $newValue = $this->memcached->increment($this->key);
     if (false !== $newValue) {
         return $this;
     }
     if (\Memcached::RES_NOTFOUND !== $this->memcached->getResultCode()) {
         throw new \Exception('Error collecting value');
     }
     $this->memcached->set($this->key, 1, time() + $this->timeInterval);
 }
开发者ID:sokil,项目名称:php-fraud-detect,代码行数:11,代码来源:MemcachedCollector.php

示例5: incrementItem

 /**
  * Increment an item.
  *
  * Options:
  *  - namespace <string> optional
  *    - The namespace to use (Default: namespace of object)
  *  - ignore_missing_items <boolean> optional
  *    - Throw exception on missing item or return false
  *
  * @param  string $key
  * @param  int $value
  * @param  array $options
  * @return int|boolean The new value or false on failure
  * @throws Exception
  *
  * @triggers incrementItem.pre(PreEvent)
  * @triggers incrementItem.post(PostEvent)
  * @triggers incrementItem.exception(ExceptionEvent)
  */
 public function incrementItem($key, $value, array $options = array())
 {
     $baseOptions = $this->getOptions();
     if (!$baseOptions->getWritable()) {
         return false;
     }
     $this->normalizeOptions($options);
     $this->normalizeKey($key);
     $args = new ArrayObject(array('key' => &$key, 'options' => &$options));
     try {
         $eventRs = $this->triggerPre(__FUNCTION__, $args);
         if ($eventRs->stopped()) {
             return $eventRs->last();
         }
         $internalKey = $options['namespace'] . $baseOptions->getNamespaceSeparator() . $key;
         $value = (int) $value;
         $newValue = $this->memcached->increment($internalKey, $value);
         if ($newValue === false) {
             if ($this->memcached->get($internalKey) !== false) {
                 throw new Exception\RuntimeException("Memcached::increment('{$internalKey}', {$value}) failed");
             } elseif (!$options['ignore_missing_items']) {
                 throw new Exception\ItemNotFoundException("Key '{$internalKey}' not found");
             }
             $this->addItem($key, $value, $options);
             $newValue = $value;
         }
         return $this->triggerPost(__FUNCTION__, $args, $newValue);
     } catch (\Exception $e) {
         return $this->triggerException(__FUNCTION__, $args, $e);
     }
 }
开发者ID:nevvermind,项目名称:zf2,代码行数:50,代码来源:Memcached.php

示例6: doIncrement

 /**
  * {@inheritdoc}
  */
 public function doIncrement($key, $increment = 1, $initialValue = 0, $expiration = null, array $options = array())
 {
     $key = $this->getKey($key, $options);
     /* Only the binary protocol supports initial value, in which case the implementation is simpler. */
     if ($this->isBinaryProtocolActive()) {
         $result = $this->client->increment($key, $increment, $initialValue, $expiration);
         return new CacheResponse($result, $this->isSuccess(), $this->isSuccess() || $this->isNotFound());
     }
     /* If the binary protocol is disable we must implement the initial value logic. */
     $result = $this->client->increment($key, $increment);
     /* In case or success or any error aside "not found" there's nothing more to do. */
     if ($this->isSuccess() || !$this->isNotFound()) {
         return new CacheResponse($result, true, true);
     }
     /**
      * Try to add the key; notice that "add" is used instead of "set", to ensure we do not override
      * the value in case another process already set it.
      */
     $result = $this->client->add($key, $increment + $initialValue, $expiration);
     /* Created the key successfully. */
     if ($this->isSuccess()) {
         return new CacheResponse($increment + $initialValue, true, true);
     }
     /* The key was not stored because is already existed, try to increment a last time. */
     if ($this->isNotStored()) {
         $result = $this->client->increment($key, $increment);
         return new CacheResponse($result, $this->isSuccess(), $this->isSuccess() || $this->isNotFound());
     }
     return new CacheResponse($result, false, false);
 }
开发者ID:ebidtech,项目名称:cache-client,代码行数:33,代码来源:MemcachedProviderService.php

示例7: internalIncrementItem

    /**
     * Internal method to increment an item.
     *
     * Options:
     *  - ttl <float>
     *    - The time-to-life
     *  - namespace <string>
     *    - The namespace to use
     *
     * @param  string $normalizedKey
     * @param  int    $value
     * @param  array  $normalizedOptions
     * @return int|boolean The new value on success, false on failure
     * @throws Exception\ExceptionInterface
     */
    protected function internalIncrementItem(& $normalizedKey, & $value, array & $normalizedOptions)
    {
        $this->memcached->setOption(MemcachedResource::OPT_PREFIX_KEY, $normalizedOptions['namespace']);

        $value    = (int)$value;
        $newValue = $this->memcached->increment($normalizedKey, $value);

        if ($newValue === false) {
            $rsCode = $this->memcached->getResultCode();

            // initial value
            if ($rsCode == MemcachedResource::RES_NOTFOUND) {
                $newValue   = $value;
                $expiration = $this->expirationTime($normalizedOptions['ttl']);
                $this->memcached->add($normalizedKey, $newValue, $expiration);
                $rsCode = $this->memcached->getResultCode();
            }

            if ($rsCode) {
                throw $this->getExceptionByResultCode($rsCode);
            }
        }

        return $newValue;
    }
开发者ID:necrogami,项目名称:zf2,代码行数:40,代码来源:Memcached.php

示例8: increment

 /**
  * Increment a numeric item's value.
  *
  * @link http://www.php.net/manual/en/memcached.increment.php
  *
  * @param   string      $key        The key under which to store the value.
  * @param   int         $offset     The amount by which to increment the item's value.
  * @param   string      $group      The group value appended to the $key.
  * @return  int|bool                Returns item's new value on success or FALSE on failure.
  */
 public function increment($key, $offset = 1, $group = 'default')
 {
     $derived_key = $this->buildKey($key, $group);
     // Increment values in no_mc_groups
     if (in_array($group, $this->no_mc_groups)) {
         // Only increment if the key already exists and the number is currently 0 or greater (mimics memcached behavior)
         if (isset($this->cache[$derived_key]) && $this->cache[$derived_key] >= 0) {
             // If numeric, add; otherwise, consider it 0 and do nothing
             if (is_numeric($this->cache[$derived_key])) {
                 $this->cache[$derived_key] += (int) $offset;
             } else {
                 $this->cache[$derived_key] = 0;
             }
             // Returned value cannot be less than 0
             if ($this->cache[$derived_key] < 0) {
                 $this->cache[$derived_key] = 0;
             }
             return $this->cache[$derived_key];
         } else {
             return false;
         }
     }
     $result = $this->mc->increment($derived_key, $offset);
     if (Memcached::RES_SUCCESS === $this->getResultCode()) {
         $this->add_to_internal_cache($derived_key, $result);
     }
     return $result;
 }
开发者ID:Ramoonus,项目名称:wp-spider-cache,代码行数:38,代码来源:class-object-cache.php

示例9: incrementItem

 /**
  * Increment an item.
  *
  * Options:
  *  - namespace <string> optional
  *    - The namespace to use (Default: namespace of object)
  *  - ignore_missing_items <boolean> optional
  *    - Throw exception on missing item or return false
  *
  * @param  string $key
  * @param  int $value
  * @param  array $options
  * @return int|boolean The new value or false on failure
  * @throws Exception
  *
  * @triggers incrementItem.pre(PreEvent)
  * @triggers incrementItem.post(PostEvent)
  * @triggers incrementItem.exception(ExceptionEvent)
  */
 public function incrementItem($key, $value, array $options = array())
 {
     $baseOptions = $this->getOptions();
     if (!$baseOptions->getWritable()) {
         return false;
     }
     $this->normalizeOptions($options);
     $this->normalizeKey($key);
     $args = new ArrayObject(array('key' => &$key, 'value' => &$value, 'options' => &$options));
     try {
         $eventRs = $this->triggerPre(__FUNCTION__, $args);
         if ($eventRs->stopped()) {
             return $eventRs->last();
         }
         $this->memcached->setOption(MemcachedResource::OPT_PREFIX_KEY, $options['namespace']);
         $value = (int) $value;
         $newValue = $this->memcached->increment($key, $value);
         if ($newValue === false) {
             if (($rsCode = $this->memcached->getResultCode()) != 0 && ($rsCode != MemcachedResource::RES_NOTFOUND || !$options['ignore_missing_items'])) {
                 throw $this->getExceptionByResultCode($rsCode);
             }
             $expiration = $this->expirationTime($options['ttl']);
             if (!$this->memcached->add($key, $value, $expiration)) {
                 throw $this->getExceptionByResultCode($this->memcached->getResultCode());
             }
             $newValue = $value;
         }
         return $this->triggerPost(__FUNCTION__, $args, $newValue);
     } catch (\Exception $e) {
         return $this->triggerException(__FUNCTION__, $args, $e);
     }
 }
开发者ID:ranxin1022,项目名称:zf2,代码行数:51,代码来源:Memcached.php

示例10: inc

 /**
  * Increase a stored number
  *
  * @param string $key
  * @param int $step
  * @return int | bool
  */
 public function inc($key, $step = 1)
 {
     $this->add($key, 0);
     $result = self::$cache->increment($this->getPrefix() . $key, $step);
     $this->verifyReturnCode();
     return $result;
 }
开发者ID:kenwi,项目名称:core,代码行数:14,代码来源:memcached.php

示例11: floodProtect

 /**
  * Flood protection with Memcached
  *
  * @param  string $misprintHash
  * @throws Exception if report is flood-positive
  * @return boolean
  */
 protected function floodProtect($misprintHash)
 {
     if (!$this->memcached) {
         return false;
     }
     $ip = $this->getIP();
     if ($ip !== false) {
         $mcIpHash = 'newrphus:byIP:' . md5($ip);
         $attemptsCount = $this->memcached->get($mcIpHash);
         if ($this->memcached->getResultCode() === 0) {
             if ($attemptsCount > $this->attemptsThreshold) {
                 throw new Exception("Too many attempts", 429);
             }
             $this->memcached->increment($mcIpHash);
         } else {
             $this->memcached->set($mcIpHash, 1, 300);
         }
     }
     $mcTextHash = 'newrphus:byText:' . $misprintHash;
     $this->memcached->get($mcTextHash);
     if ($this->memcached->getResultCode() === 0) {
         throw new Exception("This misprint already was sent", 202);
     }
     $this->memcached->set($mcTextHash, true, 300);
     return true;
 }
开发者ID:tjournal,项目名称:newrphus,代码行数:33,代码来源:Newrphus.php

示例12: inc

 /**
  * {@inheritdoc}
  */
 public function inc($name, $delta = 1)
 {
     if (!$this->has($name)) {
         $this->forever($name, $delta);
         return $delta;
     }
     return $this->driver->increment($name, $delta);
 }
开发者ID:tuneyourserver,项目名称:components,代码行数:11,代码来源:MemcachedDriver.php

示例13: inc

 /**
  * Increase a stored number
  *
  * @param string $key
  * @param int $step
  * @return int | bool
  */
 public function inc($key, $step = 1)
 {
     $this->add($key, 0);
     $result = self::$cache->increment($this->getPrefix() . $key, $step);
     if (self::$cache->getResultCode() !== \Memcached::RES_SUCCESS) {
         return false;
     }
     return $result;
 }
开发者ID:stweil,项目名称:owncloud-core,代码行数:16,代码来源:Memcached.php

示例14: increment

 /**
  * @inheritdoc
  */
 public function increment($key, $offset = 1, $expire = 0, $create = true)
 {
     $hash = $this->prepareKey($key);
     if ($this->exists($key) === false) {
         if ($create === false) {
             return false;
         }
         $this->storage->add($hash, 0, $expire);
     }
     return $this->storage->increment($hash, $offset);
 }
开发者ID:romeoz,项目名称:rock-cache,代码行数:14,代码来源:Memcached.php

示例15: cleanP

 /**
  * (non-PHPdoc)
  * @see \Cachearium\Backend\CacheRAM::cleanP()
  */
 public function cleanP($base, $id)
 {
     // @codeCoverageIgnoreStart
     if (!$this->enabled) {
         throw new NotCachedException();
     }
     // @codeCoverageIgnoreEnd
     $group = $this->getGroupString(new CacheKey($base, $id));
     parent::cleanP($base, $id);
     $this->memcached->increment($group);
     return true;
 }
开发者ID:corollarium,项目名称:cachearium,代码行数:16,代码来源:CacheMemcached.php


注:本文中的Memcached::increment方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。