使用memcache的前提是需要在服务端先配置好memcahche的环境!确认memcahce可以正常连接之后就可以在程序使用了!
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
117
118
119
120
121
122
123
124
125
126
127
128
|
<?php /** * Memcache缓存操作 * @author hxm * @version 1.0 * @since 2015.05.04 */ class MCache extends Object implements CacheFace { private $mem = null; //Mem对象 private $sId = 1; //servier服务ID /** * 初始化Memcache * * @return Object */ public function __construct() { if ( ! class_exists ( 'Memcache' ) ) { throw new QException( 'PHP extension does not exist: Memcache' ); } $this ->mem = new Memcache(); } /** * 链接memcahce服务 * * @access private * @param string $key 关键字 * @param string $value 缓存内容 * @return array */ private function connect( $sid ) { $file = $this ->CacheFile(); require $file ; if (! isset( $cache ) ) { throw new QException( '缓存配置文件不存在' . $file ); } $server = $cache [ $this ->cacheId]; $sid = isset( $sid ) == 0 ? $this ->sId : $sid ; //memcache服务选择 if ( ! $server [ $sid ]) { throw new QException( '当前操作的缓存服务器配置文件不存在' ); } $host = $server [ $sid ][ 'host' ]; $port = $server [ $sid ][ 'port' ]; try { $this ->mem->connect( $host , $port ); } catch (Exception $e ) { exit ( 'memecache连接失败,错误信息:' . $e ->getMessage()); } } /** * 写入缓存 * * @access private * @param string $key 关键字 * @param string $value 缓存内容 * @return array */ public function set( $key , $value , $sid , $expire = 0) { $data = $this ->get( $key , $sid ); //如果已经存在key值 if ( $data ) { return $this ->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire ); } else { return $this ->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire ); } } /** * 读取缓存 * * @access private * @param string $key 关键字 * @param int $sid 选择第几台memcache服务器 * @return array */ public function get( $key , $sid ) { $this ->connect( $sid ); return $this ->mem->get( $key ); } /** * 清洗(删除)已经存储的所有的元素 * * @access private * @return array */ public function flush () { $this ->connect(); return $this ->mem-> flush (); } /** * 删除缓存 * * @access private * @param string $key 关键字 * @param int $sid 选择第几台memcache服务器 * @return array */ public function remove( $key , $sid ) { $this ->connect(); return $this ->mem-> delete ( $key ); } /** * 析构函数 * 最后关闭memcache */ public function __destruct() { /*if(! $this->mem) { $this->mem->close(); }*/ } } |
以上所述就是本文的全部内容了,希望大家能够喜欢。