在.Net中操作redis

一、环境

  • .Net 7
  • redis 7.2.4

二、所需类包

  • StackExchange.Redis

三、连接redis信息

appsettings.json配置redis连接信息


// Redis配置
//"Redis": {
// "Default": {
// "Connection": "", // 连接地址,端口号,密码
// "InstanceName": "", // 实例名
// "DefaultDB": "1" // 数据库
// }
//}, "Redis": {
"Host": "120.xxx.xx.xx", // ip地址
"Port": "6379", // 端口
"password": "123456", // redis密码
"InstanceName": "local", // 实例名称
"DefaultDb": 1, // 连接的库
"maxWritePoolSize": 60,
"maxReadPoolSize": 60,
"autoStart": true,
"ConnectTimeout": 60, // 超时
"KeepAlive": 5, // 保存x秒的活动连接
"recordeLog": false,
"preName": "test_" // key的前缀
},

四、实例

using AspNetFrame.Domain.Entity.User;
using AspNetFrame.Domain.Service;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using StackExchange.Redis;
using System.Security.Policy;
using System; namespace AspNetFrame.Api.Controller.Redis
{
[ApiController]
[Route("[controller]/[action]")]
public class RedisCnnTestController : ControllerBase
{
private readonly IConfiguration _configuration;
private IDatabase cache;
private ConnectionMultiplexer connection;
public RedisCnnTestController(IConfiguration configuration)
{
_configuration = configuration;
string redisHost = _configuration["Redis:host"]; // 连接的url
int redisPort = int.Parse(_configuration["Redis:port"]); // 端口
string Password =_configuration["Redis:Password"]; // 连接密码
int DefaultDatabase = int.Parse(_configuration["Redis:DefaultDb"]); // 数据库
int ConnectTimeout = int.Parse(_configuration["Redis:ConnectTimeout"]); // 超时时间
int KeepAlive = int.Parse(_configuration["Redis:KeepAlive"]); // 保存x秒的活动连接 // 连接配置
var configurationOptions = new ConfigurationOptions
{
EndPoints =
{
{ redisHost, redisPort },
},
DefaultDatabase = DefaultDatabase,
KeepAlive = KeepAlive, // 保存x秒的活动连接
Password = Password, // 连接密码
ConnectTimeout = ConnectTimeout, //超时时间
AllowAdmin = true,
};
connection = ConnectionMultiplexer.Connect(configurationOptions);
cache = connection.GetDatabase();
}
public JsonResult Test()
{
//string redisHost = _configuration["Redis:host"]; // 连接的url
//int redisPort = int.Parse(_configuration["Redis:port"]); // 端口
//string pwd = _configuration["Redis:Password"]; cache.StringSet("test", "hello");
string test = cache.StringGet("test");
JsonResult json = new JsonResult(new
{
code = 200,
msg = test
});
return json;
} [HttpPost]
public JsonResult Test2()
{
LoginUser loginUser = new LoginUser()
{
UserName = "admin",
Password = "admin",
AuthorityId = 1,
}; LoginUser loginUser2 = new LoginUser()
{
UserName = "admin2",
Password = "admin2",
AuthorityId = 1,
}; List<LoginUser> loginUsers = new List<LoginUser>() { loginUser, loginUser2 };
cache.StringSet("loginUserList", JsonConvert.SerializeObject(loginUsers), TimeSpan.FromMinutes(10)); // 过期时间为10分钟
cache.StringSet("loginUser_admin", JsonConvert.SerializeObject(loginUser), TimeSpan.FromMinutes(10));
cache.StringSet("test", "hello"); LoginUser redisLoginUser = JsonConvert.DeserializeObject<LoginUser>(cache.StringGet("loginUser_admin")); string test = cache.StringGet("test");
JsonResult json = new JsonResult(new
{
code = 200,
msg = test,
result= redisLoginUser
});
return json;
}
}
}

五、调用api结果

可视化工具:Another Redis Desktop Manager

redis中数据

这样就把list数据存入了redis中

在.Net中操作redis的更多相关文章

  1. Redis入门教程(三)— Java中操作Redis

    在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...

  2. Python中操作Redis

    一 Rdis基本介绍 redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set -- ...

  3. redis的安装使用以及在python中操作redis

    一.Redis介绍: Redis可以看作是一个key-value的存储系统,它为我们提供了丰富的数据结构,包括lists,sets,ordered sets和hashes.还包括了对这些数据结构的丰富 ...

  4. 项目中操作redis改brpop阻塞模式为订阅模式的实现-java实习笔记二

    更改项目需求以及项目之前阻塞模式问题的叙述已经在上一篇说过了,详情可参考:https://www.cnblogs.com/darope/p/10276213.html  ,https://yq.ali ...

  5. Django中操作Redis

    一 创建redis连接池 redis_pool.py pool = redis.ConnectionPool(host='10.211.55.4', port=6379) 二 引入连接池 import ...

  6. Java中操作Redis

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载后的文件为: 解压后,选择当前64位win7系统对 ...

  7. 在centos7中安装redis,并通过node.js操作redis

    引言 最近在学习node.js 连接redis的模块,所以尝试了一下在虚拟机中安装cent OS7,并安装redis,并使用node.js 操作redis.所以顺便做个笔记. 如有不对的地方,欢迎大家 ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. 在SpringBoot中引入Redis

    前言 之前我们只是在Spring中加入Redis用于session的存放,并没有对redis进行主动的存放,这次我们需要加入redis工具类来方便我们在实际使用过程中操作redis 已经加入我的git ...

  10. .Net中初探Redis

    一.简介 Redis是著名的NOSQL数据库,本质就是存储键值对结构的数据,为存储键值对数据做了优化,在大型网站中应用很多.Redis提供了数据的自动过期处理,因此适合存储临时数据. 和Redis类似 ...

随机推荐

  1. C# 单例模式使用 Singleton

    Singleton 类如下: public class Singleton<T> where T : class, new() { private static T _instance; ...

  2. windows 远程桌面 复制粘贴 无效

    rdpclip.exe进程没有运行或运行异常. rdpclip 是让rdp协议(远程桌面协议)可以通过远程复制文件的,如果你使用rdp(3389)远程连接别人或者被别人连接,通常这个进程都会启动,他的 ...

  3. #01背包,容斥,排列组合#洛谷 5615 [MtOI2019]时间跳跃

    题目 分析 不是凸多边形当且仅当边数小于2或者最长边大于等于其余边之和, 那么容斥一下,首先总权值为 \[\sum_{i=1}^nC(n,i)\times i=n\sum_{i=1}^nC(n-1,i ...

  4. Docker学习路线5:在 Docker 中实现数据持久化

    Docker 可以运行隔离的容器,包括应用程序和其依赖项,与主机操作系统分离.默认情况下,容器是临时的,这意味着容器中存储的任何数据在终止后都将丢失.为了解决这个问题并在容器生命周期内保留数据,Doc ...

  5. Go 语言中切片的使用和理解

    切片与数组类似,但更强大和灵活.与数组一样,切片也用于在单个变量中存储相同类型的多个值.然而,与数组不同的是,切片的长度可以根据需要增长和缩小.在 Go 中,有几种创建切片的方法: 使用[]datat ...

  6. HarmonyOS“一次开发,多端部署“优秀实践——玩机技巧,码上起航

    随着终端设备形态日益多样化,分布式技术逐渐打破单一硬件边界,一个应用或服务,可以在不同的硬件设备之间按需调用.互助共享,让用户享受无缝的全场景体验.作为应用开发者,广泛的设备类型也能为应用带来广大的潜 ...

  7. 支持API 9的Sample已上新,速来拿走

    原文:https://mp.weixin.qq.com/s/sPDG5sG5F_gTp0cE1VV3gQ,点击链接查看更多技术内容.   今年的华为开发者大会上我们发布了HarmonyOS 3.1 D ...

  8. Tailwind CSS 使用指南

    0x01 概述 (1)简介 Tailwind CSS 官网:https://www.tailwindcss.cn/ Tailwind CSS 是一个 CSS 框架,使用初级"工具" ...

  9. 【未测试】CentOS 6.5快速部署HTTP WEB服务器和FTP服务器

    CentOS 6.5快速部署HTTP WEB服务器和FTP服务器 [题记]本文使用CentOS 6.5minimal快速搭建HTTP服务器和仅供授权用户登陆的FTP服务器.意在使用授权FTP用户通过登 ...

  10. 实战指南:使用 xUnit.DependencyInjection 在单元测试中实现依赖注入【完整教程】

    引言 上一篇我们创建了一个Sample.Api项目和Sample.Repository,并且带大家熟悉了一下Moq的概念,这一章我们来实战一下在xUnit项目使用依赖注入. Xunit.Depende ...