예제 #1
7
<?php

require 'vendor/autoload.php';
Predis\Autoloader::register();
$client = new Predis\Client(array('host' => '127.0.0.1', 'port' => 6379), array('prefix' => 'php:'));
$client->set("string:my_key", "Hello World");
$client->get("string:my_key");
# "Hello World"
$client->incr("string:counter");
$client->mget(array("string:my_key", "string:counter"));
# array('Hello World', '2')
$client->rpush("list:my_list", "item1", "item2");
$client->lpop("list:my_list");
# 'item1'
$client->hset("set:redis_book", "title", "Redis Essentials");
$client->hgetall("set:redis_book");
# array('title' => 'Redis Essentials')
$client->sadd("set:users", "alice", "bob");
$client->smembers("set:users");
# array('bob', 'alice')
$client->zadd("sorted_set:programmers", 1940, "Alan Kay");
$client->zadd("sorted_set:programmers", 1912, "Alan Turing");
$client->zrange("sorted_set:programmers", 0, -1, "withscores");
# array('Alan Turing' => 1912, 'Alan Kay' => 1940)
예제 #2
0
 /**
  * 点赞一条feed
  */
 public function praise()
 {
     $feedid = intval(I('post.feedid', ''));
     \Predis\Autoloader::register();
     $redis = new \Predis\Client();
     if ($redis->zscore('feed:' . $feedid . ':praise', ACPopedom::getID())) {
         $res = $redis->zrem('feed:' . $feedid . ':praise', ACPopedom::getID());
         $rs = $redis->hincrby('feed:' . $feedid, 'praise', -1);
         $this->ajaxReturn($res && $rs ? array('status' => true) : array('status' => false, 'message' => '由于服务器君罢工,取消点赞失败失败啦..'));
     } else {
         $rs = $redis->zadd('feed:' . $feedid . ':praise', time(), ACPopedom::getID());
         $result = $redis->hincrby('feed:' . $feedid, 'praise', 1);
         $this->ajaxReturn($result && $rs ? array('status' => true, 'message' => '点赞成功了,么么哒') : array('status' => false, 'message' => '由于服务器君罢工,点赞失败失败啦..'));
     }
 }
//   - SSCAN (iterates over members of a set)
//   - ZSCAN (iterates over members and ranks of a sorted set)
//   - HSCAN (iterates over fields and values of an hash).
// Predis provides a specialized abstraction for each command based on standard
// SPL iterators making it possible to easily consume SCAN-based iterations in
// your PHP code.
//
// See http://redis.io/commands/scan for more details.
//
// Create a client using `2.8` as a server profile (needs Redis 2.8!)
$client = new Predis\Client($single_server, array('profile' => '2.8'));
// Prepare some keys for our example
$client->del('predis:set', 'predis:zset', 'predis:hash');
for ($i = 0; $i < 5; $i++) {
    $client->sadd('predis:set', "member:{$i}");
    $client->zadd('predis:zset', -$i, "member:{$i}");
    $client->hset('predis:hash', "field:{$i}", "value:{$i}");
}
// === Keyspace iterator based on SCAN ===
echo 'Scan the keyspace matching only our prefixed keys:', PHP_EOL;
foreach (new Iterator\Keyspace($client, 'predis:*') as $key) {
    echo " - {$key}", PHP_EOL;
}
/* OUTPUT
Scan the keyspace matching only our prefixed keys:
 - predis:zset
 - predis:set
 - predis:hash
*/
// === Set iterator based on SSCAN ===
echo 'Scan members of `predis:set`:', PHP_EOL;
예제 #4
0
파일: PredisShared.php 프로젝트: up1/predis
 public static function zsetAddAndReturn(Predis\Client $client, $keyName, array $values, $wipeOut = 0)
 {
     // $values: array(SCORE => VALUE, ...);
     if ($wipeOut == true) {
         $client->del($keyName);
     }
     foreach ($values as $value => $score) {
         $client->zadd($keyName, $score, $value);
     }
     return $values;
 }