偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

后端:推薦 2 個 .NET 操作的 Redis 客戶端類庫

數(shù)據(jù)庫 Redis
StackExchange.Redis還支持Redis Sentinel和Redis Cluster等高可用性和集群方案,使得應(yīng)用程序可以更容易地管理和擴展Redis實例。它是.NET平臺上操作Redis數(shù)據(jù)庫的最優(yōu)秀的客戶端類庫。

Redis ,是一個高性能(NOSQL)的key-value數(shù)據(jù)庫,Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。Redis是完全開源免費的,遵守BSD協(xié)議、

Redis特點

  • 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
  • 豐富的數(shù)據(jù)類型 – Redis支持的類型 String, Hash,List, , Set 及 Ordered Set 數(shù)據(jù)類型操作。
  • 原子性 – Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個操作是原子性的。多個操作也支持事務(wù),即原子性,通過MULTI和EXEC指令包起來。
  • 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
  • 高速讀寫,redis使用自己實現(xiàn)的分離器,代碼量很短,沒有使用lock(MySQL),因此效率非常高。

Redis特點

1、緩存

緩存現(xiàn)在幾乎是所有中大型網(wǎng)站都在用的必殺技,合理的利用緩存不僅能夠提升網(wǎng)站訪問速度,還能大大降低數(shù)據(jù)庫的壓力。Redis提供了鍵過期功能,也提供了靈活的鍵淘汰策略,所以,現(xiàn)在Redis用在緩存的場合非常多。

2、排行榜

很多網(wǎng)站都有排行榜應(yīng)用的,如京東的月度銷量榜單、商品按時間的上新排行榜等。Redis提供的有序集合數(shù)據(jù)類構(gòu)能實現(xiàn)各種復(fù)雜的排行榜應(yīng)用。

3、計數(shù)器

什么是計數(shù)器,如電商網(wǎng)站商品的瀏覽量、視頻網(wǎng)站視頻的播放數(shù)等。為了保證數(shù)據(jù)實時效,每次瀏覽都得給+1,并發(fā)量高時如果每次都請求數(shù)據(jù)庫操作無疑是種挑戰(zhàn)和壓力。Redis提供的incr命令來實現(xiàn)計數(shù)器功能,內(nèi)存操作,性能非常好,非常適用于這些計數(shù)場景。

4、分布式會話

集群模式下,在應(yīng)用不多的情況下一般使用容器自帶的session復(fù)制功能就能滿足,當(dāng)應(yīng)用增多相對復(fù)雜的系統(tǒng)中,一般都會搭建以Redis等內(nèi)存數(shù)據(jù)庫為中心的session服務(wù),session不再由容器管理,而是由session服務(wù)及內(nèi)存數(shù)據(jù)庫管理。

5、分布式鎖

在很多互聯(lián)網(wǎng)公司中都使用了分布式技術(shù),分布式技術(shù)帶來的技術(shù)挑戰(zhàn)是對同一個資源的并發(fā)訪問,如全局ID、減庫存、秒殺等場景,并發(fā)量不大的場景可以使用數(shù)據(jù)庫的悲觀鎖、樂觀鎖來實現(xiàn),但在并發(fā)量高的場合中,利用數(shù)據(jù)庫鎖來控制資源的并發(fā)訪問是不太理想的,大大影響了數(shù)據(jù)庫的性能??梢岳肦edis的setnx功能來編寫分布式的鎖,如果設(shè)置返回1說明獲取鎖成功,否則獲取鎖失敗,實際應(yīng)用中要考慮的細(xì)節(jié)要更多。

6、 社交網(wǎng)絡(luò)

點贊、踩、關(guān)注/被關(guān)注、共同好友等是社交網(wǎng)站的基本功能,社交網(wǎng)站的訪問量通常來說比較大,而且傳統(tǒng)的關(guān)系數(shù)據(jù)庫類型不適合存儲這種類型的數(shù)據(jù),Redis提供的哈希、集合等數(shù)據(jù)結(jié)構(gòu)能很方便的的實現(xiàn)這些功能。

7、最新列表

Redis列表結(jié)構(gòu),LPUSH可以在列表頭部插入一個內(nèi)容ID作為關(guān)鍵字,LTRIM可用來限制列表的數(shù)量,這樣列表永遠為N個ID,無需查詢最新的列表,直接根據(jù)ID去到對應(yīng)的內(nèi)容頁即可。

8、消息系統(tǒng)

消息隊列是大型網(wǎng)站必用中間件,如ActiveMQ、RabbitMQ、Kafka等流行的消息隊列中間件,主要用于業(yè)務(wù)解耦、流量削峰及異步處理實時性低的業(yè)務(wù)。Redis提供了發(fā)布/訂閱及阻塞隊列功能,能實現(xiàn)一個簡單的消息隊列系統(tǒng)。另外,這個不能和專業(yè)的消息中間件相比。

今天給大家分享3 款 .NET 流行的 Redis 客戶端類庫。

1. StackExchange.Redis

StackExchange.Redis是一款.NET平臺上的高性能、異步的Redis客戶端類庫,由StackExchange團隊開發(fā)。

官網(wǎng):https://github.com/StackExchange/StackExchange.Redis

圖片圖片

StackExchange.Redis通過使用異步方法和IO多路復(fù)用等技術(shù),提高了Redis訪問的性能和并發(fā)性。它還提供了豐富的功能和選項,如連接池、管道、事務(wù)、發(fā)布/訂閱、Lua腳本等,支持多種序列化和壓縮方式,可以輕松地與其他.NET應(yīng)用程序集成。

StackExchange.Redis還支持Redis Sentinel和Redis Cluster等高可用性和集群方案,使得應(yīng)用程序可以更容易地管理和擴展Redis實例。它是.NET平臺上操作Redis數(shù)據(jù)庫的最優(yōu)秀的客戶端類庫。

使用示例:

首先,需要在項目中安裝 StackExchange.Redis 包,

圖片圖片

可以通過 NuGet 管理器來安裝,也可以手動下載安裝。

然后,在代碼中創(chuàng)建 ConnectionMultiplexer 對象,這個對象代表與 Redis 服務(wù)器的連接。通常來說,應(yīng)該只創(chuàng)建一個 ConnectionMultiplexer 對象,然后在需要訪問 Redis 數(shù)據(jù)庫時使用它。

using StackExchange.Redis;
//初始化
ConnectionMultiplexer _conn = RedisConnectionHelp.Instance;
var database = _conn.GetDatabase(0);//指定連接的庫 0

簡單使用方法

//設(shè)置StringSet(key, value)
database.StringSet("name", "小明");
string str = database.StringGet("name");//輸出結(jié)果:小明
//設(shè)置時間,30s后過期。
database.StringSet("name_two", str, TimeSpan.FromSeconds(30));

除了字符串之外,StackExchange.Redis 還支持許多其他 Redis 數(shù)據(jù)類型,比如哈希表、列表、集合和有序集合??梢允褂孟鄳?yīng)的 API 來執(zhí)行相關(guān)的操作,比如:

// 操作hash表
string json = JsonConvert.SerializeObject(demo);//序列化
database.HashSet("user", "cang", json);
database.HashSet("user", "shan", json);
database.HashSet("user", "yun", json);
//獲取Model
string hashcang = database.HashGet("user", "cang");
demo = JsonConvert.DeserializeObject<Demo>(hashcang);//反序列化




//獲取List
RedisValue[] values = database.HashValues("user");//獲取所有value
IList<Demo> demolist = new List<Demo>();
foreach (var item in values)
{
    Demo hashmodel = JsonConvert.DeserializeObject<Demo>(item);
    demolist.Add(hashmodel);
}

2. FreeRedis

基于 .NET 的 Redis 客戶端,支持 .NET Core 2.1+、.NET Framework 4.0+ 以及 Xamarin。

功能特點

  • 所有方法名與 redis-cli 保持一致
  • 支持 Redis 集群(服務(wù)端要求 3.2 及以上版本)
  • 支持 Redis 哨兵模式
  • 支持主從分離(Master-Slave)
  • 支持發(fā)布訂閱(Pub-Sub)
  • 支持 Redis Lua 腳本
  • 支持管道(Pipeline)
  • 支持事務(wù)
  • 支持 GEO 命令(服務(wù)端要求 3.2 及以上版本)
  • 支持 STREAM 類型命令(服務(wù)端要求 5.0 及以上版本)
  • 支持本地緩存(Client-side-cahing,服務(wù)端要求 6.0 及以上版本)
  • 支持 Redis 6 的 RESP3 協(xié)議

?? 快速入門

public static RedisClient cli = 
new RedisClient("127.0.0.1:6379,password=123,defaultDatabase=12");
//打印命令日志
cli.Notice += (s, e) => Console.WriteLine(e.Log); 
cli.Set("name", "小明");
cli.MSet("name", "小明", "age", 33);
string value1 = cli.Get("name");
string[] vals = cli.MGet("name", "age");

?? Master-Slave (讀寫分離)

public static RedisClient cli = new RedisClient(
"127.0.0.1:6379,password=123,defaultDatabase=11",
"127.0.0.1:6380,password=123,defaultDatabase=11",
"127.0.0.1:6381,password=123,defaultDatabase=11"
);
var value = cli.Get("name");

?? Pipeline (管道)示例

using (var pipe = cli.StartPipe())
{
pipe.IncrBy("age", 50);
pipe.Set("name", );
pipe.Get("age");


object[] ret = pipe.EndPipe();
Console.WriteLine(ret[0] + ", " + ret[2]);
}

?? Redis Cluster (集群)

假如你有一個 Redis Cluster 集群,其中有三個主節(jié)點(7001-7003)、三個從節(jié)點(7004-7006),則連接此集群的代碼:

public static RedisClient cli = new RedisClient(
new ConnectionStringBuilder[] { "192.168.0.2:7001"
, "192.168.0.2:7002", "192.168.0.2:7003" }
);

責(zé)任編輯:武曉燕 來源: 小明互聯(lián)網(wǎng)技術(shù)分享社區(qū)
相關(guān)推薦

2023-10-12 07:54:02

.NETXamarin框架

2021-08-01 23:18:21

Redis Golang命令

2024-05-29 07:30:41

2024-10-10 15:54:44

.NET開源Redis

2019-07-05 17:00:33

Redis數(shù)據(jù)庫可視化管理

2024-09-14 08:16:24

Redis客戶端性能

2024-10-09 07:35:49

2015-01-13 10:32:23

RestfulWeb框架

2009-08-18 15:43:56

ASP.NET生成客戶端腳本

2009-07-24 17:31:56

ASP.NET AJA

2014-03-10 10:22:40

JavaScriptJS弊端

2010-08-27 14:43:03

DB2服務(wù)器

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2011-05-18 09:56:31

UbuntuLinux客戶端

2015-08-26 17:31:03

UbuntuBT客戶端

2020-12-21 09:53:52

Redis工具開源

2015-05-25 14:33:38

Redis開源

2014-12-22 11:04:30

Windows AzuiPhone虛擬機

2024-02-05 08:50:57

Golang標(biāo)準(zhǔn)庫客戶端

2010-07-19 17:53:57

Telnet客戶端
點贊
收藏

51CTO技術(shù)棧公眾號