ホームページ  >  記事  >  バックエンド開発  >  PHP で書かれた、redis および memcache と互換性のあるキャッシュ インターフェイスのデモ

PHP で書かれた、redis および memcache と互換性のあるキャッシュ インターフェイスのデモ

WBOY
WBOYオリジナル
2016-07-25 09:03:541057ブラウズ
  1. /**

  2. * ファクトリメソッドパターン
  3. * -------------
  4. * @author zhangqian
  5. * @version v1.0
  6. */
  7. //キャッシュインターフェイス
  8. インターフェイスキャッシュ {
  9. public function init($conf);
  10. public function setVal($key , $ val);
  11. public function getVal($key);
  12. public function delVal($key);
  13. public function autoIncreament($key);
  14. }
  15. //mem
  16. class mymemCache はキャッシュを実装します {
  17. //mymem connection
  18. public function init($conf)
  19. {
  20. echo 'mymem を初期化';
  21. }
  22. public function setVal($key , $val)
  23. {
  24. echo 'mem set value';
  25. }
  26. public function getVal($key)
  27. {
  28. echo 'mem 値を取得';
  29. }
  30. public function delVal($key)
  31. {
  32. echo 'mem delete value';
  33. }
  34. public function autoIncreament($key)
  35. {
  36. echo 'mem auto-increment';
  37. }
  38. }
  39. //redis
  40. class redisCache はキャッシュを実装します {
  41. //redis 接続
  42. public function init($arr)
  43. {
  44. echo 'redis の初期化';
  45. }
  46. public function setVal($key, $val)
  47. {
  48. echo 'redis 設定値';
  49. }
  50. public function getVal($key)
  51. {
  52. echo 'redis get value';
  53. }
  54. public function delVal($key)
  55. {
  56. echo 'redis delete value';
  57. }
  58. public function autoIncreament($key)
  59. {
  60. echo 'redis auto-increment';
  61. }
  62. }
  63. class queueFactory
  64. {
  65. private static $obj;
  66. private static $type;
  67. private static $conf;
  68. private static $allowtype = array ('mymem','redis');
  69. プライベート静的関数 getConfig()
  70. {
  71. //include_once('config.php'); 構成ファイルをロードして、キャッシュ タイプとキャッシュ構成パラメーターを取得します
  72. global $_SC ;
  73. self ::$type = $_SC['cachetype'];//short 値の判定
  74. self::$conf = $_SC['cacheconf'];//short 値の判定
  75. }
  76. //外部呼び出しキャッシュ オブジェクトを作成するには
  77. public static function CreateOperation(){
  78. self::getConfig();
  79. try
  80. {
  81. $error = '不明なキャッシュ タイプ';
  82. if(in_array(self::$type , self::$allowtype ))
  83. {
  84. $type = self::$type.'Cache';
  85. self::$obj = new $type;
  86. self::$obj->init(self::$conf);//接続
  87. }
  88. else
  89. throw new Exception($error);
  90. }
  91. catch (Exception $e) {
  92. echo '例外をキャッチしました: ', $e->getMessage(), "n";
  93. exit;
  94. }
  95. return self: :$obj;
  96. }
  97. }

  98. $_SC = array();

  99. $_SC['cachetype'] = 'redis';//mymem
  100. $_SC['cacheconf '] = array();
  101. $cache =cacheFactory::CreateOperation();
  102. $cache->setVal('a',1);
  103. echo '
    ';
  104. $a = $ queue-> ;getVal('a');
  105. echo '
    ';
  106. $cache->delVal('a');
  107. ?>

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。