南京網(wǎng)站制作設(shè)計公司鄭州好的seo外包公司
前言
Redis可以用來存儲、緩存和消息傳遞。它具有高性能、持久化、高可用性、擴展性和靈活性等特點,尤其適用于處理高并發(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)建實例對象
RedisClient()第一個參數(shù)為地址,第二個參數(shù)為端口號,第三個參數(shù)填0~15,默認不填為0。
IRedisClient client=new RedisClient("127.0.0.1", 6379, 0);
FlushDb()
該方法為刪除當前Redis數(shù)據(jù)庫中的所有值。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.FlushDb();
}
Set<>()?
需要一個類型,第一個參數(shù)為Key值,第二個參數(shù)為Value。
該方法向當前Redis數(shù)據(jù)庫中新增一個值,新增的值做了序列號處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲");
}
Add<>()
需要一個類型,第一個參數(shù)為Key值,第二個參數(shù)為Value。
該方法向當前Redis數(shù)據(jù)庫中新增一個值,并且返回一個bool值,添加成功返回true,添加失敗返回false。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{Console.WriteLine(client.Add<string>("name", "豬兒蟲"));
}
GetValue()?
該方法根據(jù)key獲取內(nèi)容,獲取的值帶有雙引號。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var values = client.GetValue("name");Console.WriteLine(values);
}
Get<>()
該方法根據(jù)key值獲取內(nèi)容,獲取的值不帶雙引號,內(nèi)部做了反序列化操作。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{var values = client.Get<string>("name");Console.WriteLine(values);
}
SetAll()
該方法為批量向當前Redis數(shù)據(jù)庫中新增數(shù)據(jù),接收一個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()?
該方法為批量向當前Redis數(shù)據(jù)庫中讀取數(shù)據(jù),接收一個數(shù)組類型數(shù)據(jù),返回一個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ù)過期時間
該方法為向當前Redis數(shù)據(jù)庫中添加一個name名為豬兒蟲的數(shù)據(jù),且在當前Redis數(shù)據(jù)庫中保存10秒,到期自動銷毀,讀取過期數(shù)據(jù)會返回空。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲", TimeSpan.FromSeconds(10));
}
?TimeSpan.FromHours(1)一小時
TimeSpan.FromDays(1)一天
TimeSpan.FromMinutes(1)一分鐘
設(shè)置數(shù)據(jù)特定過期時間?
該方法為向當前Redis數(shù)據(jù)庫中添加一個name名為豬兒蟲的數(shù)據(jù),且在當前Redis數(shù)據(jù)庫中保存到明天這個時間,到期自動銷毀,讀取過期數(shù)據(jù)會返回空。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.Set<string>("name", "豬兒蟲", DateTime.Now.AddDays(1));
}
DateTime.Now.AddHours(1)當前時間一小時后
DateTime.Now.AddMinutes(1)當前時間一分鐘后
DateTime.Now.AddSeconds(1)當前時間一秒后
AppendToValue()
該方法向當前Redis數(shù)據(jù)庫中已經(jīng)有的數(shù)據(jù)追加數(shù)據(jù),注意,該追加的數(shù)據(jù)不進行序列化處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.AppendToValue("name", "大聰明");
}
GetAndSetValue()
對數(shù)據(jù)重新賦值 ,注意,該重新賦值的數(shù)據(jù)不進行序列化處理。
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.GetAndSetValue("name", "小青龍");
}
?