配置

修改 /config/properties/cache.php 文件

return [
'redis' => [
'name' => 'redis',
'uri' => [
'127.0.0.1:6379'
],
'minActive' => 8,
'maxActive' => 8,
'maxWait' => 8,
'maxWaitTime' => 3,
'maxIdleTime' => 60,
'timeout' => 8,
'db' => 0,
'prefix' => '',
'serialize' => 0,
],
'demoRedis' => [
'db' => 2,
'prefix' => 'demo_redis_',
]
];

redis可以配置多个实例,相同的配置仅需要在第一个实例配置一次即可

基本用法

获取redis对象:

  • 通过cache()函数
cache()->get('google');
  • 通过注入的方法:Inject(“实例名”),不填则使用默认
/**
* @Inject()
* @var \Swoft\Redis\Redis
*/
private $redis;

获取到redis对象后就可以调用下面的方法操作redis

class RedisController
{
/**
* @Inject()
* @var \Swoft\Redis\Redis
*/
private $redis;
/**
* @Inject("demoRedis")
* @var \Swoft\Redis\Redis
*/
private $demoRedis; public function set(){
return $this->redis->set('apple','www.apple.com');
} public function get(){
return cache()->get('google');
} public function set2(){
return $this->demoRedis->set('google','www.google.com');
} public function get2(){
return $this->demoRedis->get('google');
} public function hSet(){
return $this->redis->hSet('website','google','www.google.com');
} public function hGet(){
return $this->redis->hGet('website','google');
} public function hMset(){
$websites = [
'sina' => 'www.sina.com.cn',
'baidu' => 'www.baidu.com'
];
return cache()->hMset('website',$websites);
} public function hMget(){
return cache()->hMget('website',['baidu','google']);
} }

实际应用

1. 队列操作,队列存放10条商品记录,每次插入一条新记录就会删除掉一条最老的记录

    /**
* @return array
*/
public function queuein(){
//$data 模拟从数据库中查询出的数据
$data = [
'id' => rand(1,9999),
'goods_name' => '商品'.rand(0,99999),
'create_time' => date('Y-m-d')
];
$this->redis->lPush('goods',json_encode($data));
$this->redis->lTrim('goods',0,10);
$goods = array();
foreach($this->redis->lRange('goods',0,10) as $item){
$goods[] = json_decode($item);
}
return $goods;
}

2. 图片点赞,如果redis中存在该图片记录,则对应的赞 +1,如不存在则从数据库中查出然后存入redis

    /**
* @RequestMapping(route="thumb/{id}")
*/
public function thumb($id){
if($this->redis->exists('img_'.$id)){
$this->redis->hIncrBy('img_'.$id,'img_prise',1);
}else{
//$data 模拟从数据库中查询出的数据
$data = [
'img_id' => $id,
'img_prise' => rand(1,999),
'img_url' => md5(rand(999,99999))
];
$this->redis->hMset('img_'.$id,$data);
}
return $this->redis->hMget('img_'.$id, ['img_id','img_prise','img_url']);
}

最新文章

  1. LeetCode OJ1:Reverse Words in a String
  2. Maven的依赖和传递性质
  3. CSS样式优先级
  4. 使用sublime时报编码错误
  5. poolboy的坑
  6. Entityframework批量删除
  7. 不让input表单的输入框保存用户输入的历史记录
  8. Javascript教程:js异步模式编程的4种解决方法
  9. 3018: [Usaco2012 Nov]Distant Pastures
  10. mysql 时间格式化
  11. React-Native(六):React Native完整的demo项目
  12. 3、使用Gradle创建Libgdx项目
  13. (转)ReentrantLock实现原理及源码分析
  14. mybatis和hibernate中的懒加载
  15. 配置IPMI
  16. dubbo源码分析4——SPI机制_ExtensionFactory类的作用
  17. 论文阅读笔记九:SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED CRFS (DeepLabv1)(CVPR2014)
  18. HTML+CSS补充
  19. JSP自定义标签(标签处理器 tld文件)
  20. C#基础篇七类和静态成员

热门文章

  1. 第五章Bookstrap
  2. dll被设置为用记事本打开的解决方法
  3. sql server 与 sql server compact 互相数据导入
  4. C++ 基于凸包的Delaunay三角网生成算法
  5. Introducing Outflux: a smart way out of InfluxDB
  6. Vue01
  7. visual studio 2017下载地址
  8. EF Like
  9. (转)InnoDB与MyISAM引擎区别
  10. Java Web开发Session超时设置