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(); ?> |
以上所述就是本文的全部内容了,希望大家能够喜欢。