.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", "小青龙");
}
相关推荐
phltxy14 分钟前
Redis Hash 数据类型:详解命令与实战场景
redis·算法·哈希算法
如果'\'真能转义说8 小时前
OOXML 文档格式剖析:哈希、ZIP结构与识别
xml·算法·c#·哈希算法
我是唐青枫8 小时前
终于不用手搓两级缓存了!C#.NET HybridCache 详解:L1 L2、标签失效与防击穿实战
redis·缓存·c#·.net
CHANG_THE_WORLD13 小时前
C语言中的 %*s 和 %.*s 和C++的字符串格式化输出
c语言·c++·c#
.柒宇.14 小时前
Redis主从复制集群搭建详解
数据库·redis·缓存·主从复制
IT策士16 小时前
Python 中间件系列:redis 深入浅出
redis·python·中间件
TeamDev16 小时前
在 Excel 加载项中嵌入 Web 视图
前端·后端·.net
小猿姐16 小时前
GitLab on Kubernetes:使用 KubeBlocks 部署生产级高可用 PostgreSQL 和 Redis
redis·postgresql·kubernetes
追逐时光者16 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 70 期(2026年5.01-5.10)
后端·.net
phltxy17 小时前
Redis 常见数据类型之全局通用命令详解
数据库·redis·bootstrap