Redis 几种应用场景
2017-06-06 15:50
197 查看
Redis 几种应用场景
字符串缓存
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $strKey = 'test'; $strKey1 ='test1'; //set $arrCache = [ 'name'=>'mysteryH', 'sex'=>'男', 'age'=>22 ]; $redis->set($strKey,json_encode($arrCache)); $redis->expire($strKey,300);//设置过期时间 $json_data = $redis->get($strKey); $data = json_decode($json_data); print_r($data->name); //hset $arrWeb =[ 'google'=>[ 'google.com', 'google.com.hk' ] ]; $redis->hSet($strKey1,'google',json_encode($arrWeb['google'])); $json_data = $redis->hGet($strKey1,'google'); $data = json_decode($json_data); print_r($data);
简单消息队列
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $strKey = 'queue'; //进队 $redis->rPush($strKey,json_encode(['id'=>1,'name'=>'name1'])); $redis->rPush($strKey,json_encode(['id'=>2,'name'=>'name2'])); $redis->rPush($strKey,json_encode(['id'=>3,'name'=>'name3'])); $redis->rPush($strKey,json_encode(['id'=>4,'name'=>'name4'])); echo "---进队成功---<br>"; //查看队列 $strCount = $redis->lRange($strKey,0,-1); echo "当前数据:"; print_r($strCount); //出队 $info = $redis->lPop($strKey); echo "<br>---".$info."---出队成功<br>"; //查看队列 $strCount = $redis->lRange($strKey,0,-1); echo "当前数据:"; print_r($strCount);
发布订阅
发布:<?php ini_set('default_socket_timeout',-1); $redis = new Redis(); $redis->connect('127.0.0.1',6379); $strChannel = 'channel'; $redis->publish($strChannel,"来自{$strChannel}的推送"); echo "-------{$strChannel}-------消息推送成功";
订阅:
<?php ini_set('default_socket_timeout',-1); $redis = new Redis(); $redis->connect('127.0.0.1',6379); $strChannel = 'channel'; //订阅 echo "等待-------{$strChannel}-------消息推送"; $redis->subscribe([$strChannel],'callback'); function callback($instance, $channelName, $message){ echo $message; }
排行榜
<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $strKey = 'rank'; $redis->zAdd($strKey,'50',json_encode(['name'=>'name1'])); $redis->zAdd($strKey,'100',json_encode(['name'=>'name2'])); 4000 $redis->zAdd($strKey,'20',json_encode(['name'=>'name3'])); $redis->zAdd($strKey,'60',json_encode(['name'=>'name4'])); $redis->zAdd($strKey,'40',json_encode(['name'=>'name5'])); $redis->zAdd($strKey,'80',json_encode(['name'=>'name6'])); $data1 = $redis->zRevRange($strKey,0,-1,true); echo "从大到小排序:<br>"; print_r($data1); $data2 = $redis->zRange($strKey,0,-1,true); echo "从小到大排序:<br>"; print_r($data2);
相关文章推荐
- Redis的几种数据结构,和各自应用场景的列举示例
- Redis几种数据类型的应用场景(转)
- Redis几种数据结构的应用场景
- Redis几种数据结构的应用场景
- RAM Disk的几种应用场景
- Redis作者谈Redis应用场景
- Redis的七种特性及其适合的应用场景
- Redis中7种集合类型应用场景
- Redis作者谈Redis应用场景
- Redis作者谈Redis应用场景
- Redis中7种集合类型应用场景
- Redis的七种武器及其适合的应用场景
- Redis应用场景
- Redis作者谈Redis应用场景
- Redis应用场景
- Redis作者谈Redis应用场景(转)
- Redis作者谈Redis应用场景
- [转]Redis作者谈Redis应用场景
- DB,Cache和Redis应用场景分析
- android 读取图片的几种应用场景