PHP code example of veasin / ff-redis
1. Go to this page and download the library: Download veasin/ff-redis library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
veasin / ff-redis example snippets
use function ff\resource\redis;
$redis = redis('default'); // get/create default connection
$redis = redis('cache'); // get/create named connection
redis(null); // clear all connections + failure flags
['host' => '127.0.0.1', 'port' => 6379]
container('#resource.redis.ttl', 30); // 每 30 秒验证一次
container('#resource/redis:', fn($config) => {
$c = new \Swoole\Coroutine\Redis();
$c->connect($config['host'], $config['port'] ?? 6379);
return $c;
});
container('^#ext.queue.redis', \ff\queue\redis(...));
// 生产
ff\queue\redis('orders', ['order_id' => 123]);
ff\queue\redis('orders', 'plain text');
// 消费
ff\queue\redis('orders', fn($msg) => true); // ack
ff\queue\redis('orders', fn($msg) => false); // nack + requeue
ff\queue\redis('orders', fn($msg) => null); // nack + discard
ff\queue\redis('orders', fn($msg) => 5); // retry after 5 seconds
use function ff\queue\redis;
redis('orders', ['id' => 1]); // 生产
redis('orders', fn($m) => true); // 消费
redis('orders', fn($m) => true, ['timeout' => 10]); // 指定超时
container('#queue/redis', [
'config' => 'default', // 使用的 Redis 连接名(#redis.{name})
'prefix' => 'q:', // 队列 key 前缀
'timeout' => 10, // brPop 超时秒数,0 永久阻塞
]);
use function ff\cache\redis;
redis('key'); // read
redis('key', 'value'); // write
redis('key', null); // delete
redis(null); // flush all
redis('key', 'value', 60); // write + TTL
redis('key', 'value', ['ttl' => 60, 'config' => 'cfg']); // TTL + 配置名
redis('key', 'value', 'cfg'); // 配置名(string 简写)
// Batch
redis(['k1', 'k2']); // multi-get
redis(['k1' => 'v1']); // multi-set
cache(redis('my_key', middleware: ['ttl' => 60]), fn($next) => render());
cache(redis('my_key', 'fallback', middleware: 60), fn($next) => null);
container('#cache.redis', [
'host' => '127.0.0.1',
'port' => 6379,
'password' => 'secret',
'database' => 0,
]);
// 命名配置
container('#cache.redis.cfg', [
'ttl' => 3600,
'prefix' => 'c:',
]);
container('^#ext.queue.redis', \ff\queue\redis(...));
container('^#ext.cache.redis', \ff\cache\redis(...));