项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。
当我们需要缓存数据很多,但是查数据库很慢的时候,这个时候我们可以用到缓存。在这里我用的缓存是Cache。
代码如下:
public function storedValue()
{
$data=Order::paginate(10);
$info=Cache::set('ahao',$data,3600);
try {
//如果存入缓存中 则提示添加缓存成功
if($info){
return json(['code'=>'200','msg'=>'添加缓存成功','data'=>$data]);
}else{
return json(['code'=>'400','msg'=>'添加缓存失败','data'=>'']);
}
}catch (\Exception $e){
echo $e;
}
}
效果如下:
取值的代码如下:
public function redisValue()
{
$data=Cache::get('ahao');
if($data){
return json(['code'=>'200','msg'=>'缓存查询成功','data'=>$data]);
}else{
$data=Order::select();
return json(['code'=>'201','msg'=>'数据库查询成功','data'=>$data]);
}
}
效果:
redis 存值取值
public function redis(){
//实例化redis
$redis=new Redis();
//右侧添加
$data=$redis->lpush("mylist", "v1", "v2", "v3");
//搜索值
$res=$redis->lrange('mylist',0,-1);
print_r($data);
echo '<br>';
print_r($res);
echo '<br>';
echo '<br>';
//右侧添加
$da=$redis->rpush("list", "v1", "v2", "v3","ahao","2112");
//搜索值
$re=$redis->lrange('list',0,-1);
print_r($da);
echo '<br>';
print_r($re);
}