.NET Core Redis的简单使用
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(付费软件)
官方GitHub:https://github.com/uglide/RedisDesktopManager
Windows版本下载链接:https://github.com/lework/RedisDesktopManager-Windows/releases
1、输入实例名,连接地址和端口号连接到Redis
2、新建key,可随时Reload刷新查看key及其value的变化
2) Redis Assistant(免费,推荐)
使用方法与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的简单使用的更多相关文章
- 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 ...
- .Net Core Web Api实践(三).net core+Redis+docker实现Session共享
前言:上篇文章介绍了.net core+Redis+IIS+nginx实现Session共享,本来打算直接说明后续填坑过程,但毕竟好多坑是用docker部署后出现的,原计划简单提一下.net core ...
- Hangfire在ASP.NET CORE中的简单实现
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...
- Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www ...
- Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...
- redis 的简单命令
以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...
- Redis的简单了解以及主从复制
1.Redis的简单了解 Redis是一种高性能的分布式NoSql数据库,持久存储,高并发,数据类型丰富,通过现场申请内存空间,同时可以配置虚拟内存.五种数据类型:string(字符串,这种格式和me ...
- 给 asp.net core 写一个简单的健康检查
给 asp.net core 写一个简单的健康检查 Intro 健康检查可以帮助我们知道应用的当前状态是不是处于良好状态,现在无论是 docker 还是 k8s 还是现在大多数的服务注册发现大多都提供 ...
- Redis主从复制简单介绍
由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基本一致! (精读阅读本篇可能花费您15分钟,略读需5分 ...
- Redis 的简单运算
Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...
随机推荐
- Linux C++目标中添加git版本信息
项目代码根目录下添加一个cmake文件git_version.cmake,内容如下: # get git hash macro(get_git_hash _git_hash) set(ENV{GIT_ ...
- (Java)设计模式:创建型
前言 这篇内容是从另一篇:UML建模.设计原则 中分离出来的,原本这个创建型设计模式是和其放在一起的 但是:把这篇创建型设计模式放在一起让我贼别扭,看起来贼不舒服,越看念头越不通达,导致老衲躺在床上脑 ...
- 10 STL-list
重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦! 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦! 写在前面,本篇章主要介绍S ...
- ArcObjects SDK开发 008 从mxd地图文件说起
1.Mxd文件介绍 ArcGIS的地图文件为.mxd扩展名.Mxd文件的是有版本的,和ArcGIS的版本对应.可以在ArcMap中的File-Save A Copy,保存一个地图拷贝的时候选择Mxd文 ...
- WEB入门——信息搜集1-20
WEB1--查看源码 查看源码即可得flag. WEB2--JS前端禁用 查看源码即可得flag. JavaScript实现禁用的方法简单来说就是当用户使用键盘执行某一命令是返回的一种状态,而这种状态 ...
- 【SQL】DML语句-SQL更新与删除:单表更新删除与连表更新删除语法
〇.概述 1.资料 sql连表删除:http://www.lanxinbase.com/?tag=sql%E8%BF%9E%E8%A1%A8%E5%88%A0%E9%99%A4 sql实现两表关联更新 ...
- 学习ASP.NET Core Blazor编程系列十六——排序
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- 【ASP.NET Core】MVC控制器的各种自定义:IActionHttpMethodProvider 接口
IActionHttpMethodProvider 接口的结构很简单,实现该接口只要实现一个属性即可--HttpMethods.该属性是一个字符串序列. 这啥意思呢?这个字符串序列代表的就是受支持的 ...
- Python 缩进语法的起源:上世纪 60-70 年代的大胆创意!
上个月,Python 之父 Guido van Rossum 在推特上转发了一篇文章<The Origins of Python>,引起了我的强烈兴趣. 众所周知,Guido 在 1989 ...
- SQLMap入门——判断文本中的请求是否存在注入
从文件中加载HTTP请求,SQLMap可以从一个文本文件中获取HTTP请求,这样就可以不设置其他参数(如cookie.POST数据等),txt文件中的内容为Web数据包 文本文件如图(请求数据可以通过 ...