php中memcache 基本操作实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<!DOCTYPE html>
<html>
<head>
<title>memcache demo</title>
<meta http-equiv= "content-type" content= "text/html;chatset=utf-8" >
</head>
<body>
<?php
$server_ip = '127.0.0.1' ;
$server_port = 11211;
$memcache = new Memcache();
$memcache ->connect( $server_ip , $server_port );
$memcache ->add( "name1" , "user_name1" ,MEMCACHE_COMPRESSED,0);
$memcache ->add( "name2" , "user_name2" ,MEMCACHE_COMPRESSED,0);
$array1 = array ( 'name1' => 'jiajiam1' ,
'age1' =>12,
'country' => 'china' );
$memcache ->add( "other" , $array1 ,MEMCACHE_COMPRESSED,20);
$memcache ->set( "name3" , "user_name3" ,MEMCACHE_COMPRESSED,0);
$memcache ->replace( "name1" , "user_name_relpace" ,MEMCACHE_COMPRESSED,0);
$memcache ->replace( "123" , "12345" );
echo "name1:" . $memcache ->get( "name1" ). "<br/>" ;
$memcache -> delete ( "name1" );
echo "name1:" . $memcache ->get( "name1" ). "<br/>" ;
$array_get = array ( "name1" , "name2" , "name3" );
$result_get = $memcache ->get( $array_get );
foreach ( $result_get as $key => $value ) {
echo "$key:--->$value<br/>" ;
}
foreach ( $memcache ->getStats() as $key => $value ) {
echo "$key:--->$value<br/>" ;
};
echo "<br/>" ;
foreach ( $memcache ->getExtendedStats() as $key => $value ) {
echo "$key:--->$value<br/>" ;
}
$memcache ->close();
?>
</body>
</html>
|
我们再来看个更加具体些的实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
<?php
include ( 'inc/common.inc.php' );
if (! isset( $city ) || ! is_array ( $city ) ) {
exit ;
}
//print_r ($city);exit;
$mem = new Memcache();
$mem -> connect( 'localhost' , '11211' );
$expires =15*60;
//check if cache exits
if (( $value = $mem -> get( $city )) != FALSE) {
echo "get key from memcache: " . "<br />" ;
// $return=$mem->get($city);
// echo json_encode($return);
} //if
else {
$resultJson =fetch_data();
echo count ( $resultJson ). "<br />" ;
if ( count ( $resultJson )==1 || empty ( $resultJson )){
//从mysql中取值
echo "get key from mysql:" . "<br />" ;
$query = "select * from pm25" ;
$result =mysql_query ( $query ) ;
while ( $row = mysql_fetch_assoc( $result )){
$rows []= $row ;
}
//将获取的值数组存入memcache
for ( $i =0; $i < count ( $rows ); $i ++){
$k [ $i ]= $rows [ $i ][ 'city' ];
$v [ $i ][ 'city' ]= $rows [ $i ][ 'city' ];
$v [ $i ][ 'pm25' ]= $rows [ $i ][ 'pm25' ];
$mem -> set( $k [ $i ], $v [ $i ], false, $expires );
}
// $return=$mem->get($city);
// echo json_encode($return);
} //if
else {
echo "get key from new_writed mysql:" . "<br />" ;
write_db( $resultJson );
$query = "select * from pm25" ;
$result =mysql_query ( $query ) ;
while ( $row = mysql_fetch_assoc( $result )){
$rows []= $row ;
}
//write memcache
for ( $i =0; $i < count ( $rows ); $i ++){
$k [ $i ]= $rows [ $i ][ 'city' ];
$v [ $i ][ 'city' ]= $rows [ $i ][ 'city' ];
$v [ $i ][ 'pm25' ]= $rows [ $i ][ 'pm25' ];
$mem -> set( $k [ $i ], $v [ $i ], false, $expires );
}
// $return=$mem->get($city);
// echo json_encode($return);
} //else
} //else
foreach ( $city as $k => $v ){
$return [ $k ]= $mem ->get( $v );
}
echo json_encode( $return );
function fetch_data() {
$url = "http://www.example.com" ;
//$url="";
$data = http_get( $url );
$getJson = json_decode( $data , true);
return $getJson ;
} //func fetch_data
function write_db( $getJson ){
$sql = "DELETE FROM pm25" ;
mysql_query( $sql );
//sort the json.txt
foreach ( $getJson as $key => $row ) {
$area [ $key ] = $row [ 'area' ];
$pm2_5 [ $key ]= $row [ 'pm2_5' ];
}
array_multisort ( $area , SORT_ASC, $pm2_5 ,SORT_ASC, $getJson );
for ( $i =0; $i < count ( $getJson )-1; $i ++){
if ( $getJson [ $i ][ 'pm2_5' ]==0)
$count =0;
else
$count =1;
$sum = $getJson [ $i ][ 'pm2_5' ];
for ( $j = $i +1; $j < count ( $getJson ); $j ++, $i ++){
if ( strcmp ( $getJson [ $j ][ 'area' ], $getJson [ $i ][ 'area' ])==0 ){
if ( $getJson [ $j ][ 'pm2_5' ]==0 ){
continue ;
}
else {
$count ++;
$sum += $getJson [ $j ][ 'pm2_5' ];
$pm2_5 = $sum / $count ;
}
}
else {
//insert into mysql
$result [ 'city' ]= $getJson [ $i ][ 'area' ];
$result [ 'pm25' ]= intval ( $pm2_5 );
$query = "insert into pm25(city,pm25) values ('" . $result ['city ']."' ,". $result [ 'pm25' ]. ")" ;
mysql_query( $query );
break ;
}
}
}
return $getJson ;
} //func write_db
$mem -> close();
?>
|
以上所述就是本文的全部内容了,希望大家能够喜欢。