redis基本用法学习(C#调用NRedisStack操作redis)

  redis官网文档中推荐C#中使用NRedisStack包连接并操作redis,本文学习C#调用NRedisStack操作redis的基本方式。
  新建Winform项目,在Nuget包管理器中搜索并安装NRedisStack包,如下图所示:

在这里插入图片描述
  主要调用StackExchange.Redis命名空间下ConnectionMultiplexer类的Connect函数连接redis,默认情况下只需指定redis所在服务器地址即可,端口默认为6379,同时没有连接密码,调用示例如下所示:

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redis.GetDatabase();

  redis安装目录下的redis.windows-service.conf中可以设置redis服务监听端口和密码,如下图所示,修改内容后,需要在Windows服务中重启redis服务后生效。
在这里插入图片描述在这里插入图片描述
  如果带端口和密码形式连接,需要在Connect函数中传入ConfigurationOptions对象实例,并在实例中设置密码、ip和端口,示例代码如下所示:

ConfigurationOptions options = new ConfigurationOptions();
options.Password = “XXXXXXX”;
options.EndPoints.Add(“XXXXXXX”, XXXX);
redis = ConnectionMultiplexer.Connect(options);
db = redis.GetDatabase();

  连接成功后,可以调用redis.GetStatus函数获取连接状态,如下图所示:
在这里插入图片描述

  redis.GetDatabase函数返回IDatabase接口对象实例,用于与redis服务器交互,该接口中定义了redis中各种数据类型相关的命令操作函数,函数名称都是以数据类型+操作命令的形式定义,下图为字符串类型键值对的操作函数:
在这里插入图片描述
  编写简单的测试程序,连接redis服务器设置或获取键值对,同时打开命令行连接redis进行交互,C#中的代码如下所示:

private void btnSet_Click(object sender, EventArgs e)
{if(string.IsNullOrEmpty(txtSeconds.Text)) {m_db.StringSet(txtKey.Text, txtValue.Text);}else{m_db.StringSet(txtKey.Text, txtValue.Text,new TimeSpan(0,0,Convert.ToInt32(txtSeconds.Text)));}            
}private void btnGet_Click(object sender, EventArgs e)
{if(!m_db.KeyExists(txtKey1.Text)){MessageBox.Show("不存在指定key:" + txtKey1.Text);return;}MessageBox.Show(m_db.StringGet(txtKey1.Text));
}

  如下截图所示,通过控制台查看redis保存的键值对,然后在Winform程序中获取指定的键的值,两边获取到的内容都是相同的:
在这里插入图片描述

  在Winform程序中设置新的键值对,同时设置过期时间,然后在控制台中查看并获取新增键的值及过期时间。等键值对过期后,在Winform中再获取键值时,失效的键值已经获取不到了。
在这里插入图片描述

参考文献:
[1]https://redis.io/docs/connect/clients/dotnet/
[2]https://github.com/redis/NRedisStack

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

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

相关文章

从及格走向优秀的纷享销客,成为了SaaS“全村的希望”

前不久,国漫《长安三万里》爆火,让很多观众看到破防 。尤其是影片结尾李白的那一句“轻舟已过万重山”,更是戳中无数成年人泪点。 与很多创业公司一样,在过去十几年,纷享销客始终在中国SaaS产业摸爬滚打。同质化之争、…

如何实现设备远程控制?

在工业自动化领域,设备远程控制是一项非常重要的技术。它使得设备可以在远离现场的情况下进行远程操作和维护,大大提高了设备的可用性和效率。 设备远程控制的应用场景有哪些? 远程故障排除:当设备出现故障时,工程师…

QC/PD快充电源产品应用介绍

• 原边650-700V SJ MOSFET采用低FOM值的ESM 技术,有利于提高系统效 率, 以及更佳的EAS和EMI等特性,对于一些不含PFC电路的系统更友好。 • 副边采用低FOM值的SGT同步整流电路,相比肖特基二极管整流能有更低的 损耗,有…

CQ 社区版 V2.7.0 发布 | 数据源版本扩充、新增批量执行功能等

2023 年的最后一个社区版本来啦!提前祝大家新年快乐~ ✿✿ヽ(▽)ノ✿ 应社区小伙伴的建议,本次版本增加了大量已支持数据源的适配版本!!!(是听劝的官方没错)同时,新增批量执行、Blo…

elasticsearch-py 8.x的一些优势

​ 早在 2022 年 2 月,当 Elasticsearch 8.0 发布时,Python 客户端也发布了 8.0 版本。它是对 7.x 客户端的部分重写,并带有许多不错的功能(如下所述),但也带有弃用警告和重大更改。今天,客户端的 7.17 版本仍然相对流行,每月下载量超过 100 万次,占 8.x 下载量的 ~50…

comfyUI + animateDiff video2video AI视频生成工作流介绍及实例

原文:comfyUI animateDiff video2video AI视频生成工作流介绍及实例 - 知乎 目录 收起 前言 准备工作环境 comfyUI相关及介绍 comfyUI安装 生成第一个视频 进一步生成更多视频 注意事项 保存为不同的格式 视频宽高设置 种子值设置 提示词与负向提示词…

计算机毕业设计------企业ERP报销管理系统、

项目介绍 本项目分为前台和后台,用户有员工和管理员 员工主要功能有注册登录、查看公告、申请报销、个人信息修改等; 管理员主要功能登录登出、个人中心管理、员工管理、部门管理、报销种类管理、报销信息管理、系统管理等。 环境需要 1.运行环境&…

Rust学习:HelloWorld

Rust学习:HelloWorld HelloWorldRust语言简介主要特点先看程序分析程序 HelloWorld Rust语言简介 Rust是一种系统编程语言,旨在提供内存安全、并发性和性能。它由Mozilla Research开发,旨在解决C和C语言中的一些关键问题,特别是…

ESP8266 TCP/串口透传

简介 先在PC上做测试, 使用串口软件对ESP8266 模块进行设置, 使用网络助手软件与串口软件进行自由收发设置 ATRST ## 复位 ATCWMODE_DEF1 ## 设置为Station模式 ATCWJAP_DEF“路由器wifi名称”,“路由器wifi密码” ## 设置ESP连接的路由器名称密码 ATCIPSTART“TCP”,“192.1…

防止头文件重复包含

1. 使用#ifndef 这种方式是可跨平台的 #ifndef _TESTLIB1_ /*这种是跨平台的*/ #define _TESTLIB1_int sum(int a, int b); int sub(int a, int b);#endif // !TESTLIB12.使用#pragma once 使用之后,表示该文件只会被编译一次,但是只能在vs和vc等IDE使用。不具备跨平台。 注意:…

系统架构设计师教程(九)软件可靠性基础知识

软件可靠性基础知识 9.1 软件可靠性基本概念9.1.1 软件可靠性定义9.1.2 软件可靠性的定量描述9.1.3 可靠性目标9.1.4 可靠性测试的意义9.1.5 广义的可靠性测试与狭义的可靠性测试 9.2 软件可靠性建模9.2.1 影响软件可靠性的因素9.2.2 软件可靠性的建模方法9.2.3 软件的可靠性模…

15个热门的开源数据可视化项目

数据可视化(即 BI仪表盘)是图形表示的数据。它涉及产生将表示的数据之间的关系传达给图像查看者的图像。这种通信是通过在可视化过程中使用图形标记和数据值之间的系统映射来实现的。该映射建立了如何在视觉上表示数据值,确定图形标记的属性(例如大小或颜色)如何以及在多大程…

Appium安装及配置

一、前置说明 Appium 是一个用于自动化移动应用程序的开源测试框架,它支持 Android 和 iOS,同时支持使用多种编程语言(如 Java、Python、JavaScript 等)进行测试脚本的编写。 二、操作步骤 1. 安装Node.js Appium Server 由 n…

前端学习——指令

vue作为前端框架,为了简化或实现一些特定功能,提供了很多指令,那什么是指令呢? 所谓的指令就是能够完成特定功能的一些vue语法,比如属性绑定指令v-bind,事件绑定指令v-on,循环指令v-for等。在v…

AI中的强化学习是怎么做的呢?

1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewar…

软文营销的重要性,媒介盒子为你解答

信息茧房环立且用户注意力稀缺的时代下,品牌方唯有在内容上精耕细作才能吸引用户。软文营销能够帮助公司吸引流量,建立与消费者的信任联系,同时增加转化并产生更多的业务。接下来媒介盒子就和大家聊聊:软文营销的重要性。 一、 可…

BDD - Python Behave 入门

BDD - Python Behave 入门 Behave 是什么Behave 的主要特点和组成部分Behave 实践安装 BehaveBehave 项目目录结构创建项目创建 Feature 文件创建步骤定义文件 执行用例执行全部用例执行部分用例 生成报告生成 Json report生成 HTML 报告生成 Junit report生成 Cucumber report…

老师的责任和义务

作为一名老师,我们的责任和义务是重大的。在教育领域,我们扮演着至关重要的角色,肩负着培养下一代人才的重任。下面,我将以知乎的口吻,从几个方面谈谈老师的责任和义务。 确保学生获得高质量的教育。这包括制定合理的教…

广州华锐互动:船舶安全事故3D虚拟还原系统模拟海上事故发生,帮助员工提高安全意识

随着科技的不断发展,人们对于安全问题的关注度越来越高。在船舶行业中,由于船舶的特殊性和复杂性,船舶事故的发生往往会造成严重的人员伤亡和财产损失。为此,船舶安全事故3D虚拟还原系统应运而生,为船舶安全管理和培训…