キャッシュは多くの Web サイトで使用されており、特に高い同時実行性を扱う場合、キャッシュは不可欠です。この記事は、phalapi に基づいてキャッシュされた Redis の実際の使用法を説明するものであり、皆様のお役に立てれば幸いです。
前書き
プロジェクトを開発していると、メッセージのプッシュ、電子メールの送信、テキスト メッセージの送信、同時実行エラーなど、多くの問題が発生することがあります。このとき、一般的に使用されるキャッシュが私たちを救ってくれます。 、実際の問題を解決するための Redis のキャッシュの実際の使用方法について説明します。このセクションを読む前に、Redis に基づいた基本的な知識と、PhalApi の Redis 拡張ドキュメントを簡単に見てみましょう。解決する
テクノロジーを使用するときは、もちろん問題を解決するために使用します。では、キャッシュ テクノロジー Redis を使用すると、具体的にどのような問題を解決できるでしょうか?
//从缓存redis的clubcache库中查询club表where条件是city,city值是$city $cache = DI()->redis->get_Time('club'.'city'.$city,'clubcache'); //如果查询到了就直接返回缓存的结果 if($cache){ return $cache; } //如果不存在从数据库里面获取结果然后存入redis缓存key的条件和取值时一样,最后一个参数为过期时间 $rs = $this->getORM()->select('*')->where('city',$city)->fetchAll(); DI()->redis->set_Time('club'.'city'.$city,$rs,'clubcache',600);
//写入队列左边 set_lPush //写入队列左边 如果value已经存在,则不添加 set_lPushx //写入队列右边 set_rPush //写入队列右边 如果value已经存在,则不添加 set_rPushx //读取队列左边 get_lPop //读取队列右边 get_rPop //读取队列左边 如果没有读取到阻塞一定时间 get_blPop //读取队列右边 如果没有读取到阻塞一定时间 get_brPop
2。実際、上記のカテゴリは、キャッシュはデータベースとは異なり、すべてのデータが蓄積されていると非常に面倒になります。 redisのライブラリ
しかし、redisは複数のライブラリをサポートしているため、それを分割するための仕様が必要です。ここで私がそれらをどのように使用するかを共有します
0〜10のライブラリは、通常のビジネスライブラリ、つまりpush Queueとして使用されます。 、一時データ、各データベースには 1 つのビジネスのデータのみが保存されます。たとえば、WeChat プッシュ データは 5 つのデータベースに存在し、確認コードを送信するための一時データは 3 つのデータベースに保存されます。 10 個のライブラリでは足りないと思われる場合は、ビジネスに応じてさらに追加できます
10 個を超えるライブラリは、各テーブルの結果セット データやその他のデータを保存するキャッシュ ライブラリとして使用されます
すべてのキーの命名規則タイプ + テーブル名 + 条件を含める必要があります
php ファイル キャッシュ クラスの使用例分析
PHP キャッシュ メカニズム
ディスクラスター障害
以上がphalapi キャッシュの使用と Redis の拡張の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。