-
-
qq_往事却_0
2016-06-23
- 这里有关于redis的简单应用
-
0赞 · 0采集
-
-
前360资深后端与全栈工程师
2016-05-10
- 把Json转换时,默认转换成对象,记上true,就转换成数组了
-
0赞 · 0采集
-
-
前360资深后端与全栈工程师
2016-05-10
- 放沟沟壑壑
-
0赞 · 0采集
-
-
前360资深后端与全栈工程师
2016-05-10
- 获取数据库的句柄
-
0赞 · 0采集
-
-
前360资深后端与全栈工程师
2016-05-10
- Redis数据库的使用
-
0赞 · 0采集
-
-
听说名字取得越长越好就不会被别人打了
2016-04-20
- flushdb清空redis数据
-
0赞 · 0采集
-
-
林静听蝉
2016-03-05
- QueryPhone.php
<?php
namespace app;
use libs\ImHttpRequest;
use libs\ImRedis;
class QueryPhone{
//定义hash的key
const CACHE_KEY = 'PHONE:INFO';
public static function query($phone){
$ret = [];
if (self::verifyPhone($phone)){
$redisKey = substr($phone,0,7);
$phoneInfo = ImRedis::getRedis()->hGet(self::CACHE_KEY,$redisKey);//从数据库中读取数据
if ($phoneInfo) {
$ret = json_decode($phoneInfo,true);//如果$phoneInfo为真就转化为数组,true要写上,不然会转化为对象
$ret['msg'] = '由慕课网提供数据';
}else{
$response = ImHttpRequest::request(self::TAOBAO_API,['tel'=>$phone]);
$data = self::formatData($response);
if ($data) {
$json = json_encode($data);//把数组转化为JSON格式
ImRedis::getRedis()->hSet(self::CACHE_KEY,$redisKey,$json);//把数据写到数据库中
$data['msg'] = '由阿里巴巴提供数据';
$ret = $data;
}
}
}
return $ret;
}
}
api.php
<?php
require_once "autoload.php";
$info = app\QueryPhone::query('13987654321');
var_dump($info);
刷新浏览器 (从数据库中读取数据)
msg = 由慕课网提供数据
修改api.php里的电话号码
$info = app\QueryPhone::query('13623323388');
第一次刷新浏览器 (从淘宝API获取数据)
msg = 由阿里巴巴提供数据
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-05
- QueryPhone.php
<?php
namespace app;
use libs\ImHttpRequest;
use libs\ImRedis;
class QueryPhone{
//定义hash的key
const CACHE_KEY = 'PHONE:INFO';
public static function query($phone){
if (self::verifyPhone($phone)){
$redisKey = substr($phone,0,7);
$response = ImHttpRequest::request(self::TAOBAO_API,['tel'=>$phone]);
$data = self::formatData($response);
if ($data) {
$json = json_encode($data);//把数组转化为JSON格式
ImRedis::getRedis()->hSet(self::CACHE_KEY,$redisKey,$json);//把数据写到数据库中
}
}
}
}
刷新浏览器
cmd
keys *
"PHONE:INFO" 这个key已经写进去了
hgetall PHONE:INFO
1) "1398765" 号段的信息也已写进去
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-05
- QueryPhone.php
<?php
namespace app;
use libs\ImHttpRequest;
use libs\ImRedis;
class QueryPhone{
//定义hash的key
const CACHE_KEY = 'PHONE:INFO';
public static function query($phone){
if (self::verifyPhone($phone)){
$redisKey = substr($phone,0,7);
$response = ImHttpRequest::request(self::TAOBAO_API,['tel'=>$phone]);
$data = self::formatData($response);
if ($data) {
$json = json_encode($data);//把数组转化为JSON格式
//var_dump($json);//打印出来返回false[编码问题,需要把GBK转换为Unicode]
}
}
}
public static function formatData($data = null){
$ret = false;
if ($data) {
preg_match_all("/(\w+):'([^']+)/",$data,$res);//用正则把数据匹配出来
//3-4 缓存数据到数据库(转换编码,把GBK转换为Unicode)
$items = array_combine($res[1],$res[2]);
foreach ($items as $key => $val) {
$ret[$key] = iconv('GB2312', 'UTF-8', $val);
}
}
return $ret;
}
}
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-04
- libs/ImRedis.php
<?php
/**
* 获取Redis数据库句柄
*/
namespace libs;
class ImRedis{
private static $redis;
public static function getRedis(){
//如果$redis不是\Redis的对象的话
if (!(self::$redis instanceof \Redis)) {
self::$redis = new \Redis();//重新初始化一下
self::$redis->connect('127.0.0.1',6379);//连接redis
}
return self::$redis;
}
}
测试redis模块能不能用
cmd
cd D:\redis\redis-2.6
set name imooc
get name
QueryPhone.php
<?php
namespace app;
use libs\ImHttpRequest;
use libs\ImRedis;
class QueryPhone{
public static function query($phone){
if (self::verifyPhone($phone)){
//测试是否能打印出来$name
$name = ImRedis::getRedis()->get('name');
var_dump($name);
die;
}
}
}
-
截图
0赞 · 0采集
-
-
林静听蝉
2016-03-04
- 3-4 缓存数据到数据库
cmd
cd D:\redis\redis-2.6(需切换到redis根目录)
redis-server.exe redis.conf #启动redis数据库服务
redis-cli.exe -h 127.0.0.1 -p 6379 #设置redis的IP地址和端口
set key1 helloredis #创建一条数据(key-value)
get key1 #获取数据(key)
redis-cli #查看redis是否启动
keys * #查看所有的数据
flushdb #清空数据库
-
截图
0赞 · 0采集
-
-
forever大陆
2016-02-26
- 缓存数据
-
截图
0赞 · 0采集