.Net中Redis的基本使用

前言

Redis可以用来存储、缓存和消息传递。它具有高性能、持久化、高可用性、扩展性和灵活性等特点,尤其适用于处理高并发业务和大量数据量的系统,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。

Redis的使用

安装包ServiceStack.Redis

NuGet\Install-Package ServiceStack.Redis

引入包

using ServiceStack.Redis;

创建实例对象

RedisClient()第一个参数为地址,第二个参数为端口号,第三个参数填0~15,默认不填为0。

cs 复制代码
IRedisClient client=new RedisClient("127.0.0.1", 6379, 0);

FlushDb()

该方法为刪除当前Redis数据库中的所有值。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.FlushDb();
}

Set<>()

需要一个类型,第一个参数为Key值,第二个参数为Value。

该方法向当前Redis数据库中新增一个值,新增的值做了序列号处理。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.Set<string>("name", "猪儿虫");
}

Add<>()

需要一个类型,第一个参数为Key值,第二个参数为Value。

该方法向当前Redis数据库中新增一个值,并且返回一个bool值,添加成功返回true,添加失败返回false。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    Console.WriteLine(client.Add<string>("name", "猪儿虫"));
}

GetValue()

该方法根据key获取内容,获取的值带有双引号。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    var values = client.GetValue("name");
    Console.WriteLine(values);
}

Get<>()

该方法根据key值获取内容,获取的值不带双引号,内部做了反序列化操作。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    var values = client.Get<string>("name");
    Console.WriteLine(values);
}

SetAll()

该方法为批量向当前Redis数据库中新增数据,接收一个Dictionary类型数据。

cs 复制代码
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数据库中读取数据,接收一个数组类型数据,返回一个Dictionary类型数据。

cs 复制代码
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);
    }
}

设置数据过期时间

该方法为向当前Redis数据库中添加一个name名为猪儿虫的数据,且在当前Redis数据库中保存10秒,到期自动销毁,读取过期数据会返回空。

cs 复制代码
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)一分钟

设置数据特定过期时间

该方法为向当前Redis数据库中添加一个name名为猪儿虫的数据,且在当前Redis数据库中保存到明天这个时间,到期自动销毁,读取过期数据会返回空。

cs 复制代码
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数据库中已经有的数据追加数据,注意,该追加的数据不进行序列化处理。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.AppendToValue("name", "大聪明");
}

GetAndSetValue()

对数据重新赋值 ,注意,该重新赋值的数据不进行序列化处理。

cs 复制代码
using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.GetAndSetValue("name", "小青龙");
}
相关推荐
时光追逐者7 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 46 期(2025年7.7-7.13)
c#·.net·.netcore
mit6.8247 小时前
Why C# and .NET are still relevant in 2025
c#
liulilittle7 小时前
.NET ExpandoObject 技术原理解析
开发语言·网络·windows·c#·.net·net·动态编程
军训猫猫头9 小时前
5.浏览本地文件获取路径与文件名称 C#例子 WPF例子
开发语言·c#·wpf
金心靖晨12 小时前
redis汇总笔记
数据库·redis·笔记
Hello.Reader12 小时前
Redis性能基准测试
数据库·redis·junit
沃夫上校13 小时前
Spring Boot 中使用 Redis
spring boot·redis
王柏龙13 小时前
aspnetcore Mvc配置选项中的ModelBindingMessageProvider
mvc·.net
鼠鼠我捏,要死了捏14 小时前
基于Redis Streams的实时消息处理实战经验分享
redis·消息队列·redis streams
neoooo14 小时前
Redis锁得住,世界就是你的:一探Redis分布式锁的原理、姿势与深度思考
java·redis·后端