当前位置: 首页 > article >正文

.Net中Redis的Hash表操作

前言

Redis中的Hash是一种存储数据的数据结构,用于存储键值对的集合。Hash常用于存储对象或者记录,因为它可以将多个属性存储为一个键值对,这样可以方便地获取、修改、和删除对象中的单个属性。

Redis的使用 

安装包ServiceStack.Redis

NuGet\Install-Package ServiceStack.Redis 

引入包

using ServiceStack.Redis;

(一)String类型操作

1.1 Increment()

向当前Redis数据库中的item加1,第二个参数为自增量。

using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.Increment("item", 1);
}

1.2 Decrement()

向当前Redis数据库中的item减1,第二个参数为自减量。

using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    client.Decrement("item", 1);
}

1.3 ContainsKey()

判断当前Redis数据库中是否存在当前的key,存在返回ture,不存在返回false 。

using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    Console.WriteLine(client.ContainsKey("index"));
}

1.4 GetEntryType() 

查看当前Redis数据库中的key的类型。

using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{
    Console.WriteLine(client.GetEntryType("name"));
}

(二)Hash表的操作

2.1 SetEntryInHash()

向Redis数据库中新增Hash表,该方法需要传递三个参数,第一个参数为hashid,第二个参数为key值,第三个参数为value值。

client.SetEntryInHash("Key", "name", "猪儿虫");

2.2 GetValueFromHash()

查询Redis数据库中的hash表的单值,该方法需要传递两个参数,第一个参数为hashid,第二个参数为你要查询的key值,返回一个string类型。

var Keys = client.GetValueFromHash("Key", "name");

2.3 SetRangeInHash()

批量向Redis数据库中添加数据, 该方法传递俩个参数,第一个参数为hashid,第二个参数为一个字典类型的数据,该字典内保存的就是我们需要保存的数据。

Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("name", "猪儿虫");
keyValuePairs.Add("age", "18");
client.SetRangeInHash("Key", keyValuePairs);

2.4 GetAllEntriesFromHash()

批量读取Redis数据库中的数据,该方法返回一个字典类型的数据。

var Keyies = client.GetAllEntriesFromHash("Key");
foreach (var v in Keyies)
{
    Console.WriteLine(v.Key + "|" + v.Value);
}

2.5 SetEntryInHashIfNotExists() 

该方法会先判断数据库中是否存在该值,有返回False,不添加,没有返回Ture,添加到Redis数据库中,该方法需要传递三个参数,第一个参数为hashid,第二个参数为key值,第三个参数为value值。

var iosn = client.SetEntryInHashIfNotExists("Key", "index", "20");
Console.WriteLine(iosn);

2.6 StoreAsHash<>()

操作对象存入Redis数据库中,需要提供一个泛型,即为需要向Redis数据库中添加的对象,传入对象为对象本身。

创建一个对象

class User
{
    public string Id { get; set; }
    public string age { get; set; }
}

操作存入

client.StoreAsHash<User>(new User() { Id = "001", age = "18" });

 2.7 GetFromHash<>()

读取存入的对象,需要提供读取的对象的泛型,返回一个对象。

var Users = client.GetFromHash<User>("001");
Console.WriteLine(Users.age);

2.8 GetHashCount()

获取当前Hash表中所存的值的数量,传入一个参数hashid。

Console.WriteLine(client.GetHashCount("Key"));

2.9 GetHashKeys()

获取当前Hash表的所有的key值,返回一个List类型对象,传入一个参数hashid。

var keys = client.GetHashKeys("Key");
foreach (var v in keys)
{
   Console.WriteLine(v);
}

2.10 GetHashValues()

获取当前Hash表的所有的Value值,返回一个List类型对象,传入一个参数hashid。

var valuess = client.GetHashValues("Key");
foreach (var v in valuess)
{
   Console.WriteLine(v);
}

2.11 RemoveEntryFromHash()

删除对应Hash表中的对应的key值数据,传入第一个参数hashid,第二个参数需要删除的key值。

client.RemoveEntryFromHash("Key", "index");

2.12 HashContainsEntry()

判断Hash表中是否有该key的值,有返回Ture,没有返回False。

Console.WriteLine(client.HashContainsEntry("Key", "name"));

2.13 IncrementValueInHash()

向Hash表中的值进行自增加,第三个参数为增加量。

client.IncrementValueInHash("Key", "age", 5);

http://www.kler.cn/news/136800.html

相关文章:

  • 【Android】JNI报错 non-zero capacity for nullptr pointer分析
  • Chainlit集成LlamaIndex和Chromadb实现RAG增强生成对话AI应用
  • 2024下半年软考机考模拟系统已开放!小伙伴们速速练起来
  • 《上海大学学报(自然科学版)》
  • 912.排序数组(归并排序)
  • 常用 SQL 语句的大全
  • 使用大语言模型 LLM 做文本分析
  • lnmp极简保姆级教程(nginx+php+mysql)
  • 常用系统函数
  • 万字解析设计模式之 装饰者模式
  • 一文讲清楚MySQL常用函数!
  • 服务器64GB内存、8核CPU的MySQL 8配置参数
  • scala解析命令行参数详解
  • Ajax基础(应用场景|jquery实现Ajax|注意事项)
  • 存储区域网络(SAN)之FC-SAN和IP-SAN的比较
  • AI实践与学习1_Milvus向量数据库实践与原理分析
  • Caché for UNIX®, Linux及macOS的安装及配置
  • OpenGL 绘制点与三角形(Qt)
  • Flask实现cookie 开发
  • 计算机网络(持续更新…)
  • Nuxt3框架全局引用外部JS/CSS文件的相关配置方法
  • 【外汇天眼】投资之道:成功背后的频繁交易陷阱
  • 【C++深度剖析学习总结】28 函数对象分析
  • 服务注册与实现
  • Pytorch完整的模型训练套路
  • String转JsonObject 再转list<Map<String,Object>>