phalapi / redis
PhalApi 2.x 扩展库 - 扩展基础redisCache类功能,更适用于复杂场景下的Redis使用。
Requires
- php: >=5.3.3
This package is not auto-updated.
Last update: 2024-09-13 16:38:04 UTC
README
前言
Redis在PHP开发中的应用场景已经非常广泛,从小到简单的缓存到大到数据库或消息队列,都可以使用Redis来实现。基于PhalApi2的推出,PhalApi2-Redis也随即进行了本次适配,以提供更好的开发体验。PhalApi2-Redis相对于原生的PhalApi2-RedisCache缓存,提供了更强大的Redis操作以及完善的封装机制,帮助开发者以低成本解决实际的业务问题。
附上
项目GitHub地址:https://github.com/wenzhenxi/phalapi2-redis
项目码云地址: https://gitee.com/wenzhenxi/phalapi2-redis
安装和配置Redis
基于Linux,强烈推荐使用oneinstack来配置PHP和Redis,同时会将依赖打包好
oneinstack:https://oneinstack.com/
手动安装redis网上有很多教程,这里不再赘述,主要注意一下配置文件
databases 100 #redis库的最大数量默认16推荐修改100
requirepass phalapi #连接此redis的连接密码默认无密码推荐设置
手动安装php-redis依赖如下
//下载phpredis解压安装
wget https://github.com/nicolasff/phpredis/archive/master.zip
unzip master.zip -d phpredis
cd phpredis/phpredis-master
phpize
./configure
make && make install
//在php.ini中注册phpredis
extension = redis.so
之后可以在phpinfo()中看到redis即可
安装PhalApi2-Redis
在项目的composer.json文件中,添加:
{
"require": {
"phalapi/redis": "2.0.*"
}
}
配置好后,执行composer update更新操作即可。
配置文件
我们需要在 ./config/app.php 配置文件中追加以下配置:
/**
* 扩展类库 - Redis扩展
*/
'redis' => array(
//Redis链接配置项
'servers' => array(
'host' => '127.0.0.1', //Redis服务器地址
'port' => '6379', //Redis端口号
'prefix' => 'PhalApi_', //Redis-key前缀
'auth' => 'phalapi', //Redis链接密码
),
// Redis分库对应关系操作时直接使用名称无需使用数字来切换Redis库
'DB' => array(
'developers' => 1,
'user' => 2,
'code' => 3,
),
//使用阻塞式读取队列时的等待时间单位/秒
'blocking' => 5,
),
入门使用
初始化PhalApi2-Redis,入口文件index.php加入如下代码
// 惰性加载Redis
\PhalApi\DI()->redis = function () {
return new \PhalApi\Redis\Lite(\PhalApi\DI()->config->get("app.redis.servers"));
}c
常用基础操作(具体API可以查阅代码中src/Lite.php)
// 存入永久的键值队
\PhalApi\DI()->redis->set_forever(键名,值,库名);
// 获取永久的键值队
\PhalApi\DI()->redis->get_forever(键名, 库名);
// 存入一个有时效性的键值队,默认600秒
\PhalApi\DI()->redis->set_Time(键名,值,有效时间,库名);
// 获取一个有时效性的键值队
\PhalApi\DI()->redis->get_Time(键名, 库名);
// 写入队列左边
\PhalApi\DI()->redis->set_Lpush(队列键名,值, 库名);
// 读取队列右边
\PhalApi\DI()->redis->get_lpop(队列键名, 库名);
// 读取队列右边 如果没有读取到阻塞一定时间(阻塞时间或读取配置文件blocking的值)
\PhalApi\DI()->redis->get_Brpop(队列键名,值, 库名);
// 删除一个键值队适用于所有
\PhalApi\DI()->redis->del(键名, 库名);
// 自动增长
\PhalApi\DI()->redis->get_incr(键名, 库名);
// 切换DB并且获得操作实例
\PhalApi\DI()->redis->get_redis(键名, 库名);
如果大家有更好的建议可以私信或加入PhalApi大家庭中来共同维护PhalApi 注:作者能力有限,有说错的地方希望大家能够指出,也希望多多交流!