Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 96 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

![](http://webtools.qiniudn.com/master-LOGO-20150410_50.jpg)

## 前言
## 1、前言

Redis在PHP开发中运用场景已经无处不在,小到简单缓存大到数据库或消息队列都可以使用Redis来进行实现,基于PhalApi2的出世,PhalApi2-Redis也紧接着进行了本次适配来提供更好的开发体验,PhalApi2-Redis提供相对于原生PhalApi2-RedisCache缓存更强大的Redis操作以及完善的封装机制,帮助开发者更好的使用Redis低成本的来解决实际的业务问题.

Expand All @@ -15,7 +15,7 @@ Redis在PHP开发中运用场景已经无处不在,小到简单缓存大到数

项目码云地址 : [https://gitee.com/wenzhenxi/phalapi2-redis](https://gitee.com/wenzhenxi/phalapi2-redis "项目码云地址")

## 安装配置Redis
## 2、安装配置Redis

基于Liunx强烈推荐使用oneinstack在配置php 和 Redis同事会将依赖打包好:

Expand Down Expand Up @@ -44,9 +44,7 @@ extension = redis.so
此后可以在phpinfo()中看到redis即可


## 安装PhalApi2-Redis

在项目的composer.json文件中,添加:
## 3、安装PhalApi2-Redis:项目根目录composer.json添加

```
{
Expand All @@ -56,11 +54,20 @@ extension = redis.so
}
```

配置好后,执行composer update更新操作即可。
+ 执行composer update更新

## 4、惰性加载Redis配置:**/config/di.php**

```
// 惰性加载Redis
$di->redis = function () {
return new \Xuepengdong\Phalapiredis\Lite(\PhalApi\DI()->config->get("app.redis.servers"));
};
```


## 配置文件
我们需要在 **./config/app.php** 配置文件中追加以下配置:

## 5、配置redis账号密码:/config/app.php
```
/**
* 扩展类库 - Redis扩展
Expand All @@ -85,47 +92,87 @@ extension = redis.so

```

## 入门使用

初始化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(键名, 库名);

```
## 6、入门使用

+ **永久键值队**

```
// 存入永久的键值队
\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->set_rPush(队列键名, 值, 库名);

// 读取队列右边 如果没有读取到阻塞一定时间(阻塞时间或读取配置文件blocking的值)
\PhalApi\DI()->redis->get_Brpop(队列键名,值, 库名);
```

+ **获取队列**

```
// 读取队列左边
\PhalApi\DI()->redis->get_lpop(队列键名, 库名);

// 读取队列右边
\PhalApi\DI()->redis->get_rPop(队列键名, 库名);
```

+ **获取指定位置**

```
//返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)
\PhalApi\DI()->redis->get_lRange(队列键名, $start, $end);
```

+ **截取指定位置**

```
//截取名称为key的list,保留start至end之间的元素,end为 -1 ,返回所有
\PhalApi\DI()->redis->get_lTrim(键名,$start, $end, 库名);
```

+ **获取key的生存时间**

```
\PhalApi\DI()->redis->get_lTrim(键名, 库名);
```

+ **判断key是否存在**

```
\PhalApi\DI()->redis->get_exists(键名, 库名);
```

+ **其他**

```
// 删除一个键值队适用于所有
\PhalApi\DI()->redis->del(键名, 库名);
// 自动增长
\PhalApi\DI()->redis->get_incr(键名, 库名);
// 切换DB并且获得操作实例
\PhalApi\DI()->redis->get_redis(键名, 库名);
```


**如果大家有更好的建议可以私聊或加入到PhalApi大家庭中前来一同维护PhalApi**
Expand Down
8 changes: 6 additions & 2 deletions src/Lite.php
Original file line number Diff line number Diff line change
Expand Up @@ -267,8 +267,12 @@ protected function get_lRange($key, $start, $end){
*/
protected function get_lTrim($key, $start, $end){
$rs = $this->redis->lTrim($this->formatKey($key), $start, $end);
foreach($rs as $k => $v){
$rs[$k] = $this->unformatValue($v);
if(is_array($rs)){
foreach($rs as $k => $v){
$rs[$k] = $this->unformatValue($v);
}
}else{
$rs = $this->unformatValue($rs);
}
return $rs;
}
Expand Down