国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net性能優化之使用Redis緩存(入門)

asp.net性能優化之使用Redis緩存(入門)

2020-04-22 14:14一天,又一天 ASP.NET教程

本文主要介紹了asp.net性能優化之使用Redis緩存的相關知識。具有很好的參考價值,下面跟著小編一起來看下吧

1:使用Redis緩存的優化思路

redis的使用場景很多,僅說下本人所用的一個場景:

1.1對于大量的數據讀取,為了緩解數據庫的壓力將一些不經常變化的而又讀取頻繁的數據存入redis緩存

大致思路如下:執行一個查詢

1.2首先判斷緩存中是否存在,如存在直接從Redis緩存中獲取。

1.3如果Redis緩存中不存在,實時讀取數據庫數據,同時寫入緩存(并設定緩存失效的時間)。

1.4缺點,如果直接修改了數據庫的數據而又沒有更新緩存,在緩存失效的時間內將導致讀取的Redis緩存是錯誤的數據。

2:Redis傻瓜式安裝

2.1雙擊執行redis-2.4.6-setup-64-bit.exe程序(下載地址:https://github.com/dmajkic/redis/downloads)

2.2可以將此服務設置為windows系統服務:

asp.net性能優化之使用Redis緩存(入門)

2.3測試是否安裝成功:

再回到redis文件夾下,找到redis-cli.exe文件,它就是Redis客戶端程序。打開,輸入:

Set test 123

即在Redis中插入了一條key為test,value為123的數據,繼續輸入:get test

得到value保存的數據123。

如果想知道Redis中一共保存了多少條數據,則可以使用:keys * 來查詢:

asp.net性能優化之使用Redis緩存(入門)

3:asp.net使用Redis緩存簡單示例

3.1測試Demo的結構

asp.net性能優化之使用Redis緩存(入門)

3.2添加引用

asp.net性能優化之使用Redis緩存(入門)

3.3將參數寫入配置文件

?
1
2
3
4
5
6
7
8
9
<appSettings>
<add key="WriteServerList" value="127.0.0.1:6379" />
<add key="ReadServerList" value="127.0.0.1:6379" />
<add key="MaxWritePoolSize" value="60" />
<add key="MaxReadPoolSize" value="60" />
<add key="AutoStart" value="true" />
<add key="LocalCacheTime" value="1800" />
<add key="RecordeLog" value="false" />
</appSettings>

3.4讀取配置文件參數類

?
1
2
3
4
5
6
7
8
9
public class RedisConfigInfo
{
 public static string WriteServerList = ConfigurationManager.AppSettings["WriteServerList"];
 public static string ReadServerList = ConfigurationManager.AppSettings["ReadServerList"];
 public static int MaxWritePoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxWritePoolSize"]);
 public static int MaxReadPoolSize = Convert.ToInt32(ConfigurationManager.AppSettings["MaxReadPoolSize"]);
 public static int LocalCacheTime = Convert.ToInt32(ConfigurationManager.AppSettings["LocalCacheTime"]);
 public static bool AutoStart = ConfigurationManager.AppSettings["AutoStart"].Equals("true") ? true : false;
}

3.5連接Redis,以及其他的一些操作類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class RedisManager
 {
  private static PooledRedisClientManager prcm;
  /// <summary>
  /// 創建鏈接池管理對象
  /// </summary>
  private static void CreateManager()
  {
   string[] writeServerList = SplitString(RedisConfigInfo.WriteServerList, ",");
   string[] readServerList = SplitString(RedisConfigInfo.ReadServerList, ",");
   prcm = new PooledRedisClientManager(readServerList, writeServerList,
        new RedisClientManagerConfig
        {
         MaxWritePoolSize = RedisConfigInfo.MaxWritePoolSize,
         MaxReadPoolSize = RedisConfigInfo.MaxReadPoolSize,
         AutoStart = RedisConfigInfo.AutoStart,
        });
  }
  private static string[] SplitString(string strSource, string split)
  {
   return strSource.Split(split.ToArray());
  }
  /// <summary>
  /// 客戶端緩存操作對象
  /// </summary>
  public static IRedisClient GetClient()
  {
   if (prcm == null)
    CreateManager();
   return prcm.GetClient();
  }
  /// <summary>
  /// 緩存默認24小時過期
  /// </summary>
  public static TimeSpan expiresIn = TimeSpan.FromHours(24);
  /// <summary>
  /// 設置一個鍵值對,默認24小時過期
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key"></param>
  /// <param name="value"></param>
  /// <param name="redisClient"></param>
  /// <returns></returns>
  public static bool Set<T>(string key, T value, IRedisClient redisClient)
  {
   return redisClient.Set<T>(key, value, expiresIn);
  }
  /// <summary>
  /// 將某類數據插入到list中
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key">一般是BiaoDiGuid</param>
  /// <param name="item"></param>
  /// <param name="redisClient"></param>
  public static void Add2List<T>(string key, T item, IRedisClient redisClient)
  {
   var redis = redisClient.As<T>();
   var list = redis.Lists[GetListKey(key)];
   list.Add(item);
  }
  /// <summary>
  /// 獲取一個list
  /// </summary>
  /// <typeparam name="T"></typeparam>
  /// <param name="key"></param>
  /// <param name="redisClient"></param>
  /// <returns></returns>
  public static IRedisList<T> GetList<T>(string key, IRedisClient redisClient)
  {
   var redis = redisClient.As<T>();
   return redis.Lists[GetListKey(key)];
  }
  public static string GetListKey(string key, string prefix = null)
  {
   if (string.IsNullOrEmpty(prefix))
   {
    return "urn:" + key;
   }
   else
   {
    return "urn:" + prefix + ":" + key;
   }
  }
 }

3.6測試頁面前后臺代碼

?
1
2
3
4
5
6
<form id="form1" runat="server">
 <div>
  <asp:Label runat="server" ID="lbtest"></asp:Label>
  <asp:Button runat="server" ID ="btn1" OnClick="btn1_Click" Text="獲取測試數據"/>
 </div>
 </form>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected void btn1_Click(object sender, EventArgs e)
  {
   string UserName;
   //讀取數據,如果緩存存在直接從緩存中讀取,否則從數據庫讀取然后寫入redis
   using (var redisClient = RedisManager.GetClient())
   {
    UserName = redisClient.Get<string>("UserInfo_123");
    if (string.IsNullOrEmpty(UserName)) //初始化緩存
    {
     //TODO 從數據庫中獲取數據,并寫入緩存
     UserName = "張三";
     redisClient.Set<string>("UserInfo_123", UserName, DateTime.Now.AddSeconds(10));
     lbtest.Text = "數據庫數據:" + "張三";
     return;
    }
    lbtest.Text = "Redis緩存數據:" + UserName;
   }
  }

測試結果圖

首次訪問緩存中數據不存在,獲取數據并寫入緩存,并設定有效期10秒

asp.net性能優化之使用Redis緩存(入門)

10秒內再次訪問讀取緩存中數據

asp.net性能優化之使用Redis緩存(入門)

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/weity/p/6481469.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 一级做a爰片性色毛片2021 | 五月婷婷激情网 | 成人精品一区二区 | 黄色毛片在线视频 | 欧美中文在线 | 黄色一级毛片网站 | 亚洲 欧美 日韩 在线 | 亚洲高清资源 | 四虎影视4hu4虎成人 | 最近的中文字幕在线看视频 | 国产精品成人在线视频 | 午夜欧美一区二区三区在线播放 | 国产999精品久久久久久 | 天天天天干 | 色综久久 | 狠狠干av| 天堂久久爱资源站www | 国产激情精品一区二区三区 | 日韩精品区 | 特级毛片在线 | 欧美成人毛片 | 久久久久久免费视频 | 国产美女久久 | 国产午夜精品一区二区三区免费 | 久久99精品久久久久久噜噜 | 国产精品美女www爽爽爽软件 | 亚洲精品综合 | 国产日产精品一区二区三区四区 | 秒播av| 久久综合成人精品亚洲另类欧美 | 在线亚洲不卡 | 自拍偷拍第一页 | 欧美日韩精品一区二区在线观看 | 九九热在线视频观看这里只有精品 | 国产成人精品一区二 | 欧美精品网站 | 久久国产精品久久国产精品 | 午夜精品久久久久 | 在线播放一区二区三区 | 亚洲一区二区中文字幕 | 欧美精品v国产精品v日韩精品 |