Redisの適用シーン
8508 ワード
最近はWebFormがやっていてフロントのトップページの読み取り速度が遅く、複数のユーザーが同時に私のSqlserverにアクセスするのに耐えられないことを発見しました!あとでRedisを思い出しました
コードは次のとおりです.
解読: 1.有効期限を設定のは、プロジェクトの更新が無効になることを防止するためです.有効期限を設定しないと、バックグラウンドでフロントデータを操作するときにredisデータを更新します. 2.60秒(またはそれ以上)ごとに1人のユーザがDBに行くデータがRedisに運ばれて他のユーザに使用される(N秒ごとに1人のマウスがある) .
Redisの利点:
非常に速い-Redisは非常に速く、1秒間に約110000回の設定(SET)動作を実行することができ、1秒間に約81000回の読み取り/取得(GET)動作を実行することができる.
豊富なデータ型をサポート-Redisは、リスト、コレクション、ソートセット、ハッシュなど、開発者がよく使用するデータ型のほとんどをサポートします.これにより、Redisは、どのような問題がどのようなデータ型で解決されるかを知っているため、さまざまな問題を解決するために容易に使用されます.
操作に原子性がある-すべてのRedis操作は原子操作であり、2つのクライアントが同時にアクセスすると、Redisサーバが更新された値を受信できることを保証します.
≪マルチユーティリティ|Multi Utility|emdw≫:Redisは、キャッシュ、メッセージ・キュー(Redisローカルでパブリッシュ/サブスクリプションをサポート)、アプリケーション内の任意の短期データ、例えば、Webアプリケーション内のセッション、Webヒット数など、さまざまな例で使用できます.
コードは次のとおりです.
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
//Radis
var ser = new ObjectSerializer();
RedisClient redis = new RedisClient("127.0.0.1", 6379);
if (ser.Deserialize(redis.Get<byte[]>("Banner")) == null)//
{
redis.Set<byte[]>("ShowNewPhone", ser.Serialize(GoodsManager.GetNewPhone()), DateTime.Now.AddMinutes(1));
rpt_ShowNewPhone.DataSource = ser.Deserialize(redis.Get<byte[]>("ShowNewPhone")) as List;
rpt_ShowNewPhone.DataBind();
redis.Set<byte[]>("T1", ser.Serialize(AdvertManager.GetList("1")), DateTime.Now.AddMinutes(1));
advert_01.DataSource = ser.Deserialize(redis.Get<byte[]>("T1")) as List;
advert_01.DataBind();
redis.Set<byte[]>("T2", ser.Serialize(AdvertManager.GetList("2")), DateTime.Now.AddMinutes(1));
friend.DataSource = ser.Deserialize(redis.Get<byte[]>("T2")) as List;
friend.DataBind();
redis.Set<byte[]>("video", ser.Serialize(VideoTalManager.GetList()), DateTime.Now.AddMinutes(1));
dongtai.DataSource = ser.Deserialize(redis.Get<byte[]>("video")) as List;
dongtai.DataBind();
redis.Set<byte[]>("BannerList", ser.Serialize(BannerManager.GetList()), DateTime.Now.AddMinutes(1));
banner_rpt.DataSource = ser.Deserialize(redis.Get<byte[]>("BannerList")) as List;
banner_rpt.DataBind();
}
else
{
rpt_ShowNewPhone.DataSource = ser.Deserialize(redis.Get<byte[]>("ShowNewPhone")) as List;
rpt_ShowNewPhone.DataBind();
advert_01.DataSource = ser.Deserialize(redis.Get<byte[]>("T1")) as List;
advert_01.DataBind();
friend.DataSource = ser.Deserialize(redis.Get<byte[]>("T2")) as List;
friend.DataBind();
dongtai.DataSource = ser.Deserialize(redis.Get<byte[]>("video")) as List;
dongtai.DataBind();
banner_rpt.DataSource = ser.Deserialize(redis.Get<byte[]>("BannerList")) as List;
banner_rpt.DataBind();
}
解読:
Redisの利点:
非常に速い-Redisは非常に速く、1秒間に約110000回の設定(SET)動作を実行することができ、1秒間に約81000回の読み取り/取得(GET)動作を実行することができる.
豊富なデータ型をサポート-Redisは、リスト、コレクション、ソートセット、ハッシュなど、開発者がよく使用するデータ型のほとんどをサポートします.これにより、Redisは、どのような問題がどのようなデータ型で解決されるかを知っているため、さまざまな問題を解決するために容易に使用されます.
操作に原子性がある-すべてのRedis操作は原子操作であり、2つのクライアントが同時にアクセスすると、Redisサーバが更新された値を受信できることを保証します.
≪マルチユーティリティ|Multi Utility|emdw≫:Redisは、キャッシュ、メッセージ・キュー(Redisローカルでパブリッシュ/サブスクリプションをサポート)、アプリケーション内の任意の短期データ、例えば、Webアプリケーション内のセッション、Webヒット数など、さまざまな例で使用できます.