1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| \Redis::set('str','123'); $data = \Redis::get('library'); $data = \Redis::del('library'); $da = \Redis::exists('library'); \Redis::append('str','_123'); \Redis::get('str'); \Redis::strlen('str'); \Redis::rename('str','str2'); \Redis::expire('str2',10); $data = \Redis::ttl('str2'); $data = \Redis::substr('str2',0,2); $data = \Redis::keys('st*'); $data = \Redis::lindex('str2',1); dd($data);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $data = [1,2,3,4,5,6,'wa','oo','op','bar1','bar0']; \Redis::expire('set2',10); \Redis::rpush('list1','bar1'); \Redis::rpush('list1','bar0'); \Redis::rpush('list1',$data); $data = \Redis::lpop('list1'); $data = \Redis::llen('list1'); $data = \Redis::lrange('list1',0,-1); $data = \Redis::lindex('list1',9); \Redis::ltrim('list1',0,3); $data = \Redis::lrange('list1',0,-1); \Redis::rpush('list2','ab1'); \Redis::rpoplpush('list1','list2'); \Redis::rpoplpush('list2','list2'); \Redis::linsert('list2','before','ab1','123'); \Redis::linsert('list2','after','ab1','456'); $data = \Redis::lrange('list2',0,-1);
|
1 2 3 4 5 6 7
| \Redis::sadd('set1','ab'); \Redis::sadd('set1','cd'); \Redis::sadd('set1','ef'); \Redis::srem('set1','ef'); \Redis::smove('set1','set2','ab'); $data = \Redis::smembers('set2');
|
1 2 3 4 5 6 7 8 9 10
| \Redis::zadd('zset1',1,'ab'); \Redis::zadd('zset1',2,'cd'); \Redis::zadd('zset1',10,'ef'); \Redis::zrem('zset1','ef'); $data = \Redis::zrangebyscore('zset1',2,9); $data = \Redis::zcard('zset1'); $data = \Redis::zscore('zset1','ef'); \Redis::zremrangebyscore('zset1',0,2); $data = \Redis::zrange('zset1',0,-1);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| \Redis::hset('hash1','key1',123); \Redis::hdel('hash1','key1'); $data = \Redis::hget('hash1','key1'); $data = \Redis::hlen('hash1'); \Redis::hsetnx('hash1','key1','v2'); \Redis::hmset('hash1',$data); $data1 = [0,1,2,3,4,5,6,7,8,9]; $data = \Redis::hmget('hash1',$data1); $data = \Redis::hget('hash1','key1'); $data = \Redis::hgetall('hash1'); $data = \Redis::hvals('hash1'); \Redis::select(2); \Redis::set('foo','bar'); \Redis::move('foo',2); $data = \Redis::get('foo');
|
1 2 3 4 5 6 7 8
| \Redis::multi(); \Redis::set('book-name','Mastering C++ in 21 days'); \Redis::get('book-name'); \Redis::sadd('tag','c++','Programming','Mastering Series'); \Redis::smembers('tag'); \Redis::exec(); dd($data);
|
- 普通得set/get操作,set操作,如果键名存在,则会覆盖原有得值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $redis = app("redis.connection");
$redis->set('library' , 'phpredis');
$redis->get("library");
set/get 多个key-value
$mkv = array( "user:001"=>'First user',
"user:002"=>"Second user",
"user:003"=>"Third user" );
$redis->mset($mkv);
$retval = $redis->mget( array_keys($mkv) );
|
setex 存放带存储时效的记录
1
| $redis->setex("library" , 10 , 'phpredis');
|
add 操作,不会覆盖已有值
1 2 3
| $redis->setnx("foo" , 12);
$redis->setnx('foo' , 34);
|
- getset 是 set 的变种,结果返回替换前的值
1
| $redis->getset('foo' , 56);
|
- incrby/incr/decrby/decr 对值得递增和递减
1 2 3
| $redis->incr('foo');
$redis->incrby('foo' , 2);
|
- exists 检测是否存在 存在返回1 否则返回 0
- type 类型检测,字符串返回 string ,列表返回 list , set表返回 set/zset ,hash表返回 hash
- append 连接到已存在字符串
1 2 3
| $redis->get('str');
$redis->append('str' , "_123");
|
- setrange 部分替换操作,并返回字符串长度
1 2 3
| $redis->setrange('str' , 0 , 'abc');
$redis->setrange('str' , 2 , 'cd');
|
- substr 部分获取操作
1 2 3
| $redis->substr('str' , 0 , 2);
$redis->strlen('str');
|
- setbit 位存储
1
| $redis->setbit('library' , 31 ,1);
|
getbit 位获取
1
| $redis->getbit('library' , 31);
|
- keys 模糊查找功能,支持 * 号 以及 ?号 (匹配一个字符)
1 2 3 4 5 6 7
| $redis->set('foo1',123);
$redis->set('foo2' , 456);
$redis->keys('foo*');
$redis->keys('f?0?');
|
- randomkey 随机返回一个key
- rename/renamenx 方式对key进行改名,所不同的是renamenx不允许改成已存在的key
1
| $redis->rename('str','str2');
|
- expire 设置key-value的时效性
1 2 3 4 5 6 7 8 9
| ttl 获取剩余有效期
persist 重新设置为永久存储
$redis->expire('foo' , 10);
$redis->ttl('foo');
$redis->persist("fool");
|
- dbsize 返回redis当前数据库的记录总数
- 队列操作
rpush/rpushx 有序列表操作,从队列后插入元素;
lpush/lpushx 和 rpush/rpushx 的区别是插入到队列的头部,同上,‘x’含义是只对已存在的key进行操作
1 2 3 4 5 6 7
| $redis->rpush('foolist' , 'bar1');
$redis->rpush('foolist' , 'bar0');
$redis->rpushx('foolist' , 'bar2');
$redis->llen('foolist');
|
- lrange 返回队列中一个区间的元素
1 2 3
| $redis->lrange('foolist' , 0 , 1);
$redis->lrange('foolist' , 0 , -1);
|
- lindex 返回指定顺序位置的list元素
1
| $redis->lindex('foolist' , 1);
|
- lset 修改队列中指定位置的value
1
| $redis->lset('foolist' , 1 ,'123');
|
- lrem 删除队列中左起指定数量的字符
1
| $redis->lrem("foolist" , 1 , '_');
|
- lpop/rpop 类似栈结构地弹出(并删除)最左或最右的一个元素
1 2 3
| $redis->lpop('foolist');
$redis->rpop('foolist');
|
- ltrim 队列修改,保留左边起若干元素,其余删除
1
| $redis->ltrim('foolist' , 0 , 1);
|
- rpoplpush 从一个队列中pop元素并push到另一个队列
1 2 3 4 5 6 7 8 9 10 11
| $redis->rpush('list1' , 'ab0');
$redis->rpush('list1','ab1');
$redis->rpush('list2' , 'ab2');
$redis->rpush('list2' , "ab3");
$redis->rpoplpush('list1' , "list2");
$redis->rpoplpush('list2' , 'list2');
|
- linsert在队列的中间指定元素前或后插入元素
1 2 3
| $redis->linsert('list2' , 'before' , 'ab1' , '123');
$redis->linser('list2' , 'after' , 'ab1' , "456");
|
- blpop/brpop 阻塞并等待一个队列不为空时,在pop出最左或最右的一个元素(这个功能在php以外可以说非常好用)
1
| $redis->blpop('list3' , 10) ;
|
- set集合操作
sadd增加set集合元素,返回true,重复返回false
1 2 3 4 5 6 7
| $redis->sadd('set1' , 'ab');
$redis->sadd('set1' , 'cd');
$redis->sadd('set1' , 'ef');
$redis->smembers("set1");
|
- srem 移除指定元素
1
| $redis->srem('set1' , 'cd');
|
- spop弹出首元素
- smove移动当前set集合的指定元素到另一个set集合
1 2 3
| $redis->sadd("set2",'123');
$redis->smove('set1','set2','ab');
|
- scard 返回当前set表元素个数
- sismember判断元素是否属于当前set集合
1
| $redis->sismember('set2','123');
|
- smembers返回当前set集合的所有元素
1
| $redis->smember('set2');
|
- sinter/sunion/sdiff 返回两个表中的交集/并集/补集
1 2 3
| $redis->sadd('set1' , 'ab');
$redis->sinter('set2' , 'set1');
|
sinterstore/sunionstore/sdiffstore 将两个表交集/并集/补集元素copy到第三个表中
1 2 3 4 5
| $redis->set('foo' , 0);
$redis->sinterstore('foo' , 'set1');
$redis->sinterstore('foo' , array('set1' , 'set2'));
|
srandmember 返回表中一个随即元素
1
| $redis->srandmember('set1');
|
有序 set 表操作
zadd 增加元素,并设置序号,成功返回true,重复返回false
1 2 3 4 5
| $redis->zadd("zset1" , 1 , 'ab');
$redis->zadd('zset1' , 2 , 'cd');
$redis->zadd('zset1' , 3 , 'ef');
|
zincrBy对指定元素索引值的增减,改变元素排序次序
1
| $redis->zincryBy('zset1' , 10 , 'ab');
|
zrem 移除指定元素
1
| $redis->zrem('zset1' , 'ef');
|
zrange按位置次序返回表中指定区间的元素
1 2 3 4
| $redis->zrange("zset1" , 0 , 1);
$redis->zrange('zset1' , 1 , -1);
|
zrevrange同上,返回表中指定区间的元素,按次序倒排
1
| $redis->zrevrange('zset1' , 0 ,-1);
|
zrangeByscore/zrevrangeByscore 按顺序/降序返回表中指定索引区间的元素
1 2 3 4 5 6 7
| $redis->zadd('zset1' , 3 , 'ef');
$redis->zadd('zset1' , 5 , 'gh');
$redis->zrangeByscore('zset1' , 2, 9);
$redis->zrangeByscore('zset1' , 2 ,9 ,array('withscores'=>true, 'limit'=>array(1,2)));
|
zcount统计一个索引区间的元素个数
1 2 3
| $redis->zcount('zset1' , 3 , 5);
$redis->zcount('zset1' , '(3' , 5 ) );
|
zcard 统计元素个数
zremrangeByscore删除一个索引区间的元素
1
| $redis->zremrangeByscore('zset1' , 0 , 2);
|
zrank/zrevrank返回元素所在表顺序/降序的位置(不是索引)
1
| $redis->zrank('zset1' , 'ef');
|
zremrangeByrank删除表中指定位置区间的元素
1
| $redis->zremrangeByrank('zset1' , 0 , 10);
|
hash表操作
1 2 3 4 5
| $redis->hset('hash1' , 'key1' , 'v1');
$redis->hset("hash1" , 'key2' , 'v2');
$redis->hget('hash1' , 'key1');
|
hexists返回hash表中的指定key是否存在
1
| $redis->hexists("hash1" , 'key1');
|
hdel 删除hash表中指定key的元素
1
| $redis->hdel('hash' , 'key2');
|
hlen 返回hash表元素个数
hsetnx增加一个元素,但不能重复
1 2 3
| $redis->hsetnx('hash1' , 'key1' , 'v2');
$redis->hsetnx('hash1' , 'key2' , 'v2');
|
hmset/hmget存取多个元素到hash表
1 2 3
| $redis->hmset( 'hash1' , array('key3'=>'v3' , 'key4'=>'v4' ) );
$redis->hmget( 'hash1' , array('key3' , 'key4') );
|
hincryby 对指定key进行累加
1 2 3
| $redis->hincryBy('hash1' , 'key5' , 3);
$redis->hincryBy("hash1" , 'key5' , 10);
|
hkeys返回hash表中的所有key
hvals 返回hash表中的所有value
hgetall返回整个hash表元素
1
| $redis->hgetall('hash1');
|
排序操作
sort排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $redis->rpush('tab' , 3);
$redis->rpush('tab' , 2);
$redis->rpush('tab' , '17');
$redis->sort('tab');
$redis->sort('tab' , array('sort'=>'desc'));
$redis->sort('tab' , array('limit'=>array(1,2)));
$redis->sort('tab' , array('limit'=>array('alpha'=>true)));
$redis->sort('tab' , array('limit'=>array('store'=>'ordered')));
$redis->sort('tab' , array("limit"=>array('get'=>'pre_*')));
|
Redis 管理操作
info显示服务当状态信息
select指定要操作的数据库
flushdb清空当前库
move移动当库的元素到其它数据库
1 2 3
| $redis->set('tomove' , 'bar');
$redis->move('tomove' , 4);
|
slaveof 配置从服务器
1 2 3
| $redis->slaveof('127.0.0.1' , 80);
$redis->slaveof();
|
同步保存服务器数据到磁盘
异步保存服务器数据到磁盘
返回最后更新磁盘的时间