ホームページ  >  記事  >  バックエンド開発  >  PHP memcached キャッシュ クラスのコード例

PHP memcached キャッシュ クラスのコード例

WBOY
WBOYオリジナル
2016-07-25 08:52:15804ブラウズ
  1. class MemcacheModel {
  2. private $mc = null;
  3. /**
  4. * サーバーの追加と memcahced オブジェクトの作成に使用されるコンストラクター メソッド
  5. */
  6. function __construct(){
  7. $params = func_get_args();
  8. //memcache サーバーが複数ある場合
  9. if( count($params) > 1){
  10. foreach ($params as $v){
  11. call_user_func_array(array($mc, 'addServer'),
  12. ); }
  13. //memcache サーバーが 1 つしかない場合
  14. } else {
  15. call_user_func_array(array($mc, 'addServer'), $params[0]);
  16. }
  17. $this->mc=$mc;
  18. / **
  19. * memcached オブジェクトを取得します
  20. * @return object memcached オブジェクト
  21. */
  22. function getMem(){
  23. return $this->mc;
  24. }
  25. /**
  26. * mem が正常に接続されているかどうかを確認します
  27. * @return bool 接続が成功した場合は true を返し、そうでない場合は false を返します
  28. */
  29. function mem_connect_error(){
  30. $stats=$this-> mc- >getStats();
  31. if(emptyempty($stats)){
  32. }else{
  33. }
  34. }
  35. プライベート関数 addKey($tabName, $key){
  36. $keys =$ this->mc->get($tabName);
  37. if(emptyempty($keys)){
  38. $keys=array();
  39. }
  40. //キーが存在しない場合は 1 つ追加します
  41. if (!in_array ($key, $keys)) {
  42. $keys[]=$key; // このテーブルのキーに新しいキーを追加します
  43. $this->mc->set($tabName, $keys, MEMCACHE_COMPRESSED , 0);
  44. return true; //存在しない場合は true を返す
  45. }else{
  46. return false; // 存在する場合は false を返す
  47. }
  48. }
  49. /**
  50. * memcache にデータを追加します
  51. * @param string $tabName キャッシュする必要があるデータテーブルの名前
  52. * @param string $sql sql を memcache のキーとして使用します
  53. * @parammixed $data キャッシュする必要があるデータキャッシュされる
  54. */
  55. function addCache( $tabName, $sql, $data){
  56. $key=md5($sql);
  57. //存在しない場合
  58. if($this->addKey($tabName, $key)){
  59. $this- >mc->set( $key, $data, MEMCACHE_COMPRESSED, 0);
  60. }
  61. }
  62. /**
  63. * memcahce に保存されているデータを取得します
  64. * @param string $sql SQL キーを使用します
  65. * @returnmixed キャッシュ内のデータを返します
  66. */
  67. function getCache($sql){
  68. $key=md5($sql);
  69. return $this->mc ->get($key);
  70. }
  71. /**
  72. * 同じテーブルに関連するすべてのキャッシュを削除します
  73. * @param string $tabName データテーブルのテーブル名
  74. */
  75. function delCache($tabName){
  76. $keys=$this->mc-> get($tabName);
  77. / /同じテーブルのキャッシュをすべて削除
  78. if(!emptyempty($keys)){
  79. foreach($keys as $key){
  80. $this->mc->delete($ key, 0); //0 即時削除を示します
  81. }
  82. }
  83. //テーブルのすべての SQL キーを削除します
  84. $this->mc->delete($tabName, 0); #&*/
  85. function delone( $sql){
  86. $key=md5($sql);
  87. $this->mc->delete($key, 0); //0 はすぐに削除することを意味します
  88. }
  89. }
  90. ?>
  91. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。