C# StackExchange.Redis 用法汇总
简介
StackExchange.Redis是一种快速、零分配的. NET Redis客户端。 它支持广泛的Redis部署场景,从单机到主从到Redis集群等等。 除了基本Redis功能外,它还提供了批量操作,管道,事务,Lua脚本执行,Pub / Sub,内置的分区支持等功能。
安装
首先安装StackExchange.Redis客户端,可以通过NuGet包管理器添加它。 在Visual Studio中,打开nuget包管理器控制台(Tools-> NuGet包管理器-> 包管理器控制台),并执行以下命令:
Install-Package StackExchange.Redis
连接Redis
连接Redis非常简单。 要连接到Redis,您需要使用RedisConnection对象。 以下是使用示例:
using StackExchange.Redis;
var redis = ConnectionMultiplexer.Connect("localhost:6379,ssl=false,abortConnect=false");
var db = redis.GetDatabase();
这将创建一个Redis连接,并获得与数据库相对应的IDatabase实例。
基本操作
字符串操作
以下是一些基本的字符串操作
db.StringSet("key", "value");
var value = db.StringGet("key");
列表操作
以下是一些基本的列表操作
db.ListRightPush("mylist", "val1");
db.ListRightPush("mylist", "val2");
var values = db.ListRange("mylist");
集合操作
以下是一些基本的集合操作
db.SetAdd("myset", "value1");
db.SetAdd("myset", "value2");
var members = db.SetMembers("myset");
哈希操作
以下是一些基本的哈希操作
db.HashSet("myhash", "key1", "value1");
db.HashSet("myhash", "key2", "value2");
var values = db.HashValues("myhash");
事务操作
事务操作可以确保某些操作的原子性。
var transaction = db.CreateTransaction();
var resultTask = transaction.StringSetAsync("key", "value");
resultTask.ContinueWith(t =>
{
if (!t.Result)
{
throw new Exception("Redis set failed");
}
});
transaction.Execute();
var value = db.StringGet("key");
这样,如果在代码块中发生故障,整个事务将回滚。
示例
以下是一个使用Redis存储缓存的示例:
private readonly IDatabase _database;
public RedisCache()
{
var configurationOptions = ConfigurationOptions.Parse("localhost:6379,ssl=false,abortConnect=false");
configurationOptions.ResolveDns = true;
var connectionMultiplexer = ConnectionMultiplexer.Connect(configurationOptions);
_database = connectionMultiplexer.GetDatabase();
}
public async Task<string> GetCacheAsync(string key)
{
var result = await _database.StringGetAsync(key);
return result;
}
public async Task SetCacheAsync(string key, string value, TimeSpan? expiresIn = null)
{
await _database.StringSetAsync(key, value, expiresIn);
}
以上示例中的RedisCache类,使用StackExchange.Redis实现了一个基本的缓存存储类。
结论
StackExchange.Redis是一个快速,可靠的Redis客户端,并提供了许多Redis操作的API。 上面介绍了一些常用的操作,可以帮助在C#中使用Redis的开发者。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# StackExchange.Redis 用法汇总 - Python技术站