亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

深入了解Redis的性能

2020-03-17 12:42:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Redis的性能,作者通過Visual Studio上的C#程序對其進行了分析,需要的朋友可以參考下
 

簡介

多少次你發現自己在幾個月的開發和無數的努力后陷入了毫無性能而言的web應用?多少次你在好奇如果你無法向普通用戶傳達快與最快的標準,你的客戶還應該把你當作專家?多少你聽到有關Google和Facebook一些糟糕的對比?讓我告訴你,我的客戶是怎么看待這些的:

我曾開發一個有著復雜處理和過濾的web應用,因為很多業務規則和UI要求。再加上一些過時技術的第三方提供者,對于他們而言,速度意味著15年的工作丟進垃圾桶,然后重新開始。我的應用不是那么快,有時處理一個請求花費6~8s才會處理完,業務規則的驗證、過濾和格式化響應。而客戶不接受這樣。并說如果Google做就會做好。同樣,Facebook也行。我無法向客戶解釋速度后面的硬件是多么的龐大,服務器的壓力怎樣。我僅僅回復說可以做更好,我在記住Redis后保證可以做到。


那么,在我們深入Redis之前,我先介紹下NoSql。

大多數開發者習慣用關系型數據庫。數據驅動開發或者領域驅動開發(作為一個整體框架編碼或者用Fluent API NHibernate),關系型數據庫的概念一樣。另一方面,NoSql引領了新的數據存儲時尚。在.NET社區最流行的是MongoDb,RavenDb和Redis。我已經寫了一篇怎么使用MongDb的文章,你可以在這里找到。我使用它記錄重要活動、錯誤和異常等的日志。

在NoSql的世界里,概念和所有流行的數據庫基本是一樣的?;旧纤谴嬖谀銠C器上某處的JSon文檔或者你可以操作的某種.NET客戶機或驅動。NoSql的偉大之處在于它解決了關系型數據庫與OO語言如C#或Java時的一個主要缺點:錯配阻抗。


Redis其實和任何的NoSql數據庫一樣。但是它是一個內存數據庫而表現十分出色。

簡單的說,Redis可以給你難以置信的存取你的對象狀態的能力從而使你的應用更加快速。有時候,你的應用速度可以優化8到10倍。這并不是開玩笑的而且你不需要背后有Google或Facebook那樣的基礎設施。如果你想知道更多的關于Redis背后的思想和它的歷史的內容,可以上網查找更多。有很多文章是關于這些的。

Redis代表了遠程字典服務( Remote Dictionary Service) 。它是一個鍵值存儲就像C#的字典對象。所以讓我們看看如何使用:


首先,按照下面的步驟安裝并運行Redis:

  •     打開redis.io,下載win64版本的redis(它并不會根據你的系統指定相應的版本)
  •     將下載的內容復制到Redis文件夾(你也可以命名為其他你喜歡的名字)
  •     點擊 redis-server.exe 啟動服務端
  •     點擊 redis-client.exe 運行客戶端命令行工具
  • 現在我們試著運行一些基本的命令來檢測安裝是否正確。在客戶端命令行界面:
  •     輸入 set azul "hello world" 來添加一條記錄,你會收到ok的反饋。這意味著你已經添加了一個鍵為azul值為"hello world"的條目(順便說下,azul在卡拜爾語中是問候的意思)
  •     輸入 get azul取得相應的值,你會收到反饋 hello world
  •     輸入 delete azul會刪除這個條目

因為Redis是一個字典,可以以如下方式保存鍵值:
 

復制代碼代碼如下:
Set schedule:1 "{'origin':'Montreal','destination':'Toronto'}"

 

在這個示例中的值是一個json對象。這意味著你可以向Redis中添加復雜的對象。但沒必要這么做,因為Redis支持5種數據類型以滿足你的需求。

你也可以以如下方式指定key:
 

復制代碼代碼如下:
Set schedule:id 1

 

對于執行多個set 和get,可以使用mset 和mget來代替。我將不再對這些命令進行討論。你可以查看Redis文檔并盡情嘗試。

幕后

到目前為止我們所做的一切都打破了常規。但在幕后卻是Redis客戶端通過Redis協議向服務器發送指令。服務器對內存中的數據執行這些指令,并返回響應結果。
做為服務的Redis

你可以在物理機,虛擬機上使用Redis,也可以將Redis做為云服務。很多像Digital Ocean和Widnows Azure這類的供應商都提供該服務。我們將從Digital Ocean開始(主要考慮到價錢,并且我認為Azure的Redis服務有點貴)


我們使用PuTTY的ssh(安全連接模式)來連接到Digital Ocean。下載PuTTY并將IP地址配置為你的DO droplet地址(droplet是你在DO上創建的linux主機)。然后啟動PuTTY并用DO提供的root賬戶和密碼登錄。運行以下命令以保持你的linux主機的更新:apt-get update (linux用戶現在很激動吧).

現在你正在或已經保持更新了。然后運行apt-get install build-essential為你的linux服務器安裝所有缺失的工具。哦了。另外對于這些設置還有很多更詳細的博文。我不得不承認,因為我對linux世界不太熟悉,所以在配置的時候著實費了翻手腳。

在 Visual Studio 中使用

在起始頁,添加一個MVC項目,并使用Nuget包管理器添加Servicestack.redis。這樣你就可以連接到Redis并做一些有意思的事。

你需要按以下步驟做來連接Redis并被取得緩存的對象列表。
 

  1. using(IRedisClient client = RedisClient) 
  2.  { 
  3.   var scheduleClient= client.GetTypedClient<Schedule>(); 
  4.   var schedules = scheduleClient.GetAll(); 
  5.  } 
?

哪怕你緩存了很多對象這也是一個非??焖俚牟僮?。在Redis中緩存即用的對象是很好的想法,這免去了可能的業務處理操作(應用規則或其他過濾和格式化操作).

數據庫中重復提取的對象(很多時候是相同的)最好放到Redis中。通常我們要在倉庫中緩存的數據(更多細節請瀏覽緩存倉庫模式cached repository pattern)也最好放到Redis中。這樣你就可以快速取得操作結果,大幅提升Web應用的整體性能。


注意scheduleClient將會暴露很多有關增加、添加、移除和使用列表、哈希等的函數。嘗試下探索更多。。。

你也可以設置你的Redis客戶端來看一下(不是用Glimpse-;))在添加monitor command的這種情況下發生了什么(在我們開始時添加azul的同一個地方)。

在完整的反HelloWorld應用風格(我承認我是其中之一?。┑挠率颗d奮的跳向天空之前,我還應該提醒一件事:從你的控制器連到你的數據庫(就是Redis?。┎皇莻€好主意,如果這對你來說很奇怪,我認為你需要讀一些關于設計和架構方面的東西。我不理解Microsoft的指導書讓用戶添加一個MVC項目,你就可以開始構建一耳光偉大的商業web應用了。因為不是這樣。


然而,下面是一個添加對象的例子,在這個情況下式一個調度器:

 

  1. //domain object 
  2.  public class Schedule  
  3.  { 
  4.   public int Id {get; set;} 
  5.   public string Origin {get; set;} 
  6.   public string Destination {get; set;} 
  7.  }  
  8.   
  9.  using(IRedisClient client = RedisClient) 
  10.  { 
  11.   var scheduleClient= client.GetTypedClient<Schedule>(); 
  12.   var schedule= new Schedule 
  13.   { 
  14.     Id= scheduleClient.GetNextSequence(), 
  15.     Origin ="Montreal"
  16.     Destination = "Quebec" 
  17.  } 
  18.   var schedules = scheduleClient.Store(schedule); 
  19.  } 
?

因為Redis是一個緩存服務,是可以通過設置一個超時時間讓輸入過期。你也可以通過移除那個超時來逆向這個過程。

這僅是一個關于Redis的簡介,給你提供一個提高web引用性能的方法啟示。在某些情況下,Redis可能會給你一些你的客戶或者老板沒有給你的,關于構建可靠軟件的激情的認可。

希望這能幫到一些人!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩精品中文字幕| 亚洲影院色无极综合| 茄子视频成人在线| 日韩中文视频免费在线观看| 日韩中文字幕国产| 亚洲欧美一区二区三区在线| 国产精品久久久久久影视| 亚洲韩国青草视频| 日韩成人久久久| 欧美视频不卡中文| 国产欧美日韩丝袜精品一区| 久久99精品久久久久久琪琪| 日本sm极度另类视频| www.国产精品一二区| 亚洲一级黄色av| 在线日韩欧美视频| 国产91在线高潮白浆在线观看| 久久国产天堂福利天堂| 国产精品扒开腿做爽爽爽的视频| 午夜精品福利电影| 国产精品久久久久aaaa九色| 欧美专区国产专区| 亚洲最大成人在线| 欧美专区中文字幕| 亚洲精品女av网站| 成人444kkkk在线观看| 精品久久香蕉国产线看观看亚洲| 中文字幕欧美国内| 韩国精品久久久999| 欧美午夜宅男影院在线观看| 日韩精品中文字| 国产精品自产拍在线观| xxx欧美精品| 国产精自产拍久久久久久| 亚洲人午夜精品免费| 久久久久久91香蕉国产| 亚洲美女av黄| 亚洲自拍高清视频网站| 亚洲综合视频1区| 精品福利樱桃av导航| 国产精品久久久久7777婷婷| 国产丝袜一区视频在线观看| 永久555www成人免费| 久久久视频免费观看| 国产成人亚洲精品| 欧美激情视频播放| 69视频在线免费观看| 亚洲人成在线观看| 伊人男人综合视频网| 日韩综合中文字幕| 97香蕉超级碰碰久久免费的优势| 国产a∨精品一区二区三区不卡| 国产日韩av在线| 日韩中文字幕av| 国产美女被下药99| 一本色道久久综合亚洲精品小说| 97精品视频在线观看| 亚洲日本成人网| 久久成人精品视频| 国产999精品视频| 一色桃子一区二区| 亚洲天堂男人的天堂| 日韩免费电影在线观看| 欧美日产国产成人免费图片| 亚洲欧美日韩中文视频| 欧美午夜视频在线观看| 亚洲一区二区自拍| 91精品国产综合久久香蕉922| 久久久av电影| 国产精品一区二区三区毛片淫片| 欧美激情第三页| 国产精品91久久久久久| 91精品国产综合久久久久久久久| 久久精品国产亚洲精品2020| 97精品国产aⅴ7777| 国产亚洲精品成人av久久ww| 国产不卡av在线| 在线成人激情黄色| 91精品国产高清久久久久久| 一本久久综合亚洲鲁鲁| 色系列之999| 亚洲欧美另类中文字幕| 97婷婷涩涩精品一区| 一区二区三区四区在线观看视频| 欧美日韩美女在线| 亚洲国内精品在线| 69久久夜色精品国产7777| 久久精品99久久久香蕉| 久久久久久成人精品| 亚洲精品电影在线| 欧美精品性视频| 亚洲天堂av在线播放| 羞羞色国产精品| 亚洲一区久久久| 不卡在线观看电视剧完整版| 2019中文在线观看| 久久精品电影一区二区| 伊人伊成久久人综合网站| 亚洲最大福利网站| 欧美日韩国产综合视频在线观看中文| 中文字幕视频在线免费欧美日韩综合在线看| 日韩av手机在线看| 91高清在线免费观看| 欧美午夜激情在线| 欧美成人精品xxx| 成人午夜黄色影院| 久久成人综合视频| 国产精品色婷婷视频| 亚洲欧美日韩中文在线制服| 亚洲另类欧美自拍| 亚洲欧美在线x视频| 黑人巨大精品欧美一区免费视频| 日韩av色综合| 97色在线观看| 国产91精品在线播放| 精品久久久久国产| 成人国内精品久久久久一区| 欧美激情视频网址| 97热精品视频官网| 国产亚洲一区二区在线| 最近2019中文字幕第三页视频| 日韩欧美成人精品| 欧美成人精品h版在线观看| 91国产美女视频| 亚洲成色777777在线观看影院| 日韩欧美a级成人黄色| 日本不卡视频在线播放| 97人洗澡人人免费公开视频碰碰碰| 久久夜精品va视频免费观看| 5566成人精品视频免费| 8x海外华人永久免费日韩内陆视频| 欧洲日韩成人av| 亚洲高清一区二| 日本中文字幕不卡免费| 高清日韩电视剧大全免费播放在线观看| 伊人成人开心激情综合网| 97视频在线观看免费高清完整版在线观看| 亚洲人成毛片在线播放| 国产精品a久久久久久| 欧美乱妇40p| 亚洲成**性毛茸茸| 欧美丰满少妇xxxxx做受| 欧美成人小视频| 91人成网站www| 国产精品自产拍在线观| 这里只有精品视频| 欧美性受xxxx白人性爽| 亚洲男人天堂手机在线| 懂色av影视一区二区三区| 亚洲一品av免费观看| 久久久久久久电影一区| 夜夜嗨av一区二区三区四区| 日韩精品视频三区| 国产精品视频久| 91亚洲精华国产精华| 亚洲国产成人精品一区二区| 久久久噜噜噜久久| 精品精品国产国产自在线| 亚洲精品久久久久国产| 久久躁日日躁aaaaxxxx| 欧美自拍视频在线观看| 亚洲午夜av电影| 日韩电影大全免费观看2023年上| 亚洲电影成人av99爱色|