道者编程

php redis 的几种常见应用

一:缓存

缓存Mysql数据库,第一次把mysql数据提取到redis,并设置过期时间,如果redis数据不存在,则从mysql提取

<?php
date_default_timezone_set("PRC");


//实例化
$redis = new Redis();
$redis->connect('192.168.0.25',6379); //连接服务器 返回【true | false】
$redis->auth('123');  //登录验证密码,返回【true | false】

$redisCache = $redis->get('redisRow');  //获取Key为redisRow的value

if(empty($redisCache)){ //如果数据不存在,从数据库获取
	$mysql = new PDO("mysql:host=localhost;dbname=g","root","123",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));   
	$rs = $mysql -> query("SELECT project_name,description FROM js_project LIMIT 5");  
 	while($info = $rs->fetch()){  
		$att[] = $info;
	}
	$redisJson = json_encode($att,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); //转化数据
	$redis->setex('redisRow',10,$redisJson);//把数据保存到redis,设置过期时间为10秒
	$redisCache = $redisJson; 
}else{ //如果redis数据存在,从redis取出数据
	json_decode($redisCache,TRUE); 
	
}

echo $redisCache; 

 

二:简单队列

//实例化
$redis = new Redis();
$redis->connect('192.168.0.25',6379); //连接服务器 返回【true | false】
$redis->auth('123');  //登录验证密码,返回【true | false】

$nameList = 'nameList'; //队列名称

//进入4个队列
$redis->rpush($nameList, json_encode(['id' => 1,'name' => 'lijie']));
$redis->rpush($nameList, json_encode(['id' => 2,'name' => 'Job']));
$redis->rpush($nameList, json_encode(['id' => 3,'name' => 'Lilei']));
$redis->rpush($nameList, json_encode(['id' => 4,'name' => 'Chenk']));

$strCount = $redis->lrange($nameList, 0, -1); //0 -1表示查看所有队列
echo "当前队列数据为: ";
print_r($strCount);

$str = $redis->lpop($nameList); //出队列,rpush进队列,先进先出,$str为出去的队列
$strCount = $redis->lrange($nameList, 0, -1);
echo "当前队列数据为: 
";
print_r($strCount);

 三:简单计算器

//实例化
$redis = new Redis();
$redis->connect('192.168.0.25',6379); //连接服务器 返回【true | false】
$redis->auth('123');  //登录验证密码,返回【true | false】

$incrKey = 'incrKey';

//设置初始值
//$redis->set($incrKey, 0);

$redis->incr($incrKey); //请求一次加1

$incrKeyCount = $redis->get($incrKey);
echo $incrKeyCount;
 


最新评论:
我要评论:

看不清楚