Redis 哈希(Hash)

哈希hash又称为散列、杂凑等,是将任意长度的输入通过散列算法变换为固定长度的输出,最终输出也就是哈希值。这种转换是一种压缩映射。也就是说,散列值的空间通常要远小于输入控件,不同的输入可能会散列成相同的输出,所以不可能通过散列值来确定唯一的输入值。

哈希表hash table是为了将数据映射到数组中某个位置,通过数组下标访问元素以提高数据的查询速度,这种查询的平均期望时间复杂度为O(1)。

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

读取

var list = new List<InsAuthenticationInfo>();Dictionary<string, string> cache;using (var redisClient = RedisManager.GetReadOnlyClient()){cache = redisClient.GetAllEntriesFromHash(CacheKeys.InsAuthenticationMap);}foreach (var item in cache){if (string.IsNullOrWhiteSpace(item.Key) || item.Value == null)continue;try{var info = JsonHelper.GetObject<InsAuthenticationInfo>(item.Value);if (info != null)list.Add(info);}catch (Exception e){Logger.Error(e, $"解析InsAuthenticationInfo失败,JSON:{item.Value}");}}if (ListIsNull(list))return null;return list.OrderBy(x => x.No, noComparer).ToList();

修改

using (var redisClient = RedisManager.GetClient()){string infoStr = redisClient.GetValueFromHash(CacheKeys.InsAuthenticationMap, info.No);if (string.IsNullOrWhiteSpace(infoStr))throw new Exception($"身份信息不存在,No:{info.No}");try{var updateItem = JsonHelper.GetObject<InsAuthenticationInfo>(infoStr);updateItem.Mid = info.Mid;updateItem.SessionId = info.SessionId;updateItem.CanBeUse = info.CanBeUse;updateItem.UpdateTime = DateTime.Now;redisClient.SetEntryInHash(CacheKeys.InsAuthenticationMap, info.No, JsonHelper.GetJson(updateItem));}catch (Exception e){Logger.Error(e, $"解析InsAuthenticationInfo失败,JSON:{infoStr}");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东Vue组件库NutUI 2.0发布:将支持跨平台!

NutUI 是一套来自京东用户体验设计部&#xff08;JDC&#xff09;前端开发部的移动端 Vue 组件库&#xff0c;NutUI 1.0 版本于 2018 年发布。据不完全统计&#xff0c;目前在京东至少有30多个 web 项目正在使用 NutUI。 经过一段时间紧锣密鼓的开发&#xff0c;近期&#xff0…

macbook 下载时睡眠_MacBook进入睡眠状态时如何自动使其静音

macbook 下载时睡眠You open your MacBook to take notes in class or during a meeting, and your music starts playing. Loudly. Not only did you disrupt everyone, you also revealed your passion for 90’s boy bands to a room full of people who once respected you…

Mac 的mysql5.7没有配置文件,如何解决only_full_group_by 问题

数据库版本是5.7.19&#xff0c;在写语句的时候&#xff0c;只要涉及ORDER BY,就会报错&#xff0c; ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column postscan.verifyDelayLog.auditor which is not function…

Spring MVC 入门(一)

什么是 Spring MVC 学习某一样东西之前&#xff0c;我们一定要大致知道这个东西是什么&#xff0c;能干什么&#xff0c;为什么要用它。 Spring MVC 是一个开源平台&#xff0c;一个基于 Spring 的 MVC 框架&#xff0c;它支持基于 Java 开发 Web 应用程序。MVC 架构很利于开发…

开源网关 Apache APISIX 认证鉴权精细化实战讲解

关注公众号并添加到“星标⭐”&#xff0c;防止错过消息后台回复【资料包】获取学习资料GitOps 新手入门到专家进阶实战详细教程作者钱勇&#xff0c;API7.ai 开发工程师&#xff0c;Apache APISIX Committer在当下云原生越发成熟的环境下&#xff0c;API 网关最核心的功能可以…

python应用POP3、IMAP、SMTP 协议,获取邮箱验证码

&#xff30;&#xff2f;&#xff30;&#xff13;和&#xff29;&#xff2d;&#xff21;&#xff30;是邮件相关的协议&#xff0c;&#xff29;&#xff2d;&#xff21;&#xff30;是比&#xff30;&#xff2f;&#xff30;&#xff13;更高级一点的协议&#xff0c;实…

固件中启用的虚拟化否_哪些固件或硬件机制可启用强制关机?

固件中启用的虚拟化否At one time or another, all of us have had to force our computers to shut down by pushing and holding the power button down until they powered off. Is this mechanism hardware-based, firmware-based, or both? Today’s SuperUser Q&A p…

简述闭包

闭包 这是我对闭包的一点小理解.有问题请直接指出,在此先谢过! 闭包的含义 封闭隔离的空间,在javascript中,只有函数能够符合这种特性; 为什么要用闭包呢? 因为在引用外部js文件(如jquery,各种框架)时防止变量重名造成的问题,同时也使代码更具隐私性; 获取闭包中数据的方法: …

Confluence 6 配置服务器基础地址备注

使用不同 URL。如果你配置了不同的基础 URL 地址或者你站点的访问者使用了不同的 URL 地址来访问你的 Confluence 地址&#xff0c;你有很大概率可能会受到错误信息。修改上下文地址。如果你修改了基础 URL 地址的上下文地址&#xff0c;你同时也需要修改下面的配置&#xff1a…

2019第10周知识总结

react 事件绑定 函数写法 文档总结 https://react.docschina.org/docs/handling-events.html 1 通过 constroucor绑定 class Toggle extends React.Component {constructor(props) {super(props);this.state {isToggleOn: true};// This binding is necessary to make this wo…

.NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记...

▲ 点击上方“DotNet NB”关注公众号回复“1”获取开发者路线图学习分享 丨作者 / 郑 子 铭 这是DotNet NB 公众号的第202篇原创文章目录为什么我们用 OrleansDapr VS OrleansActor 模型Orleans 的核心概念结合 OP Storming 的实践结合 OP Storming 的实践业务模型设计模型代…

PHP 多维数组转json对象

PHP 多维数组转json对象 php 数组转json对象&#xff0c;可能大家都知道要用json_encode,但是转换出来的格式多有不同&#xff0c;此处做个小小的记录&#xff01; 1. 一维数组转json对象 <?php $arr_1 [one, two, three]; var_dump(json_encode($arr_1)); $arr_2 [0 >…

微软文本检索_如何在Microsoft Word中引用其他文档中的文本

微软文本检索You probably have some text that you type often in your Word documents, such as addresses. Instead of retyping this text every time you need it, you can put this common text into one Word document and reference it in other documents–it’ll eve…

Hadoop-Flume-类比吸尘器图解

2019独角兽企业重金招聘Python工程师标准>>> 这是我自己理解Hadoop-Flume的方式 转载于:https://my.oschina.net/u/3697442/blog/1560613

BZOJ4327:[JSOI2012]玄武密码(SAM)

Description 在美丽的玄武湖畔&#xff0c;鸡鸣寺边&#xff0c;鸡笼山前&#xff0c;有一块富饶而秀美的土地&#xff0c;人们唤作进香河。相传一日&#xff0c;一缕紫气从天而至&#xff0c;只一瞬间便消失在了进香河中。老人们说&#xff0c;这是玄武神灵将天书藏匿在此。 很…

ChatGPT 之后,再玩玩 Stable-Diffusion

前些天体验的 ChatGPT 主要用来进行文本方面的处理&#xff0c;那么图片生成有没有这样的 AI 工具 呢&#xff1f;答案是肯定的。例如&#xff1a;和菜头公众号的题图和文章中的插图大多都是使用 Stable-Diffusion 的 AI 图形生成工具创作的。顺着 Stable-Diffusion 搜索了下相…

渗透测试入门DVWA 教程1:环境搭建

首先欢迎新萌入坑。哈哈。你可能抱着好奇心或者疑问。DVWA 是个啥&#xff1f; DVWA是一款渗透测试的演练系统&#xff0c;在圈子里是很出名的。如果你需要入门&#xff0c;并且找不到合适的靶机&#xff0c;那我就推荐你用DVWA。 我们通常将演练系统称为靶机&#xff0c;下面请…

指派问题(匈牙利算法)

问题描述&#xff1a; 在生活中经常遇到这样的问题&#xff0c;某单位需完成n项任务&#xff0c;恰好有n个人可承担这些任务。由于每人的专长不同&#xff0c;各人完成任务不同(或所费时间)&#xff0c;效率也不同。于是产生应指派哪个人去完成哪项任务&#xff0c;使完成n项任…

移动硬盘改台式机硬盘_如何在台式机或移动设备上离线使用Google云端硬盘

移动硬盘改台式机硬盘If there’s any drawback to using cloud-based services for all your productivity and organization needs, it’s that if you can’t get an Internet connection, you’re basically out of luck. 如果使用基于云的服务来满足您的所有生产力和组织需…

你可能不知道的容器镜像安全实践

大家好&#xff0c;我是Edison。最近在公司搭建CI流水线&#xff0c;涉及到容器镜像安全的话题&#xff0c;形成了一个笔记&#xff0c;分享与你&#xff0c;也希望我们都能够提高对安全的重视。时代背景近年来应用程序逐步广泛运行在容器内&#xff0c;容器的采用率也是逐年上…