Loading repository data…
Loading repository data…
cheprasov / repository
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
['SET', 'foo', 'bar'].6.0.5, 5.0.5, 4.0.14, 3.2.8, 3.0.7, 2.8.24, 2.6.17.7.4, 7.3, 7.2, 7.1, 7.0, 5.6, 5.5, HHVM.Please see list of commands here ./COMMANDS.md
$config = [
// Optional. Default = '127.0.0.1:6379'. You can use 'unix:///tmp/redis.sock'
'server' => '127.0.0.1:6379',
// Optional. Default = 1
// The timeout for reading/writing data over the socket
'timeout' => 2,
// Optional. Default = null
// See more here: http://php.net/manual/en/function.stream-socket-client.php
'connection' => [
// Optional. Default = ini_get("default_socket_timeout")
// The timeout only applies while making connecting the socket
'timeout' => 2,
// Optional. Default = STREAM_CLIENT_CONNECT
// Bitmask field which may be set to any combination of connection flags.
// Currently the select of connection flags is limited to STREAM_CLIENT_CONNECT (default),
// STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.
'flags' => STREAM_CLIENT_CONNECT
],
// Optional. Specify version to avoid some unexpected errors.
'version' => '4.0.10',
// Optional. Use it only if Redis server requires password (AUTH)
'password' => 'some-password',
// Optional. Use it, if you want to select not default db (db != 0) on connect
'database' => 1,
// Optional. Array with configs for RedisCluster support
'cluster' => [
'enabled' => false,
// Optional. Default = []. Map of cluster slots and servers
// array(max_slot => server [, ...])
// Examples for Cluster with 3 Nodes:
'clusters' => [
5460 => '127.0.0.1:7001', // slots from 0 to 5460
10922 => '127.0.0.1:7002', // slots from 5461 to 10922
16383 => '127.0.0.1:7003', // slots from 10923 to 16383
],
// Optional. Default = false.
// Use the param to update cluster slot map below on init RedisClient.
// RedisClient will execute command CLUSTER SLOTS to get map.
'init_on_start' => false,
// Optional. Default = false.
// If Redis returns error -MOVED then RedisClient will execute
// command CLUSTER SLOTS to update cluster slot map
'init_on_error_moved' => true,
// Optional. Defatult = 0.05 sec. It is timeout before next attempt on TRYAGAIN error.
'timeout_on_error_tryagain' => 0.25, // sec
]
];
<?php
namespace Examples;
require (dirname(__DIR__).'/vendor/autoload.php');
// or require (dirname(__DIR__).'/src/autoloader.php');
use RedisClient\RedisClient;
use RedisClient\Client\Version\RedisClient2x6;
use RedisClient\ClientFactory;
// Example 1. Create new Instance for Redis version 6.0.x with config via factory
$Redis = ClientFactory::create([
'server' => '127.0.0.1:6379', // or 'unix:///tmp/redis.sock'
'timeout' => 2,
'version' => '6.0'
]);
echo 'RedisClient: '. $Redis->getSupportedVersion() . PHP_EOL; // RedisClient: 2.8
// Example 2. Create new Instance without config. Client will use default config.
$Redis = new RedisClient();
// By default, the client works with the latest stable version of Redis.
echo 'RedisClient: '. $Redis->getSupportedVersion() . PHP_EOL; // RedisClient: 3.2
echo 'Redis: '. $Redis->info('Server')['redis_version'] . PHP_EOL; // Redis: 3.0.3
// Example 3. Create new Instance with config
// By default, the client works with the latest stable version of Redis.
$Redis = new RedisClient([
'server' => '127.0.0.1:6387', // or 'unix:///tmp/redis.sock'
'timeout' => 2
]);
echo 'RedisClient: '. $Redis->getSupportedVersion() . PHP_EOL; // RedisClient: 3.2
echo 'Redis: '. $Redis->info('Server')['redis_version'] . PHP_EOL; // Redis: 3.2.0
// Example 4. Create new Instance for Redis version 2.6.x with config
$Redis = new RedisClient2x6([
'server' => 'tcp://127.0.0.1:6379', // or 'unix:///tmp/redis.sock'
'timeout' => 2
]);
echo 'RedisClient: '. $Redis->getSupportedVersion() . PHP_EOL; // RedisClient: 2.6
Please, see examples here: https://github.com/cheprasov/php-redis-client/tree/master/examples
Download composer:
wget -nc http://getcomposer.org/composer.phar
and add dependency to your project:
php composer.phar require cheprasov/php-redis-client
Run Docker container with Redis for tests https://hub.docker.com/r/cheprasov/redis-for-tests/
Run Docker container with Redis Cluster for tests https://hub.docker.com/r/cheprasov/redis-cluster-for-tests/
To run tests type in console:
./vendor/bin/phpunit
Feel free to fork project, fix bugs and finally request for pull