W11（独身の日）を支えるAlibaba Cloud Redis テクノロジーの解読 

概要：Redisは広く適用されているNoSQLデータベースです。Alibaba Cloud Redisは、パブリック・クラウドとAlibaba Group内で同時にサービスを提供します。この記事では、W11（独身の日）ショッピングフェスティバルにおけるAlibaba Redisのビジネスシナリオをいくつか紹介します。MicroTaoの何億ものリレーションシップチェーンの保存、Tmallライブブロードキャストのコメントのカーソルページング、Cainiaoクーポンフルフィルメントセンターの注文ソートなどがあります。

盛況だったW11（独身の日）ショッピングフェスティバルが終了し、Alibaba Cloud Redis（ApsaraDB for Redis、KVStoreの原型）もW11（独身の日）のサポートをしました。現在、Alibaba Cloud Redisには、スタンドアロン版とクラスタ版があります。
● スタンドアロン版のRedisは互換性が高く、Luaスクリプトや地理的位置情報をサポートしています。
● クラスター版は大容量で性能が高く、Redisをシングルスレッドでしか実行できないシングルマシンの性能限界を突破することができます。

Alibaba Cloud Redisは、ホットバックアップメカニズムを備えたプライマリ/スタンバイアーキテクチャを採用し、バックアップリカバリーをサポートします。同時に、Alibaba Cloud Redisのソースコードチームは、Redisの最適化とアップグレードを常に行い、強力なセキュリティ保護を確保しています。この記事では、W11（独身の日）ショッピングフェスティバルからいくつかのビジネスシナリオを選択し、説明のために単純化しています。実際のビジネスシナリオは、この記事に書かれているものよりもはるかに複雑です。

##MicroTaoの何億ものリレーションシップチェーンの保存
MicroTaoコミュニティは、数億人のユーザーのソーシャルネットワーク関係を担っています。すべてのユーザーは、自分がフォローしているユーザーのリストを持っており、すべての売り手は自分のフォロワーの情報を持っています。MicroTao全体の関係性は下図のようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/45223342-7736-5b4e-120a-9ab6f77e06eb.png)

従来のリレーショナルデータベースモデルを採用して上記の関係情報を表現すると、ビジネスデザインがかなり複雑になり、良好なパフォーマンス体験が不可能になります。MicroTaoコミュニティでは、Redisクラスタを採用してコミュニティ内のフォローチェーンをキャッシュし、フォロー情報の保存を簡素化するとともに、W11（独身の日）フェスティバルでのスムーズなショッピング体験を実現しています。MicroTaoコミュニティでは、ユーザ間のフォロー情報の保存にハッシュを使用しており、保存構造は以下のようになっています。また、以下の2つの問い合わせインターフェースを提供しています。
● ユーザーAがユーザーBをフォローしたことがあるか、フォローされたことがあるか。
● ユーザーAがフォローしている人のリスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/833e27bf-6a8c-e439-6c21-d819ad54d329.png)

##Tmallライブ配信のコメントをカーソルで表示
W11（独身の日）ショッピングフェスティバルの期間中、ユーザーが無線端末でライブ放送を見ていると、ライブ放送用のコメントを更新する必要があります。主に以下の3つのモデルがあります。
● インクリメンタル・プルダウン。つまり、指定した位置から指定した数（インクリメント）のコメントを上方向に取得すること。
● プルダウンして更新。最新のコメントを指定した数だけ取得すること。
● インクリメンタル・プルアップ。指定された位置から指定された数（インクリメント）のコメントを下方向に取得すること。
無線中継システムでは、このシナリオで業務を最適化するためにRedisを使用し、生放送のコメント・インターフェースの成功率を確保するとともに、50,000以上のTPSとミリ秒単位のRTのリクエストを実現しています。生放送システムでは、放送された動画ごとに2つのデータを書き込みます。1つはインデックスデータ、もう1つはコメントデータです。インデックスデータはSortedSet構造で、コメントのソートに使われ、コメントデータはハッシュで保存されます。コメントを取得するには、インデックスを介してインデックスIDを取得し、ハッシュを読み込んでコメントリストを取得します。コメントの書き方は以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/83187d3d-3a11-4728-d170-d0a3b2c23568.png)
ユーザーがリストを更新した後、バックグラウンドでは、以下の手順で対応するコメント情報を取得する必要があります。
● 現在のインデックス位置の取得
● インデックスリストの取得
● コメントデータの取得
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/8d2c633d-761e-8809-c009-9a496c470981.png)

##Cainiaoクーポンのフルフィルメントセンターの注文仕分け
W11（独身の日）ショッピングフェスティバルでは、ユーザーが取引注文を生成した後、それに応じて物流注文が生成されます。Cainiaoの倉庫・配送システムで処理された注文については、意思決定システムが注文情報に基づいて、倉庫に通知するタイミング、倉庫から商品を搬出するタイミング、エクスプレスパッケージを回収するタイミング、パッケージを配送するタイミングなど、対応する注文履行計画を指定します。バウチャー・フルフィルメントセンターは、フルフィルメント・プランの各段階において、対応する時間帯に基づいて物流サービスを履行します。倉庫と配送のキャパシティが限られているため、最も早い作業時間が予想される伝票が最優先されます。そのため、注文が倉庫に出される前、または配送のために手配される前に、注文は優先順位によって分類されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/b66a627a-8d8a-e6f7-fc52-0cde5e79d4dc.png)
オーダーフルフィルメントセンターでは、Redisを使用してすべてのロジスティックオーダーをソートし、優先度の高いオーダーを特定します。

##最後に
Redisは優れたオープンソースのデータベースであり、開発者にとってより便利なデータモデルを提供しています。Alibaba Cloud Redisは、安定した高性能のサービスを提供できることをお約束します。


*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/forum/read-645?spm=a2c5t.11065265.1996646101.searchclickresult.44be978d6P7mcM)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*