## db - 切换数据库
~~~
use \api\Redis;
// 切换成1号数据库
Redis::db(1);
~~~
<br/>
## key - 设置KEY
~~~
use \api\Redis;
// @param:key名称
// @param:操作类型,例如,get、set、hgetall,指定本次需要执行的操作
// @param:key前缀
Redis::key('key', 'get');
~~~
>框架提供了redis快捷操作函数,以下的例子均已快速操作
>redis(['key', 'get', 'prefis']) 等价于 \api\Redis::key('key', 'get', 'prefix');
>建议开发中也使用 redis('key')的写法
<br/>
## get - 读取redis
~~~
// 以下案例均已 eapi:key为操作的KEY,文档中只列出了最常用的操作,其他操作请查看redis文档
// 只需要注意参数传递即可
// get
redis(['key', 'get', 'eapi'])->get();
// mget
redis([
['key_1', 'key_2'], 'mget', 'eapi'
])->get();
// getset,读取KEY后重新赋值
redis([
'key', 'getset', 'eapi'
])->get('new_value');
// llen,获取list长度
redis([
'key', 'llen', 'eapi'
])->get();
// lindex,返回列表key中,下标为index的元素
redis([
'key', 'lindex', 'eapi'
])->get(1);
// lrange
redis([
'key', 'lrange', 'eapi'
])->get(0, -1);
// smembers,返回set集合key中的所有成员
redis([
'key', 'smembers', 'eapi'
])->get();
// sismember,判断set集合是否包含某个元素
redis([
'key', 'sismember', 'eapi'
])->get('member');
// zscore,返回有序集 key 中,成员 member 的 score 值
redis([
'key', 'zscore', 'eapi'
])->get('member');
// zrange,通过score从小到大
redis([
'key', 'zrange', 'eapi'
])->get(0, -1);
// zrevrange,通过score从大到小
redis([
'key', 'zrevrange', 'eapi'
])->get(0, -1);
// hlen,返回哈希表key中域的数量
redis([
'key', 'hlen', 'eapi'
])->get();
// hget
redis([
'key', 'hget', 'eapi'
])->get('field');
// hgetall
redis([
'key', 'hgetall', 'eapi'
])->get();
// hkeys
redis([
'key', 'hkeys', 'eapi'
])->get();
// hvals
redis([
'key', 'hvals', 'eapi'
])->get();
~~~
<br/>
## set - 写入redis
~~~
// 以下案例均已 eapi:key为操作的KEY,文档中只列出了最常用的操作,其他操作请查看redis文档
// 只需要注意参数传递即可
// set
redis([
'key', 'set', 'eapi'
])->set('val');
// 如果set写入的是数组,会自动转换成json
redis([
'key', 'set', 'eapi'
])->set([
'id' => 1,
'name' => 'eapi'
]);
// setex,设置5秒过期
redis([
'key', 'setex', 'eapi'
])->set(5, 'val');
// setnx,排他
redis([
'key', 'setnx', 'eapi'
])->set('val');
// incr递增
redis([
'key', 'incr', 'eapi'
])->set();
// incrby指定递增值
redis([
'key', 'incrby', 'eapi'
])->set(5);
// decr递减
redis([
'key', 'decr', 'eapi'
])->set();
// decrby指定递减值
redis([
'key', 'decrby', 'eapi'
])->set(5);
// hincrby,HASH表中的field字段递增5
redis([
'key', 'hincrby', 'eapi'
])->set('field', 5);
// hset
redis([
'key', 'hset', 'eapi'
])->set('field', 'val');
// hmset
redis([
'key', 'hmset', 'eapi'
])->set([
'field1' => 'val',
'field2' => 'val'
]);
// lpush
redis([
'key', 'lpush', 'eapi'
])->set('val');
// rpush
redis([
'key', 'rpush', 'eapi'
])->set('val');
// lpushx
redis([
'key', 'lpushx', 'eapi'
])->set('val');
// rpushx
redis([
'key', 'rpushx', 'eapi'
])->set('val');
// lset
redis([
'key', 'lset', 'eapi'
])->set(5, 'val');
// sadd
redis([
'key', 'sadd', 'eapi'
])->set('val');
// zadd
redis([
'key', 'zadd', 'eapi'
])->set(5, 'field');
// zincrby
redis([
'key', 'zincrby', 'eapi'
])->set(5, 'field');
~~~
<br/>
## del - 删除
~~~
// 以下案例均已 eapi:key为操作的KEY,文档中只列出了最常用的操作,其他操作请查看redis文档
// 只需要注意参数传递即可
// del
redis([
'key', 'del', 'eapi'
])->del();
// lpop
redis([
'key', 'lpop', 'eapi'
])->del();
// rpop
redis([
'key', 'rpop', 'eapi'
])->del();
// lrem
redis([
'key', 'lrem', 'eapi'
])->del('val', 10);
// ltrim
redis([
'key', 'ltrim', 'eapi'
])->del(0, 10);
// srem
redis([
'key', 'srem', 'eapi'
])->del('val');
// spop
redis([
'key', 'spop', 'eapi'
])->del(3);
// zrem
redis([
'key', 'zrem', 'eapi'
])->del('val');
// hdel
redis([
'key', 'hdel', 'eapi'
])->del([
'field1', 'field2'
]);
~~~
<br/>
## lock - 加锁
~~~
use \api\Redis;
// 创建锁
// @param 锁名称
// @param 锁过期时间,单位秒
$lock = Redis::lock('test', 1);
// 如果没拿到锁则返回错误信息
if ( ! $lock)
{
fail(101, '请求错误,请稍候重试');
}
// 具体的业务处理...
// 处理完成后释放锁
Redis::unlock('test');
~~~
<br/>
## unlock - 释放锁
~~~
use \api\Redis;
// @param 锁名称
Redis::unlock('test');
~~~
<br/>
## pipe - 返回管道符,用于批量操作
~~~
use \api\Redis;
// 创建管道
$pipe = Redis::pipe();
// 使用管道执行操作
$pipe->zincrby('order', 100, 1);
$pipe->zincrby('order', 100, 1);
$pipe->zincrby('order', 100, 1);
$pipe->zincrby('order', 100, 1);
$pipe->zincrby('order', 100, 1);
// 执行
$pipe->exec();
~~~
<br/>
## clear - 批量删除
~~~
// 批量删除 eapi:key_1、eapi:key_2
redis([
'key*', 'del', 'eapi'
])->clear();
~~~
<br/>
## flush - 清空数据库
~~~
use \api\Redis;
Redis::flush();
~~~
<br/>
## dbSize - 返回KEY数量
~~~
use \api\Redis;
Redis::dbSize();
~~~
<br/>
## info - 返回数据库信息
~~~
use \api\Redis;
Redis::info();
~~~
<br/>
## save - 落地数据
~~~
use \api\Redis;
Redis::save();
~~~