1、Redis简介

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

2、Redis主要特点

  • Redis支持数据的持久化

  • Redis支持多种数据结构

  • Redis支持数据的备份

3、Redis的下载安装

windows版本Redis下载链接:https://github.com/tporadowski/redis/releases

选择.zip免安装版本可直接通过命令使用。

在Windows终端(可直接在解压文件夹右键选择[在Windows终端打开])。

或者cmd控制台进入到Redis的解压文件夹运行指令

4、Redis的常用指令

安装服务:redis-server --service-install

卸载服务:redis-server --service-uninstall

开启服务:redis-server --service-start

停止服务:redis-server --service-stop

服务端启动时重命名:redis-server --service-start --service-name Redis1

启动客户端:redis-cli

推出客户端:quit

1)启动Redis服务

2)安装Redis服务为本地服务

3)安装完成,可以设置为自启动也可以手动启动

5、Redis在.NET Core的简单使用

1)新建ASP.NET Core Web API项目

打开NuGet包管理器安装StackExchange.Redis(注:本demo为VS2022新建,默认提供的天气预报的类和控制器)

2)新建Redis帮助类

/// <summary>
/// Redis帮助类
/// </summary>
public class RedisHelper
{
public ConnectionMultiplexer redis { get; set; }
public IDatabase db { get; set; }
public RedisHelper(string connection)
{
redis = ConnectionMultiplexer.Connect(connection);
db = redis.GetDatabase();
}
/// <summary>
/// 增加/修改
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool SetValue(string key, string value)
{
return db.StringSet(key, value);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetValue(string key)
{
return db.StringGet(key);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public bool DeleteKey(string key)
{
return db.KeyDelete(key);
}
}

3)新建返回结果类

/// <summary>
/// 返回结果类
/// </summary>
public class Result
{
/// <summary>
/// 执行结果
/// </summary>
public bool ImplementationResults { get; set; }
/// <summary>
/// Value的实时值
/// </summary>
public string Value { get; set; }
/// <summary>
/// 缓存的Value值
/// </summary>
public string CacheValue { get; set; }
/// <summary>
/// 错误信息
/// </summary>
public string Error { get; set; }
}

4)控制器类

[ApiController]
[Route("[controller]/[action]")]
public class WeatherForecastController : ControllerBase
{
public WeatherForecastController()
{
}
// 连接Redis客户端
RedisHelper redisHelper = new RedisHelper("127.0.0.1:6379");
string value = "this is a test redis string";
Result result = null;
/// <summary>
/// 查询
/// </summary>
/// <param name="key">key</param>
/// <returns></returns>
[HttpGet, HttpPost]
public string Search(string key)
{
string returnStr = "";
if (!string.IsNullOrWhiteSpace(key))
{
string value = redisHelper.GetValue(key);
if (!string.IsNullOrWhiteSpace(value))
returnStr = value;
else
returnStr = "key的值不存在!";
} else
returnStr = "key的值不能为空!";
return returnStr;
}
/// <summary>
/// 新增
/// </summary>
/// <param name="key">key</param>
/// <returns></returns>
[HttpGet, HttpPost]
public Result Insert(string key)
{
result = new Result();
if (!string.IsNullOrWhiteSpace(key))
{
bool isInsertSuccess = redisHelper.SetValue(key, value);
result.ImplementationResults = isInsertSuccess;
if (isInsertSuccess)
{
// 查询mytestkey的实时值
var info = Search("mytestkey");
if (!string.IsNullOrWhiteSpace(info))
result.Value = info;
}
} else
result.Error = "key的值不能为空!";
return result;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="key">key</param>
/// <param name="newValue">新的value值</param>
/// <returns></returns>
[HttpGet, HttpPost]
public Result Update(string key, string newValue)
{
result = new Result();
if (!string.IsNullOrWhiteSpace(key))
{
bool isUpdateSuccess = redisHelper.SetValue(key, newValue);
result.ImplementationResults = isUpdateSuccess;
// 查询mytestkey的实时值
var info = Search(key);
if (!string.IsNullOrWhiteSpace(info))
result.Value = info;
} else
result.Error = "key的值不能为空!";
return result;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
[HttpGet, HttpPost]
public Result Delete(string key)
{
result = new Result();
if (!string.IsNullOrWhiteSpace(key))
{
// 查询mytestkey的实时值
var info = Search(key);
if (!string.IsNullOrWhiteSpace(info))
result.Value = info;
bool isDeleteSuccess = redisHelper.DeleteKey(key);
result.ImplementationResults = isDeleteSuccess;
if (isDeleteSuccess)
{
// 查询mytestkey的缓存值
var infoCache = Search(key);
if (!string.IsNullOrWhiteSpace(infoCache))
result.CacheValue = "缓存值查询结果:" + infoCache;
}
} else
result.Error = "key的值不能为空!";
return result;
}
}

5)Startup.cs中添加swagger文档注释

生成带有注释的swagger文档

public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "RedisDemo", Version = "v1" });
var basePath = PlatformServices.Default.Application.ApplicationBasePath;
var xmlPath = Path.Combine(basePath, "APIHelp.xml");
c.IncludeXmlComments(xmlPath, true);
});
}

直接在swagger中测试执行

测试之前要在Redis中添加key的值,下面简单介绍一下Redis可视化软件

6、Redis可视化软件

1)RedisDesktopManager(付费软件)

官网:https://rdm.dev/

官方GitHub:https://github.com/uglide/RedisDesktopManager

Windows版本下载链接:https://github.com/lework/RedisDesktopManager-Windows/releases

1、输入实例名,连接地址和端口号连接到Redis

2、新建key,可随时Reload刷新查看key及其value的变化

2) Redis Assistant(免费,推荐)

下载链接:http://www.redisant.cn/

使用方法与RedisDesktopManager相同,使用截图如下

1、输入实例名,连接地址和端口号连接到Redis

2、新建key,可随时点击左上角工具栏的刷新按钮查看key及其value的变化

7、附录

Redis官网链接:https://redis.io/
Redis官方GitHub:https://github.com/redis/redis/releases
Redis下载链接:http://download.redis.io/releases/

以上就是.NET Core Redis的简单使用的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

.NET Core Redis的简单使用的更多相关文章

  1. c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具

    c#实例化继承类,必须对被继承类的程序集做引用   0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...

  2. .Net Core Web Api实践(三).net core+Redis+docker实现Session共享

    前言:上篇文章介绍了.net core+Redis+IIS+nginx实现Session共享,本来打算直接说明后续填坑过程,但毕竟好多坑是用docker部署后出现的,原计划简单提一下.net core ...

  3. Hangfire在ASP.NET CORE中的简单实现

    hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...

  4. Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

    Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www ...

  5. Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验

    Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...

  6. redis 的简单命令

    以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...

  7. Redis的简单了解以及主从复制

    1.Redis的简单了解 Redis是一种高性能的分布式NoSql数据库,持久存储,高并发,数据类型丰富,通过现场申请内存空间,同时可以配置虚拟内存.五种数据类型:string(字符串,这种格式和me ...

  8. 给 asp.net core 写一个简单的健康检查

    给 asp.net core 写一个简单的健康检查 Intro 健康检查可以帮助我们知道应用的当前状态是不是处于良好状态,现在无论是 docker 还是 k8s 还是现在大多数的服务注册发现大多都提供 ...

  9. Redis主从复制简单介绍

    由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基本一致! (精读阅读本篇可能花费您15分钟,略读需5分 ...

  10. Redis 的简单运算

    Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...

随机推荐

  1. Thinkphp6使用腾讯云发送短信步骤

    1.前提条件国内短信地址:https://console.cloud.tencent.com/smsv2 已开通短信服务,具体操作请参见 国内短信快速入门.如需发送国内短信,需要先 购买国内短信套餐包 ...

  2. python3的可迭代对象与迭代器对象

    可迭代对象与迭代器对象 通过一段简单的代码来理解这俩个概念 a = [1,2,3,4] for i in a: print(i) 这段代码很简单, 对 a 这个列表进行遍历, 然后打印输出每个元素, ...

  3. 解决fpdf不能写入中文问题

    安装依赖 pip3 install FPDF -i https://mirrors.aliyun.com/pypi/simple fpdf 原生是php调用的,不过他也提供了python的调用方式 示 ...

  4. <二>强弱指针使用场景之 多线程访问共享对象问题

    代码1 #include <iostream> #include <thread> using namespace std; class A { public: A() { c ...

  5. python3中的常见知识点2

    python3中的常见知识点2 列表与栈和队列 map()函数 python列表遍历的4种方式 参考链接 列表栈和队列 1.列表作为栈使用 栈:先进后出,First In Last Out 使用 ap ...

  6. PAM8403 3.3V音频功放调试笔记

    做I2S输出用了PT8211(实际上买到的丝印是GH8211), 双声道, LSB格式, 工作正常但是输出功率非常低, 喇叭声音要贴近了才能勉强听到, 所以打算做一个PT8211带功放的I2S模块. ...

  7. Flaks框架(Flask请求响应,session,闪现,请求扩展,中间件,蓝图)

    目录 一:Flask请求响应 1.请求相关信息 2.flask新手四件套 3.响应相关信息(响应response增加数据返回) 二:session 1.session与cookie简介 2.在使用se ...

  8. 玩转 Go 生态|Hertz WebSocket 扩展简析

    WebSocket 是一种可以在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 W ...

  9. VSCTF的Recovery

    题目如下: from random import randint from base64 import b64encode def validate(password: str) -> bool ...

  10. vue3 递归组件 树形组件

    递归组件 第一种方式,直接自己调用自己 Tree.vue <template> <div class="tree"> <div v-for=" ...