膚淺的探討一下Redis高深跑路

来源:http://www.cnblogs.com/gdsblog/archive/2017/07/08/7136014.html
-Advertisement-
Play Games

那點所謂的分散式——redis 日常開發中,總會接觸到一些好玩的東西,比如這篇的redis,一說到redis,可能就有人跟memcache做比較了,是呀, memcache只能說是簡單的kv記憶體數據結構,而redis支持的數據類型就豐富多了,當然最能讓人看上眼的就是SortedSet。 有了它,我們 ...


那點所謂的分散式——redis

 

     日常開發中,總會接觸到一些好玩的東西,比如這篇的redis,一說到redis,可能就有人跟memcache做比較了,是呀,

memcache只能說是簡單的kv記憶體數據結構,而redis支持的數據類型就豐富多了,當然最能讓人看上眼的就是SortedSet。

有了它,我們就可以玩一些“貪心”的問題,比如適合“貪心”的優先隊列,說到優先隊列,我們以前實現了僅僅是記憶體形式的,

哎,記憶體畢竟是記憶體,當有海量數據的時候,最好能有一個序列化到硬碟的操作。。。恰恰這個場景redis就可以辦到。。。

一:快速搭建

    好了,我們知道redis比較適合做的事情了,現在我們可以進行快速搭建。

第一步:下載redis-2.0.2.zip (32 bit)。然後改名為redis放在D盤中。

 

最重要的也就是下麵兩個:

redis-server.exe:        這個就是redis的服務端程式。

redis-cli.exe:             服務端開啟後,我們的客戶端就可以輸入各種命令測試了。

從圖中我們可以看到兩點:

①:沒有指定config file。

     原來redis建議我們做一個配置文件,那我就搞段配置。

daemonize:  是否以“守護進程”的方式開啟,當是守護進程的時候就不受控制台的影響了。

logfile:         log文件位置。

database:    開啟資料庫的個數。

dbfilename:  數據快照文件名。

save * *:     保存快照的頻率,第一個為時間,第二個為寫操作。

將這些配置好後,我們再看看:

②:我們看到redis預設的開放埠為6379。

 

二:安裝驅動

好了,redis已經搭建完畢了,現在我們就要用C#去操作redis,這也是我最渴望的功能,優先隊列~,先下載C#驅動

就可以看到如下3個dll。

最後我們做下小測試:

複製代碼
 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             var client = new RedisClient("127.0.0.1", 6379);
 6 
 7             //最後一個參數為我們排序的依據
 8             var s = client.AddItemToSortedSet("12", "百度", 400);
 9 
10             client.AddItemToSortedSet("12", "谷歌", 300);
11             client.AddItemToSortedSet("12", "阿裡", 200);
12             client.AddItemToSortedSet("12", "新浪", 100);
13             client.AddItemToSortedSet("12", "人人", 500);
14 
15             //升序獲取最一個值:"新浪"
16             var list = client.GetRangeFromSortedSet("12", 0, 0);
17 
18             foreach (var item in list)
19             {
20                 Console.WriteLine(item);
21             }
22 
23             //降序獲取最一個值:"人人"
24             list = client.GetRangeFromSortedSetDesc("12", 0, 0);
25 
26             foreach (var item in list)
27             {
28                 Console.WriteLine(item);
29             }
30 
31             Console.Read();
32         }
33     }
複製代碼

AddItemToSortedSet: 第三個參數也就是我們要排序的依據,這也非常適合我們做topK的問題,非常爽~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 測試CocoaPods是否安裝成功: 在終端輸: pod search + 開源類庫的名字 如: 若安裝成功會出現下圖所示: 如果安裝失敗,點擊回車後會報一行紅色錯誤,一般遇到這種情況最笨的辦法就是重新安裝。 簡單實用創建一個CocoaPods 1)在桌面上創建一個工程Demo(以Xcode7.3. ...
  • C3P0連接池 創建C3P0連接池的工具類 * 連接的規範介面: * javax.sql.DataSource介面 * 介面的實現類對象 * ComboPooledDataSource * 成員位置創建ComboPooledDataSource對象 * 使用靜態代碼塊給ComboPooledData ...
  • DDL
    #DDL--DATA DEFINITION LANGUAGE#----------庫----------------- #創建一個資料庫 CREATE DATABASE day19;#創建一個編碼為utf8的資料庫 CREATE DATABASE day191 CHARSET UTF8;#顯示所有數... ...
  • Oracle中dblink應用小結Oracle應用伺服器OS 1.查看資料庫的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name參數是true還是false show parameter global_name 如果為true,本地建立的db ...
  • 要求: 1、 主庫上線,主庫不停止服務的前提下做主從複製 2、 新添加一個叢庫 操作: 1、 在主庫導出數據(主庫正常運行); 2、 將主庫的sql文件傳到叢庫; 3、 叢庫恢複數據庫; 4、 在主伺服器上,創建複製賬號,賦許可權 Mysql > GRANT REPLICATION SLAVE ON ...
  • 剛發現的一個Redis不錯的學習平臺: window平臺Redis安裝 作者:lg831229 window平臺Redis安裝 redis windows安裝文件下載地址:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload# ...
  • Redis主從架構持久化存在一個問題,即前次測試的結論,持久化需要配置在主實例上才能跨越實例保證數據不丟失,這樣以來主實例在持久化數據到硬 盤的過程中,勢必會造成磁碟的I/O等待,經過實際測試,這個持久化寫硬碟的過程給應用程式帶來的影響無法忍受;因而在大多數場景下,會考慮把持久化配置 在從實例上,當 ...
  • Redis的複製功能是完全建立在之前我們討論過的基於記憶體快照的持久化策略基礎上的,也就是說無論你的持久化策略選擇的是什麼,只要用到了redis的複製功能,就一定會有記憶體快照發生,那麼首先要註意你的系統記憶體容量規劃,原因可以參考我上一篇文章中提到的Redis磁碟IO問題。 Redis複製流程在Slav ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...