Redisの適用シーン

8508 ワード

最近はWebFormがやっていてフロントのトップページの読み取り速度が遅く、複数のユーザーが同時に私のSqlserverにアクセスするのに耐えられないことを発見しました!あとでRedisを思い出しました
コードは次のとおりです./// /// /// 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(); }
解読:
  •       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ヒット数など、さまざまな例で使用できます.