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

.Net中Redis的基本使用

前言

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

Redis的使用 

安装包ServiceStack.Redis

NuGet\Install-Package ServiceStack.Redis 

引入包

using ServiceStack.Redis;

创建实例对象

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

7bd041582481482da28482dd161694b2.png

IRedisClient client=new RedisClient("127.0.0.1", 6379, 0);

FlushDb()

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

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

Set<>() 

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

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

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

Add<>()

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

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

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

GetValue() 

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

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

Get<>()

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

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

SetAll()

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

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类型数据。

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秒,到期自动销毁,读取过期数据会返回空。

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数据库中保存到明天这个时间,到期自动销毁,读取过期数据会返回空。

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

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

GetAndSetValue()

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

using (IRedisClient client=new RedisClient("127.0.0.1", 6379))
{client.GetAndSetValue("name", "小青龙");
}

 

相关文章:

.Net中Redis的基本使用

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

使用cli批量下载GitHub仓库中所有的release

文章目录 1\. 引言2\. 工具官网3\. 官方教程4\. 测试用的网址5\. 安装5.1. 使用winget安装5.2. 查看gh是否安装成功了 6\. 使用6.1. 进行GitHub授权6.1.1. 授权6.1.2. 授权成功6.2 查看指定仓库中的所有版本的release6.2.1. 默认的30个版本6.2.2. 自定义的100个版本6.3 下载特定…...

深入分析TaskView源码之触摸相关

问题背景 hi&#xff0c;粉丝朋友们&#xff1a; 大家好&#xff01;android 10以后TaskView作为替代ActivityView的容器&#xff0c;在课程的分屏pip自由窗口专题也进行了相关的详细介绍分析。 这里再补充一下相关的TaskView和桌面内嵌情况下的触摸分析 主要问题点&#xff…...

键盘快捷键工具Keyboard Maestro mac中文版介绍

Keyboard Maestro mac是一款键盘快捷键工具&#xff0c;它可以帮助用户通过自定义快捷键来快速完成各种操作&#xff0c;提高工作效率。Keyboard Maestro支持多种快捷键组合&#xff0c;包括单键、双键、三键、四键组合等&#xff0c;用户可以根据自己的习惯进行设置。此外&…...

Dubbo开发系列

一、概述 以上是 Dubbo 的工作原理图&#xff0c;从抽象架构上分为两层&#xff1a;服务治理抽象控制面 和 Dubbo 数据面 。 服务治理控制面。服务治理控制面不是特指如注册中心类的单个具体组件&#xff0c;而是对 Dubbo 治理体系的抽象表达。控制面包含协调服务发现的注册中…...

周赛372(正难则反、枚举+贪心、异或位运算、离线+单调栈)

文章目录 周赛372[2937. 使三个字符串相等](https://leetcode.cn/problems/make-three-strings-equal/)模拟&#xff08;正难则反&#xff09; [2938. 区分黑球与白球](https://leetcode.cn/problems/separate-black-and-white-balls/)枚举 贪心 [2939. 最大异或乘积](https:/…...

存储区域网络(SAN)之FC-SAN和IP-SAN的比较

存储区域网络(Storage Area Network&#xff0c;SAN)用于将多个系统连接到存储设备和子系统。 早期FC-SAN&#xff1a; 采用光纤通道(Fibre Channel&#xff0c;FC)技术&#xff0c;通过光纤通道交换机连接存储阵列和服务器主机&#xff0c;建立专用于数据存储的区域网络。 传…...

Leetcode_45:跳跃游戏 II

题目描述&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返…...

给新手教师的成长建议

随着教育的不断发展和进步&#xff0c;越来越多的新人加入到教师这个行列中来。从学生到教师&#xff0c;这是一个华丽的转身&#xff0c;需要我们不断地学习和成长。作为一名新手老师&#xff0c;如何才能快速成长呢&#xff1f;以下是一名老师教师给的几点建议&#xff1a; 一…...

新手教师如何迅速成长

对于许多新手教师来说&#xff0c;迈出教学的第一步可能会感到非常困难。不过&#xff0c;通过一些关键的策略和技巧&#xff0c;还是可以快速提升教学能力的&#xff0c;我将为大家提供一些实用的建议&#xff0c;帮助各位在教育领域迅速成长。 深入了解学科知识 作为一名老师…...

竞赛选题 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x…...

提升工作效率,使用AnyTXT Searcher实现远程办公速查公司电脑文件——“cpolar内网穿透”

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…...

mybatis使用foreach标签实现union集合操作

最近遇到一个场景就是Java开发中&#xff0c;需要循环多个表名&#xff0c;然后用同样的查询操作分别查表&#xff0c;最终得到N个表中查询的结果集合。在查询内容不一致时Java中跨表查询常用的是遍历表名集合循环查库&#xff0c;比较耗费资源&#xff0c;效率较低。在查询内容…...

请问DasViewer是否支持与业务系统集成,将业务的动态的数据实时的展示到三维模型上?

答&#xff1a;一般这种是以平台的方式来展示&#xff0c;云端地球实景三维建模云平台是专门做这一块的&#xff0c;可前往云端地球官网免费使用。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,…...

[ruby on rails]rack-cors, rack-attack

gem rack-attack gem rack-cors1. rack-attack 可以根据ip、域名等设置黑名单、设置访问频率 设置黑名单 # 新增 config/initializers/rack_attack.rb # 请求referer如果匹配不上设置的allowed_origins&#xff0c;返回403 forbidden Rack::Attack.blocklist(block bad domai…...

猫12分类:使用多线程爬取图片的Python程序

本文目标 对于猫12目标检测部分的数据集&#xff0c;采用网络爬虫来制作数据集。 在网络爬虫中&#xff0c;经常需要下载大量的图片。为了提高下载效率&#xff0c;可以使用多线程来并发地下载图片。本文将介绍如何使用Python编写一个多线程爬虫程序&#xff0c;用于爬取图片…...

《深度学习500问》外链笔记

1.这个是什么意思...

机器学习技术栈—— 概率学基础

机器学习技术栈—— 概率学基础 先验概率、后验概率、似然概率总体标准差和样本标准差 先验概率、后验概率、似然概率 首先 p ( w ∣ X ) p ( X ∣ w ) ∗ p ( w ) p ( X ) p(w|X) \frac{ p(X|w)*p(w)}{p(X)} p(w∣X)p(X)p(X∣w)∗p(w)​ 也就有 p ( w ∣ X ) ∝ p ( X ∣ …...

使用Redis实现分布式锁

Hi, I’m Shendi 使用Redis实现分布式锁 需求场景 需要使用到分布式锁的场景非常多&#xff0c;例如抢单等并发场景&#xff0c;这里举一个例子。 有一个商品&#xff0c;限量出售100个&#xff0c;一个用户下单&#xff0c;数量就减少一个&#xff0c;当剩下最后一个时&…...

linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解

一 、根据端口号 查看文件的部署位置 1.1 使用查看端口号对应的进程信息 方式一 &#xff1a; 使用netstat命令 netstat -tuln | grep 端口号-t&#xff1a;显示TCP连接 -u&#xff1a;显示UDP连接 -l&#xff1a;仅显示监听状态的连接 -n&#xff1a;以数字形式显示端口…...

HDLbits实战解析:Verification模块的Simulation测试技巧

1. 从零开始理解Verification模块的仿真测试 刚开始接触数字电路设计时&#xff0c;很多人会陷入一个误区——认为只要把模块代码写出来就万事大吉了。直到我第一次在HDLbits上遇到Verification模块的题目&#xff0c;才真正明白仿真测试的重要性。仿真就像给电路设计装上"…...

从P99延迟987ms到112ms:SITS 2026冠军方案全链路拆解——模型切分×内存映射×异步Prefill三阶协同优化

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生性能优化&#xff1a;SITS 2026 LLM推理加速实战技巧 在 SITS 2026 基准测试中&#xff0c;LLM 推理延迟与显存带宽利用率呈现强负相关。针对 7B–13B 参数量级模型&#xff0c;我们验证了三项 A…...

Zotero AI插件PapersGPT:双引擎驱动,实现文献智能管理与自动化分析

1. 项目概述&#xff1a;当Zotero遇上AI&#xff0c;文献管理进入“自动驾驶”时代 作为一名在学术圈和工业界都摸爬滚打多年的研究者&#xff0c;我深知文献阅读的痛。面对Zotero里堆积如山的PDF&#xff0c;从“标记为待读”到真正“读完并消化”&#xff0c;中间仿佛隔着一道…...

零知识证明与匿名凭证:构建下一代在线真人验证的隐私保护方案

1. 项目概述&#xff1a;当AI能完美伪装人类&#xff0c;我们如何在线“验明正身”&#xff1f;最近几年&#xff0c;我越来越频繁地遇到一个令人头疼的问题&#xff1a;在线上社区、论坛甚至一些专业协作平台里&#xff0c;你很难分辨屏幕对面和你热烈讨论的&#xff0c;究竟是…...

告别转换失败!深度解析Allegro PCB导入PADS报错的5个常见原因及解决方法

Allegro转PADS报错全攻略&#xff1a;从底层原理到精准排错 最近在开源硬件社区看到一个典型案例&#xff1a;某团队将Allegro设计的六层工业控制板导入PADS时&#xff0c;反复出现"Allegro未做好迁移准备"的报错&#xff0c;导致项目延期两周。这让我想起五年前第一…...

Windows Cleaner:你的C盘空间还能抢救一下吗?

Windows Cleaner&#xff1a;你的C盘空间还能抢救一下吗&#xff1f; 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当Windows系统右下角弹出那个令人焦虑的红色…...

Blackfin处理器在RFID系统中的高效实现方案

1. RFID技术演进与Blackfin处理器的机遇在自动识别技术领域&#xff0c;RFID&#xff08;射频识别&#xff09;正逐步取代传统条码系统。与需要光学对准的条码不同&#xff0c;RFID通过无线电波实现非接触式数据采集&#xff0c;典型工作距离从几厘米&#xff08;HF频段&#x…...

从信托义务到AI对齐:构建可信人工智能的技术与治理框架

1. 项目概述&#xff1a;当法律遇上代码最近和几位做AI产品落地的朋友聊天&#xff0c;大家不约而同地提到了同一个词&#xff1a;“对齐”。但聊着聊着&#xff0c;话题就从技术上的“奖励模型”和“人类反馈强化学习”&#xff0c;滑向了更让人头疼的领域——合规、责任和信任…...

AI友好型Excel知识库与自动化工具:提升数据分析与报表生成效率

1. 项目概述&#xff1a;一个为AI“投喂”的Excel生产力工具箱如果你和我一样&#xff0c;每天的工作都离不开Excel&#xff0c;但又不是那种能把VBA玩出花来的“表哥表姐”&#xff0c;那你一定经历过这种痛苦&#xff1a;面对一堆数据&#xff0c;你知道用某个公式或者透视表…...

Awesome Prompts元清单:高效导航AI提示工程生态的终极指南

1. 项目概述&#xff1a;当“Awesome”遇见“Awesome Prompts”如果你在技术社区&#xff0c;特别是AI应用开发或者提示工程领域混迹过一段时间&#xff0c;那么对“Awesome”系列清单一定不会陌生。它们就像一个个精心维护的宝藏库&#xff0c;汇聚了某个特定领域最优质的工具…...