南京網(wǎng)站制作設(shè)計(jì)公司鄭州好的seo外包公司
前言
Redis可以用來存儲(chǔ)、緩存和消息傳遞。它具有高性能、持久化、高可用性、擴(kuò)展性和靈活性等特點(diǎn),尤其適用于處理高并發(fā)業(yè)務(wù)和大量數(shù)據(jù)量的系統(tǒng),它支持多種數(shù)據(jù)結(jié)構(gòu),如字符串、哈希表、列表、集合、有序集合等。
Redis的使用?
安裝包ServiceStack.Redis
NuGet\Install-Package ServiceStack.Redis?
引入包
using ServiceStack.Redis;
創(chuàng)建實(shí)例對(duì)象
RedisClient()第一個(gè)參數(shù)為地址,第二個(gè)參數(shù)為端口號(hào),第三個(gè)參數(shù)填0~15,默認(rèn)不填為0。
IRedisClient client=new RedisClient("127.0.0.1", 6379, 0);
FlushDb()
該方法為刪除當(dāng)前Redis數(shù)據(jù)庫中的所有值。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.FlushDb();
}
Set<>()?
需要一個(gè)類型,第一個(gè)參數(shù)為Key值,第二個(gè)參數(shù)為Value。
該方法向當(dāng)前Redis數(shù)據(jù)庫中新增一個(gè)值,新增的值做了序列號(hào)處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲");
}
Add<>()
需要一個(gè)類型,第一個(gè)參數(shù)為Key值,第二個(gè)參數(shù)為Value。
該方法向當(dāng)前Redis數(shù)據(jù)庫中新增一個(gè)值,并且返回一個(gè)bool值,添加成功返回true,添加失敗返回false。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{Console.WriteLine(client.Add<string>("name", "豬兒蟲"));
}
GetValue()?
該方法根據(jù)key獲取內(nèi)容,獲取的值帶有雙引號(hào)。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var values = client.GetValue("name");Console.WriteLine(values);
}
Get<>()
該方法根據(jù)key值獲取內(nèi)容,獲取的值不帶雙引號(hào),內(nèi)部做了反序列化操作。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var values = client.Get<string>("name");Console.WriteLine(values);
}
SetAll()
該方法為批量向當(dāng)前Redis數(shù)據(jù)庫中新增數(shù)據(jù),接收一個(gè)Dictionary類型數(shù)據(jù)。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var SetDict = new Dictionary<string, string>();SetDict.Add("item", "001");SetDict.Add("name", "豬兒蟲");client.SetAll(SetDict);
}
GetAll()?
該方法為批量向當(dāng)前Redis數(shù)據(jù)庫中讀取數(shù)據(jù),接收一個(gè)數(shù)組類型數(shù)據(jù),返回一個(gè)Dictionary類型數(shù)據(jù)。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var NewList = new string[] { "item", "name" };var RedisList = client.GetAll<string>(NewList);foreach(var v in RedisList){Console.WriteLine(v);Console.WriteLine(v.Value);}
}
設(shè)置數(shù)據(jù)過期時(shí)間
該方法為向當(dāng)前Redis數(shù)據(jù)庫中添加一個(gè)name名為豬兒蟲的數(shù)據(jù),且在當(dāng)前Redis數(shù)據(jù)庫中保存10秒,到期自動(dòng)銷毀,讀取過期數(shù)據(jù)會(huì)返回空。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲", TimeSpan.FromSeconds(10));
}
?TimeSpan.FromHours(1)一小時(shí)
TimeSpan.FromDays(1)一天
TimeSpan.FromMinutes(1)一分鐘
設(shè)置數(shù)據(jù)特定過期時(shí)間?
該方法為向當(dāng)前Redis數(shù)據(jù)庫中添加一個(gè)name名為豬兒蟲的數(shù)據(jù),且在當(dāng)前Redis數(shù)據(jù)庫中保存到明天這個(gè)時(shí)間,到期自動(dòng)銷毀,讀取過期數(shù)據(jù)會(huì)返回空。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲", DateTime.Now.AddDays(1));
}
DateTime.Now.AddHours(1)當(dāng)前時(shí)間一小時(shí)后
DateTime.Now.AddMinutes(1)當(dāng)前時(shí)間一分鐘后
DateTime.Now.AddSeconds(1)當(dāng)前時(shí)間一秒后
AppendToValue()
該方法向當(dāng)前Redis數(shù)據(jù)庫中已經(jīng)有的數(shù)據(jù)追加數(shù)據(jù),注意,該追加的數(shù)據(jù)不進(jìn)行序列化處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.AppendToValue("name", "大聰明");
}
GetAndSetValue()
對(duì)數(shù)據(jù)重新賦值 ,注意,該重新賦值的數(shù)據(jù)不進(jìn)行序列化處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.GetAndSetValue("name", "小青龍");
}
?