Redisの文字列の形式は、一般的なシーンを使用します

  • キャッシュ機能

Redisのプロジェクトは通常、データベースとして、キャッシュとしてMySQLを使用します。データを取得するクエリは、データベースクエリおよびキャッシュからのRedisへのRedisを起動し、そうでない場合。共通のパラメータ(周波数およびバッチプレ制限の促進)についての値、ビジネス・オブジェクト(ユーザデータ、車両)の値は、データキャッシュ。典型的には、キャッシュの有効期限がキャッシュカトン集団故障している、のRedisの影響は、読み取りおよび書き込み操作Redisのを防止するために、いくつかの間隔に設定されることに注意することは、データキャッシュの有効期限に設定されます。

  • 周波数限界

サードパーティ製のプラグインは、コストを削減し、お金節約、周波数限界を充電されました。SMSサービス、通常、電話のコードを送信するメッセージ認証コードを送信するために、同じユーザー1分を制限し、不正な追跡、一日一回同じクエリ内のナンバープレートの制限。SMSサービスのコード例は次のとおりです。

        String phone = "15123456366";
        String msgLimitKey = "msg:limit:" + phone;
        boolean canBeSent = redisTemplate.opsForValue().setIfAbsent(msgLimitKey, "1", Duration.ofSeconds(60));
        if (canBeSent) {
            // TODO send msg
        } else {
            // 限制频率
        }

活動を販売するため、商品を転売牛を制限するためには、同じ製品を購入するユーザーの数が制限されます。例えば、電車の切符、スパイク商品の販売。サンプルコードのプロモーションホット商品次のように:

        int limitCount = 5;
        long goodsId = 1l;
        Date activityExpiredDate = DateUtil.tomorrow();
        String goodsLimitKey = "goods:limit:" + goodsId;
        boolean canBuy = redisTemplate.opsForValue().increment(goodsLimitKey) <= limitCount;
        redisTemplate.expireAt(goodsLimitKey, activityExpiredDate);
        if (canBuy) {
            // TODO 购买商品
        } else {
            // 限制频率
        }

メッセージキューを使用すると、メッセージを消費すると、メッセージが冪等プロセスである必要があり、例えば、成功した支払指図のステータスを変更しました。サンプルコード:

        String msgId = "7311eb92-f395-4bad-9a68-a9c8d1800b07";
        String msgLimitKey = "mq:msg:" + msgId;
        boolean canHandleMsg = redisTemplate.opsForValue().setIfAbsent(msgLimitKey, "1", Duration.ofHours(1));
        if (canHandleMsg) {
            // TODO 处理消息
        }else {
            // 限制频率
        }

 

  • ユーザーセッション

分散型では、あるユーザログイン認証、の単純な実装は、ユーザーが正常にログインした後、ユーザー情報はRedisのに保存されています。たびにユーザーがログインまたは更新中のRedisから取得したユーザ濃縮物を。

リリース8元の記事 ウォンの賞賛0 ビュー3843

おすすめ

転載: blog.csdn.net/new_com/article/details/104219094