mirror of
https://github.com/predis/predis.git
synced 2026-08-30 12:15:03 +00:00
Promote 2.6 as an independent server profile for Redis 2.6.
The development server profile now targets Redis 3.0.
This commit is contained in:
@@ -10,7 +10,7 @@ project,
|
||||
|
||||
## Main features ##
|
||||
|
||||
- Complete support for Redis from __1.2__ to __2.4__ and the current development versions using different
|
||||
- Complete support for Redis from __1.2__ to __2.6__ and the current unstable versions using different
|
||||
server profiles.
|
||||
- Client-side sharding with support for consistent hashing or custom distribution strategies.
|
||||
- Support for master / slave replication configurations (write on master, read from slaves).
|
||||
|
||||
@@ -76,7 +76,7 @@ abstract class ServerProfile implements IServerProfile, IProcessingSupport
|
||||
'2.0' => 'Predis\Profiles\ServerVersion20',
|
||||
'2.2' => 'Predis\Profiles\ServerVersion22',
|
||||
'2.4' => 'Predis\Profiles\ServerVersion24',
|
||||
'2.6' => 'Predis\Profiles\ServerVersionNext',
|
||||
'2.6' => 'Predis\Profiles\ServerVersion26',
|
||||
'default' => 'Predis\Profiles\ServerVersion24',
|
||||
'dev' => 'Predis\Profiles\ServerVersionNext',
|
||||
);
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Predis package.
|
||||
*
|
||||
* (c) Daniele Alessandri <suppakilla@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Predis\Profiles;
|
||||
|
||||
/**
|
||||
* Server profile for Redis v2.6.x.
|
||||
*
|
||||
* @author Daniele Alessandri <suppakilla@gmail.com>
|
||||
*/
|
||||
class ServerVersion26 extends ServerProfile
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
return '2.6';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSupportedCommands()
|
||||
{
|
||||
return array(
|
||||
/* ---------------- Redis 1.2 ---------------- */
|
||||
|
||||
/* commands operating on the key space */
|
||||
'exists' => 'Predis\Commands\KeyExists',
|
||||
'del' => 'Predis\Commands\KeyDelete',
|
||||
'type' => 'Predis\Commands\KeyType',
|
||||
'keys' => 'Predis\Commands\KeyKeys',
|
||||
'randomkey' => 'Predis\Commands\KeyRandom',
|
||||
'rename' => 'Predis\Commands\KeyRename',
|
||||
'renamenx' => 'Predis\Commands\KeyRenamePreserve',
|
||||
'expire' => 'Predis\Commands\KeyExpire',
|
||||
'expireat' => 'Predis\Commands\KeyExpireAt',
|
||||
'ttl' => 'Predis\Commands\KeyTimeToLive',
|
||||
'move' => 'Predis\Commands\KeyMove',
|
||||
'sort' => 'Predis\Commands\KeySort',
|
||||
|
||||
/* commands operating on string values */
|
||||
'set' => 'Predis\Commands\StringSet',
|
||||
'setnx' => 'Predis\Commands\StringSetPreserve',
|
||||
'mset' => 'Predis\Commands\StringSetMultiple',
|
||||
'msetnx' => 'Predis\Commands\StringSetMultiplePreserve',
|
||||
'get' => 'Predis\Commands\StringGet',
|
||||
'mget' => 'Predis\Commands\StringGetMultiple',
|
||||
'getset' => 'Predis\Commands\StringGetSet',
|
||||
'incr' => 'Predis\Commands\StringIncrement',
|
||||
'incrby' => 'Predis\Commands\StringIncrementBy',
|
||||
'decr' => 'Predis\Commands\StringDecrement',
|
||||
'decrby' => 'Predis\Commands\StringDecrementBy',
|
||||
|
||||
/* commands operating on lists */
|
||||
'rpush' => 'Predis\Commands\ListPushTail',
|
||||
'lpush' => 'Predis\Commands\ListPushHead',
|
||||
'llen' => 'Predis\Commands\ListLength',
|
||||
'lrange' => 'Predis\Commands\ListRange',
|
||||
'ltrim' => 'Predis\Commands\ListTrim',
|
||||
'lindex' => 'Predis\Commands\ListIndex',
|
||||
'lset' => 'Predis\Commands\ListSet',
|
||||
'lrem' => 'Predis\Commands\ListRemove',
|
||||
'lpop' => 'Predis\Commands\ListPopFirst',
|
||||
'rpop' => 'Predis\Commands\ListPopLast',
|
||||
'rpoplpush' => 'Predis\Commands\ListPopLastPushHead',
|
||||
|
||||
/* commands operating on sets */
|
||||
'sadd' => 'Predis\Commands\SetAdd',
|
||||
'srem' => 'Predis\Commands\SetRemove',
|
||||
'spop' => 'Predis\Commands\SetPop',
|
||||
'smove' => 'Predis\Commands\SetMove',
|
||||
'scard' => 'Predis\Commands\SetCardinality',
|
||||
'sismember' => 'Predis\Commands\SetIsMember',
|
||||
'sinter' => 'Predis\Commands\SetIntersection',
|
||||
'sinterstore' => 'Predis\Commands\SetIntersectionStore',
|
||||
'sunion' => 'Predis\Commands\SetUnion',
|
||||
'sunionstore' => 'Predis\Commands\SetUnionStore',
|
||||
'sdiff' => 'Predis\Commands\SetDifference',
|
||||
'sdiffstore' => 'Predis\Commands\SetDifferenceStore',
|
||||
'smembers' => 'Predis\Commands\SetMembers',
|
||||
'srandmember' => 'Predis\Commands\SetRandomMember',
|
||||
|
||||
/* commands operating on sorted sets */
|
||||
'zadd' => 'Predis\Commands\ZSetAdd',
|
||||
'zincrby' => 'Predis\Commands\ZSetIncrementBy',
|
||||
'zrem' => 'Predis\Commands\ZSetRemove',
|
||||
'zrange' => 'Predis\Commands\ZSetRange',
|
||||
'zrevrange' => 'Predis\Commands\ZSetReverseRange',
|
||||
'zrangebyscore' => 'Predis\Commands\ZSetRangeByScore',
|
||||
'zcard' => 'Predis\Commands\ZSetCardinality',
|
||||
'zscore' => 'Predis\Commands\ZSetScore',
|
||||
'zremrangebyscore' => 'Predis\Commands\ZSetRemoveRangeByScore',
|
||||
|
||||
/* connection related commands */
|
||||
'ping' => 'Predis\Commands\ConnectionPing',
|
||||
'auth' => 'Predis\Commands\ConnectionAuth',
|
||||
'select' => 'Predis\Commands\ConnectionSelect',
|
||||
'echo' => 'Predis\Commands\ConnectionEcho',
|
||||
'quit' => 'Predis\Commands\ConnectionQuit',
|
||||
|
||||
/* remote server control commands */
|
||||
'info' => 'Predis\Commands\ServerInfo',
|
||||
'slaveof' => 'Predis\Commands\ServerSlaveOf',
|
||||
'monitor' => 'Predis\Commands\ServerMonitor',
|
||||
'dbsize' => 'Predis\Commands\ServerDatabaseSize',
|
||||
'flushdb' => 'Predis\Commands\ServerFlushDatabase',
|
||||
'flushall' => 'Predis\Commands\ServerFlushAll',
|
||||
'save' => 'Predis\Commands\ServerSave',
|
||||
'bgsave' => 'Predis\Commands\ServerBackgroundSave',
|
||||
'lastsave' => 'Predis\Commands\ServerLastSave',
|
||||
'shutdown' => 'Predis\Commands\ServerShutdown',
|
||||
'bgrewriteaof' => 'Predis\Commands\ServerBackgroundRewriteAOF',
|
||||
|
||||
|
||||
/* ---------------- Redis 2.0 ---------------- */
|
||||
|
||||
/* commands operating on string values */
|
||||
'setex' => 'Predis\Commands\StringSetExpire',
|
||||
'append' => 'Predis\Commands\StringAppend',
|
||||
'substr' => 'Predis\Commands\StringSubstr',
|
||||
|
||||
/* commands operating on lists */
|
||||
'blpop' => 'Predis\Commands\ListPopFirstBlocking',
|
||||
'brpop' => 'Predis\Commands\ListPopLastBlocking',
|
||||
|
||||
/* commands operating on sorted sets */
|
||||
'zunionstore' => 'Predis\Commands\ZSetUnionStore',
|
||||
'zinterstore' => 'Predis\Commands\ZSetIntersectionStore',
|
||||
'zcount' => 'Predis\Commands\ZSetCount',
|
||||
'zrank' => 'Predis\Commands\ZSetRank',
|
||||
'zrevrank' => 'Predis\Commands\ZSetReverseRank',
|
||||
'zremrangebyrank' => 'Predis\Commands\ZSetRemoveRangeByRank',
|
||||
|
||||
/* commands operating on hashes */
|
||||
'hset' => 'Predis\Commands\HashSet',
|
||||
'hsetnx' => 'Predis\Commands\HashSetPreserve',
|
||||
'hmset' => 'Predis\Commands\HashSetMultiple',
|
||||
'hincrby' => 'Predis\Commands\HashIncrementBy',
|
||||
'hget' => 'Predis\Commands\HashGet',
|
||||
'hmget' => 'Predis\Commands\HashGetMultiple',
|
||||
'hdel' => 'Predis\Commands\HashDelete',
|
||||
'hexists' => 'Predis\Commands\HashExists',
|
||||
'hlen' => 'Predis\Commands\HashLength',
|
||||
'hkeys' => 'Predis\Commands\HashKeys',
|
||||
'hvals' => 'Predis\Commands\HashValues',
|
||||
'hgetall' => 'Predis\Commands\HashGetAll',
|
||||
|
||||
/* transactions */
|
||||
'multi' => 'Predis\Commands\TransactionMulti',
|
||||
'exec' => 'Predis\Commands\TransactionExec',
|
||||
'discard' => 'Predis\Commands\TransactionDiscard',
|
||||
|
||||
/* publish - subscribe */
|
||||
'subscribe' => 'Predis\Commands\PubSubSubscribe',
|
||||
'unsubscribe' => 'Predis\Commands\PubSubUnsubscribe',
|
||||
'psubscribe' => 'Predis\Commands\PubSubSubscribeByPattern',
|
||||
'punsubscribe' => 'Predis\Commands\PubSubUnsubscribeByPattern',
|
||||
'publish' => 'Predis\Commands\PubSubPublish',
|
||||
|
||||
/* remote server control commands */
|
||||
'config' => 'Predis\Commands\ServerConfig',
|
||||
|
||||
|
||||
/* ---------------- Redis 2.2 ---------------- */
|
||||
|
||||
/* commands operating on the key space */
|
||||
'persist' => 'Predis\Commands\KeyPersist',
|
||||
|
||||
/* commands operating on string values */
|
||||
'strlen' => 'Predis\Commands\StringStrlen',
|
||||
'setrange' => 'Predis\Commands\StringSetRange',
|
||||
'getrange' => 'Predis\Commands\StringGetRange',
|
||||
'setbit' => 'Predis\Commands\StringSetBit',
|
||||
'getbit' => 'Predis\Commands\StringGetBit',
|
||||
|
||||
/* commands operating on lists */
|
||||
'rpushx' => 'Predis\Commands\ListPushTailX',
|
||||
'lpushx' => 'Predis\Commands\ListPushHeadX',
|
||||
'linsert' => 'Predis\Commands\ListInsert',
|
||||
'brpoplpush' => 'Predis\Commands\ListPopLastPushHeadBlocking',
|
||||
|
||||
/* commands operating on sorted sets */
|
||||
'zrevrangebyscore' => 'Predis\Commands\ZSetReverseRangeByScore',
|
||||
|
||||
/* transactions */
|
||||
'watch' => 'Predis\Commands\TransactionWatch',
|
||||
'unwatch' => 'Predis\Commands\TransactionUnwatch',
|
||||
|
||||
/* remote server control commands */
|
||||
'object' => 'Predis\Commands\ServerObject',
|
||||
'slowlog' => 'Predis\Commands\ServerSlowlog',
|
||||
|
||||
|
||||
/* ---------------- Redis 2.4 ---------------- */
|
||||
|
||||
/* remote server control commands */
|
||||
'client' => 'Predis\Commands\ServerClient',
|
||||
|
||||
|
||||
/* ---------------- Redis 2.6 ---------------- */
|
||||
|
||||
/* commands operating on the key space */
|
||||
'pttl' => 'Predis\Commands\KeyPreciseTimeToLive',
|
||||
'pexpire' => 'Predis\Commands\KeyPreciseExpire',
|
||||
'pexpireat' => 'Predis\Commands\KeyPreciseExpireAt',
|
||||
|
||||
/* commands operating on string values */
|
||||
'psetex' => 'Predis\Commands\StringPreciseSetExpire',
|
||||
'incrbyfloat' => 'Predis\Commands\StringIncrementByFloat',
|
||||
|
||||
/* commands operating on hashes */
|
||||
'hincrbyfloat' => 'Predis\Commands\HashIncrementByFloat',
|
||||
|
||||
/* scripting */
|
||||
'eval' => 'Predis\Commands\ServerEval',
|
||||
'evalsha' => 'Predis\Commands\ServerEvalSHA',
|
||||
'script' => 'Predis\Commands\ServerScript',
|
||||
|
||||
/* remote server control commands */
|
||||
'info' => 'Predis\Commands\ServerInfoV26x',
|
||||
'time' => 'Predis\Commands\ServerTime',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -12,18 +12,18 @@
|
||||
namespace Predis\Profiles;
|
||||
|
||||
/**
|
||||
* Server profile for the current development version of Redis.
|
||||
* Server profile for the current unstable version of Redis.
|
||||
*
|
||||
* @author Daniele Alessandri <suppakilla@gmail.com>
|
||||
*/
|
||||
class ServerVersionNext extends ServerVersion24
|
||||
class ServerVersionNext extends ServerVersion26
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
return '2.6';
|
||||
return '3.0';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -32,26 +32,6 @@ class ServerVersionNext extends ServerVersion24
|
||||
public function getSupportedCommands()
|
||||
{
|
||||
return array_merge(parent::getSupportedCommands(), array(
|
||||
/* commands operating on the key space */
|
||||
'pttl' => 'Predis\Commands\KeyPreciseTimeToLive',
|
||||
'pexpire' => 'Predis\Commands\KeyPreciseExpire',
|
||||
'pexpireat' => 'Predis\Commands\KeyPreciseExpireAt',
|
||||
|
||||
/* commands operating on string values */
|
||||
'psetex' => 'Predis\Commands\StringPreciseSetExpire',
|
||||
'incrbyfloat' => 'Predis\Commands\StringIncrementByFloat',
|
||||
|
||||
/* commands operating on hashes */
|
||||
'hincrbyfloat' => 'Predis\Commands\HashIncrementByFloat',
|
||||
|
||||
/* scripting */
|
||||
'eval' => 'Predis\Commands\ServerEval',
|
||||
'evalsha' => 'Predis\Commands\ServerEvalSHA',
|
||||
'script' => 'Predis\Commands\ServerScript',
|
||||
|
||||
/* remote server control commands */
|
||||
'info' => 'Predis\Commands\ServerInfoV26x',
|
||||
'time' => 'Predis\Commands\ServerTime',
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ use Predis\Commands\Processors\ProcessorChain;
|
||||
class ServerProfileTest extends StandardTestCase
|
||||
{
|
||||
const DEFAULT_PROFILE_VERSION = '2.4';
|
||||
const DEVELOPMENT_PROFILE_VERSION = '2.6';
|
||||
const DEVELOPMENT_PROFILE_VERSION = '3.0';
|
||||
|
||||
/**
|
||||
* @group disconnected
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Predis package.
|
||||
*
|
||||
* (c) Daniele Alessandri <suppakilla@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Predis\Profiles;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ServerVersion26Test extends ServerVersionTestCase
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getProfileInstance()
|
||||
{
|
||||
return new ServerVersion26();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getExpectedVersion()
|
||||
{
|
||||
return '2.6';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getExpectedCommands()
|
||||
{
|
||||
return array(
|
||||
0 => 'exists',
|
||||
1 => 'del',
|
||||
2 => 'type',
|
||||
3 => 'keys',
|
||||
4 => 'randomkey',
|
||||
5 => 'rename',
|
||||
6 => 'renamenx',
|
||||
7 => 'expire',
|
||||
8 => 'expireat',
|
||||
9 => 'ttl',
|
||||
10 => 'move',
|
||||
11 => 'sort',
|
||||
12 => 'set',
|
||||
13 => 'setnx',
|
||||
14 => 'mset',
|
||||
15 => 'msetnx',
|
||||
16 => 'get',
|
||||
17 => 'mget',
|
||||
18 => 'getset',
|
||||
19 => 'incr',
|
||||
20 => 'incrby',
|
||||
21 => 'decr',
|
||||
22 => 'decrby',
|
||||
23 => 'rpush',
|
||||
24 => 'lpush',
|
||||
25 => 'llen',
|
||||
26 => 'lrange',
|
||||
27 => 'ltrim',
|
||||
28 => 'lindex',
|
||||
29 => 'lset',
|
||||
30 => 'lrem',
|
||||
31 => 'lpop',
|
||||
32 => 'rpop',
|
||||
33 => 'rpoplpush',
|
||||
34 => 'sadd',
|
||||
35 => 'srem',
|
||||
36 => 'spop',
|
||||
37 => 'smove',
|
||||
38 => 'scard',
|
||||
39 => 'sismember',
|
||||
40 => 'sinter',
|
||||
41 => 'sinterstore',
|
||||
42 => 'sunion',
|
||||
43 => 'sunionstore',
|
||||
44 => 'sdiff',
|
||||
45 => 'sdiffstore',
|
||||
46 => 'smembers',
|
||||
47 => 'srandmember',
|
||||
48 => 'zadd',
|
||||
49 => 'zincrby',
|
||||
50 => 'zrem',
|
||||
51 => 'zrange',
|
||||
52 => 'zrevrange',
|
||||
53 => 'zrangebyscore',
|
||||
54 => 'zcard',
|
||||
55 => 'zscore',
|
||||
56 => 'zremrangebyscore',
|
||||
57 => 'ping',
|
||||
58 => 'auth',
|
||||
59 => 'select',
|
||||
60 => 'echo',
|
||||
61 => 'quit',
|
||||
62 => 'info',
|
||||
63 => 'slaveof',
|
||||
64 => 'monitor',
|
||||
65 => 'dbsize',
|
||||
66 => 'flushdb',
|
||||
67 => 'flushall',
|
||||
68 => 'save',
|
||||
69 => 'bgsave',
|
||||
70 => 'lastsave',
|
||||
71 => 'shutdown',
|
||||
72 => 'bgrewriteaof',
|
||||
73 => 'setex',
|
||||
74 => 'append',
|
||||
75 => 'substr',
|
||||
76 => 'blpop',
|
||||
77 => 'brpop',
|
||||
78 => 'zunionstore',
|
||||
79 => 'zinterstore',
|
||||
80 => 'zcount',
|
||||
81 => 'zrank',
|
||||
82 => 'zrevrank',
|
||||
83 => 'zremrangebyrank',
|
||||
84 => 'hset',
|
||||
85 => 'hsetnx',
|
||||
86 => 'hmset',
|
||||
87 => 'hincrby',
|
||||
88 => 'hget',
|
||||
89 => 'hmget',
|
||||
90 => 'hdel',
|
||||
91 => 'hexists',
|
||||
92 => 'hlen',
|
||||
93 => 'hkeys',
|
||||
94 => 'hvals',
|
||||
95 => 'hgetall',
|
||||
96 => 'multi',
|
||||
97 => 'exec',
|
||||
98 => 'discard',
|
||||
99 => 'subscribe',
|
||||
100 => 'unsubscribe',
|
||||
101 => 'psubscribe',
|
||||
102 => 'punsubscribe',
|
||||
103 => 'publish',
|
||||
104 => 'config',
|
||||
105 => 'persist',
|
||||
106 => 'strlen',
|
||||
107 => 'setrange',
|
||||
108 => 'getrange',
|
||||
109 => 'setbit',
|
||||
110 => 'getbit',
|
||||
111 => 'rpushx',
|
||||
112 => 'lpushx',
|
||||
113 => 'linsert',
|
||||
114 => 'brpoplpush',
|
||||
115 => 'zrevrangebyscore',
|
||||
116 => 'watch',
|
||||
117 => 'unwatch',
|
||||
118 => 'object',
|
||||
119 => 'slowlog',
|
||||
120 => 'client',
|
||||
121 => 'pttl',
|
||||
122 => 'pexpire',
|
||||
123 => 'pexpireat',
|
||||
124 => 'psetex',
|
||||
125 => 'incrbyfloat',
|
||||
126 => 'hincrbyfloat',
|
||||
127 => 'eval',
|
||||
128 => 'evalsha',
|
||||
129 => 'script',
|
||||
130 => 'time',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ class ServerVersionNextTest extends ServerVersionTestCase
|
||||
*/
|
||||
public function getExpectedVersion()
|
||||
{
|
||||
return '2.6';
|
||||
return '3.0';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user