膚淺的探討一下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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...