.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.mfbz.cn/a/170978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zero-Shot Restoration of Back-lit Images Using Deep InternalLearning

ABSTRACT 如何恢复背光图像仍然是一项具有挑战性的任务。该领域最先进的方法基于监督学习&#xff0c;因此通常仅限于特定的训练数据。在本文中&#xff0c;我们提出了一种用于背光图像恢复的“零样本”方案&#xff0c;该方案利用深度学习的力量&#xff0c;但不依赖于任何先…

砖家测评:腾讯云标准型S5服务器和s6性能差异和租用价格

腾讯云服务器CVM标准型S5和S6有什么区别&#xff1f;都是标准型云服务器&#xff0c;标准型S5是次新一代云服务器规格&#xff0c;标准型S6是最新一代的云服务器&#xff0c;S6实例的CPU处理器主频性能要高于S5实例&#xff0c;同CPU内存配置下的标准型S6实例要比S5实例性能更好…

请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别

“请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别”。 屏幕前有多少同学在面试过程与遇到过类似问题&#xff0c; 可以在评论区留言&#xff1a;遇到过。 考察目的 对于 xxxx 技术的区别&#xff0c;在面试中是很常见的一个问题 一般情况下&#xff0c;面试官会通过这类…

无法打开 “XXXX“ ,因为Apple 无法检测其是否包含恶意软件

解决方案 设置 - > 隐私和安全性 这里会显示这个,点击仍要打开

QT专栏2 -Qt for Android

#2023年11月18日 # Qt version 6.6 JDK17 JDK 安装 Java Downloads | Oracle 设置环境变量 鼠标右键我的电脑&#xff0c;出现如下界面 Qt配置 改用JDK18&#xff0c;没有乱码&#xff0c;由于不影响APK产生。 做了好多尝试&#xff0c;更换JDK版本(11,18,19,21)&…

Ubuntu apt-get换源

一、参考资料 ubuntu16.04更换镜像源为阿里云镜像源 二、相关介绍 1. apt常用命令 sudo apt-get clean sudo apt-get update2. APT加速工具 轻量小巧的零配置 APT 加速工具&#xff1a;APT Proxy GitHub项目地址&#xff1a;apt-proxy 三、换源关键步骤 1. 更新阿里源 …

碰撞检测要点总结

Physics.SphereCast不会检测已经在半径内的碰撞&#xff01;&#xff01;&#xff01; 加个容错 private bool SphereCast(Vector3 _originPos,Vector3 _targetPos,out RaycastHit hit,LayerMask _layerMask) {Vector3 dir (_targetPos - _originPos).normalized;float radius…

机器视觉技术在现代汽车制造中的应用

原创 | 文 BFT机器人 机器视觉技术&#xff0c;利用计算机模拟人眼视觉功能&#xff0c;从图像中提取信息以用于检测、测量和控制&#xff0c;已广泛应用于现代工业&#xff0c;特别是汽车制造业。其主要应用包括视觉测量、视觉引导和视觉检测。 01 视觉测量 视觉测量技术用于…

800万欧元投资!Nu Quantum正构建可扩展量子计算机

​&#xff08;图片来源&#xff1a;网络&#xff09; 总部位于英国剑桥的量子计算机公司Nu Quantum宣布在种子轮融资中筹集了800万欧元&#xff08;约合人民币6225.7万元&#xff09;。此轮融资由Amadeus Capital Partner、Expeditions Fund和IQ Capital领投&#xff0c;该公…

axios 请求合集

post 请求 请求负载请求参数&#xff08;Request Payload&#xff09; import axios from axios import qs from query-stringexport function getRoles(data){return axios.post(目标地址,data,{headers:{Content-Type: application/json,},}) }表单请求参数&#xff08;Form…

VLAN综合实验

目录 一、实验拓扑 二、实验要求 三、实验步骤 1、交换机配置vlan 1&#xff09;SW1配置 2&#xff09;SW2配置 3&#xff09;SW3配置 2、路由器配置子接口、DHCP 配置结果&#xff1a; PC1-6IP地址 测试 一、实验拓扑 二、实验要求 1、pc1和pc3所在接口为access&a…

用户增长常见分析模型

一、用户增长是什么 用户增长基本上会涉及生意场上的各行各业&#xff0c;你开个店面希望有更多的客户光顾&#xff0c;你做了个APP希望有更多的用户经常使用&#xff0c;你搭建了个电商平台希望有更多的人下单买东西。 用户增长&#xff0c;即以提升用户LTV为目的&#xff08…

SpringBoot整合Data JPA

SpringBoot整合Data JPA 一、pandas是什么&#xff1f; 创建SpringBoot项目 二、使用步骤 1.引入库 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.…

HINSTANCE是什么?

HINSTANCE 就是 HMODULE&#xff1a;

HT8699R AB类和D类的升压双声道音频功率放大器

HT8699R是一款内置BOOST升压模块的立体声音频功率放大器。 HT8699R在D类模式下&#xff0c;内置的BOOST升压模块可通过外置电阻调节升压值&#xff0c;即使是锂电池供电&#xff0c;在升压至7V时&#xff0c;10% THDN&#xff0c;4Ω负载条件下&#xff0c;能连续输出25.5W 的…

生产环境_移动目标轨迹压缩应用和算法处理-Douglas-Peucker轨迹压缩算法

场景&#xff1a; 我目前设计到的场景是&#xff1a;即在地图应用中&#xff0c;对GPS轨迹数据进行压缩&#xff0c;减少数据传输和存储开销&#xff0c;因为轨迹点太频繁了&#xff0c;占用空间太大&#xff0c;运行节点太慢了&#xff0c;经过小组讨论需要上这个算法&#x…

Vue项目Jenkins自动化部署

1. 需求描述 我们希望提交uat分支时,UAT项目能够自动发布,提交master分支时,无需自动发布,管理员手工发布 2. 效果展示 3. 采用技术 Jenkins + K8S + Docker + Nginx 4. 具体实现 4.1 编写default.conf 在Vue项目根目录新建default.conf文件,主要进行代理配置、首页…

[GFCTF 2021]wordy 编写去花IDAPYTHON

首先查壳 发现没有东西 然后放入ida 发现没有main并且软件混乱 发现这里1144的地方 出错 IDA无法识别数据 报错内容是EBFF 机器码 这里看了wp知道是很常见的花指令 所以我们现在开始去花 这里因为我们需要取出 EBFF 下面的地址也都是 EBFF 所以工作量大 使用IDApython脚本即…

放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表

腾讯云3年轻量和5年云服务器CVM优惠活动入口&#xff0c;3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽&#xff0c;5年CVM云服务器可以选择2核4G和4核8G配置可选&#xff0c;阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…
最新文章