ホームページ >バックエンド開発 >PHPチュートリアル >PHP操作memcacheキャッシュ方法共有_PHPチュートリアル

PHP操作memcacheキャッシュ方法共有_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:52:04736ブラウズ

PHP で memcache キャッシュを操作する方法を共有します

一般に、同時実行の量が大きくない場合、キャッシュ技術を使用しなくても影響はありませんが、同時実行の量が多い場合は、キャッシュ技術を使用することが非常に重要です。もちろん、高い同時実行性を解決するためのテクノロジーはたくさんありますが、ここではキャッシュの観点から memcache を使用することの利便性についてのみ説明します。

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

/**

* Memcache キャッシュ操作

* @著者hxm

* @バージョン 1.0

* @since 2015.05.04

*/

クラス MCache は CacheFace を実装するオブジェクトを拡張します

{

private $mem = null //Mem オブジェクト

;

private $sId = 1 //サーバーサービスID

;

/**

* Memcache を初期化します

*

* @return オブジェクト

*/

パブリック関数 __construct()

{

if ( !class_exists('Memcache') )

{

throw new QException('PHP 拡張機能が存在しません: Memcache');

}

$this->mem = 新しい Memcache();

}

/**

* memcahce サービスへのリンク

*

* @アクセス非公開

* @param string $key キーワード

* @param string $value キャッシュコンテンツ

* @配列を返す

*/

プライベート関数 connect( $sid )

{

$file = $this->CacheFile();

$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]['ポート'];

試してください{

$this->mem->connect( $host , $port );

} catch (例外 $e) {

exit('memecache 接続に失敗しました。エラー メッセージ: '. $e->getMessage());

}

}

/**

* ライトキャッシュ

*

* @アクセス非公開

* @param string $key キーワード

* @param string $value キャッシュコンテンツ

* @配列を返す

*/

パブリック関数 set( $key , $value , $sid , $expire = 0)

{

$data = $this->get($key, $sid) //キー値がすでに存在する場合

if( $data )

{

return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire);

} 他 {

return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire);

}

}

/**

* 読み取りキャッシュ

*

* @アクセス非公開

* @param string $key キーワード

* @param int $sid どのmemcacheサーバーを選択するか

* @配列を返す

*/

パブリック関数 get( $key , $sid)

{

$this->connect( $sid );

return $this->mem->get($key);

}

/**

* 保存されているすべての要素をクリーン (削除) します

*

* @アクセス非公開

* @配列を返す

*/

パブリック関数 flash()

{

$this->connect();

return $this->mem->flush();

}

/**

* キャッシュを削除します

*

* @アクセス非公開

* @param string $key キーワード

* @param int $sid どのmemcacheサーバーを選択するか

* @配列を返す

*/

パブリック関数remove( $key , $sid)

{

$this->connect();

return $this->mem->delete($key);

}

/**

* デストラクター

* 最後にmemcacheを閉じます

*/

パブリック関数 __destruct()

{

/*if(! $this->mem)

{

$this->mem->close();

}*/

}

}

以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1010439.html技術記事 PHP操作 memcache キャッシュ方法の共有 一般的に、同時実行量が多くない場合はキャッシュ技術を使用しなくても影響はありませんが、同時実行量が高い場合はキャッシュ技術を使用すると...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。