Mac OS 安装 Redis(用于连 Redis 服务器,方便查看数据):https://redis.io/topics/quickstart

  1. wget http://download.redis.io/redis-stable.tar.gz(没有wget命令,手动下载)
  2. tar xvzf redis-stable.tar.gz
  3. cd redis-stable
  4. make
  5. sudo make install
  6. make test(测试安装是否成功)

安装好之后,我们就可以使用redis-cli命令了,

连接 Redis 服务器:

$ redis-cli -h 12.22.10.33 -p 6379 -a "password"
12.22.10.33:6379> ping
PONG

查看 key 是否存在(1 表示存在):

$ exists test_key
(integer) 1

查看指定 key 的值类型:

$ type test_key
string

获取指定 key 的字符串值:

$ get test_key
"hello world"

上面是一些简单的redis-cli命令,更多命令查看:http://www.runoob.com/redis/redis-commands.html


ASP.NET Core 使用 Redis 客户端,最好的选择当然是 StackExchange.Redis,GitHub 地址:https://github.com/StackExchange/StackExchange.Redis

使用很简单,首先安装程序包:

PM> Install-Package StackExchange.Redis

使用简单示例:

static void Main(string[] args)
{
//var configurationOptions = new ConfigurationOptions
//{
// EndPoints =
// {
// "10.11.22.1", "6379",
// "10.11.22.2", "6379",
// "10.11.22.3", "6379"
// },
// Password = "aqsea3491"
//};
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("10.11.22.1:6379,10.11.22.1:6379,10.11.22.1:6379,password=123456");
IDatabase db = redis.GetDatabase();
string value = "abcdefg";
db.StringSet("test_key", value); value = db.StringGet("test_key"); Console.WriteLine(value);
Console.ReadLine();
}

当然,如果用于生产环境的话,需要再进行封装下,如果我们使用的是 ASP.NET Core 的话,还有一种不用自己封装的选择,那就是 Microsoft.Extensions.Caching.Redis,GitHub 地址:https://github.com/aspnet/Caching/tree/dev/src/Microsoft.Extensions.Caching.Redis

Microsoft.Extensions.Caching.Redis 是微软自己封装的 Redis 组件,内部使用的还是 StackExchange.Redis,但在 ASP.NET Core 中使用起来,非常简单。

首先安装程序包:

PM> Microsoft.Extensions.Caching.Redis

Startup.ConfigureServices配置:

public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc(); // For redis
// install-package Microsoft.Extensions.Caching.Redis
services.AddDistributedRedisCache(options =>
{
options.InstanceName = "";
options.Configuration = "10.11.22.1:6379,10.11.22.1:6379,10.11.22.1:6379,password=123456";
});
}

简单使用:

public class ValuesController : Controller
{
private readonly IDistributedCache _distributedCache; public ValuesController(IDistributedCache distributedCache)
{
_distributedCache = distributedCache;
} // GET api/values
[HttpGet]
public async Task<string> Get()
{
// redis operate
var key = "test_key";
var valueByte = await _distributedCache.GetAsync(key);
if (valueByte == null)
{
await _distributedCache.SetAsync(key, Encoding.UTF8.GetBytes("world22222"), new DistributedCacheEntryOptions().SetSlidingExpiration(DateTimeOffset.Now.AddSeconds(3000)));
valueByte = await _distributedCache.GetAsync(key);
}
var valueString = Encoding.UTF8.GetString(valueByte);
return valueString;
}
}

测试过程中,发现 Microsoft.Extensions.Caching.Redis 有一个问题,虽然IDistributedCache提供了SetStringAsync方法,但实际插入到 Redis 的值类型,并不是string,而是hash,可以用redis-cli命令进行测试:

114.55.56.213:6379> get test_key
(error) WRONGTYPE Operation against a key holding the wrong kind of value
114.55.56.213:6379> type test_key
hash

所以,没办法,只能使用SetAsync,然后读取再由byte转换为string

另外,微软封装的Caching,除了 Microsoft.Extensions.Caching.Redis,还有:

  • Microsoft.Extensions.Caching.Abstractions
  • Microsoft.Extensions.Caching.Memory
  • Microsoft.Extensions.Caching.SqlServer(使用 SqlServer 数据库,作为缓存存储)

详细使用,请查看:Working with a distributed cache

参考资料:

ASP.NET Core 使用 Redis 客户端的更多相关文章

  1. asp.net core 使用 Redis 和 Protobuf

    asp.net core 使用 Redis 和 Protobuf 前言 上篇博文介绍了怎么样在 asp.net core 中使用中间件,以及如何自定义中间件.项目中刚好也用到了Redis,所以本篇就介 ...

  2. ASP.NET Core 使用 Redis 实现分布式缓存:Docker、IDistributedCache、StackExchangeRedis

    ASP.NET Core 使用 Redis 实现分布式缓存:Docker.IDistributedCache.StackExchangeRedis 前提:一台 Linux 服务器.已安装 Docker ...

  3. asp.net Core 使用redis(StackExchange.Redis)

    原文:asp.net Core 使用redis(StackExchange.Redis) 一.添加配置(appsettings.json) "Redis": { "Def ...

  4. ASP.NET Core与Redis搭建一个简易分布式缓存

    ​本文主要介绍了缓存的概念,以及如何在服务器内存中存储内容.今天的目标是利用IDistributedCache来做一些分布式缓存,这样我们就可以横向扩展我们的web应用程序. 在本教程中,我将使用Re ...

  5. ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存

    前言 上篇博文介绍了怎么样在 asp.net core 中使用中间件,以及如何自定义中间件.项目中刚好也用到了Redis,所以本篇就介绍下怎么样在 asp.net core 中使用 Redis 进行资 ...

  6. 负载均衡的场景下ASP.NET Core如何获取客户端IP地址

    在ASP.NET中,使用负载均衡时,可以通过ServerVariables获取客户端的IP地址. var ip = request.ServerVariables["HTTP_X_FORWA ...

  7. Asp.net Core 使用Redis存储Session

    前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一, ...

  8. asp.net core 运用 Redis 配置步骤

    Redis可以用来存储session或直接存储键值对 首先要有asp.net core的项目,可以是webapi 或者MVC项目,还有有本地的Redis或者在远程服务器上,具体的安装就不讲述了 以下是 ...

  9. 在ASP.NET Core中获取客户端IP地址

    随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址.WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求. var ip = HttpContext.Current. ...

随机推荐

  1. bash, sh, dash 傻傻分不清楚

    原文链接,转载请注明出处: http://www.happycxz.com/m/?p=137 常见shell类型 Bourne shell (sh) UNIX 最初使用,且在每种 UNIX 上都可以使 ...

  2. COBBLER无人值守安装

    cobbler-自动安装系统 1.1 cobber简介 1.1.1 cobbler说明 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟 ...

  3. 阿里Dubbo疯狂更新,关Spring Cloud什么事?

    最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本. 我上次在写放弃Dubbo,选择最流行的Spring ...

  4. SpringMVC---Method

    GET 平时网页的一些基本的URL都是GET请求的,用于执行查询操作. 但是由于GET中URL是有长度的限制的,而GET会把所有的参数都放在URL中 因此就会有下面的问题: 1 数据都明文暴露,用户可 ...

  5. 自定义统一api返回json格式(app后台框架搭建三)

    在统一json自定义格式的方式有多种:1,直接重写@reposeBody的实现,2,自定义一个注解,自己去解析对象成为json字符串进行返回 第一种方式,我就不推荐,想弄得的话,可以自己去研究一下源码 ...

  6. 第三方插件渗透攻击之KingView

    类别:堆溢出 描述:本次渗透利用了KingView6.5.3 SCADA中的ActiveX插件中存在漏洞的方法调用target.ValidateUser(arg1, arg2),通过缓冲区溢出覆盖了S ...

  7. 《Metasploit魔鬼训练营》第一章习题

    书本p391.The time line is as follows: * May 7, 2007: Initial defect disclosure to the security@samba.o ...

  8. angularJS的一些用法

    AngularJS 事件指令: ng-click/dblclick ng-mousedown/up ng-mouseenter/leave ng-mousemove/over/out ng-keydo ...

  9. kafka原理和实践(六)总结升华

    系列目录 kafka原理和实践(一)原理:10分钟入门 kafka原理和实践(二)spring-kafka简单实践 kafka原理和实践(三)spring-kafka生产者源码 kafka原理和实践( ...

  10. 查看Page结构

    SQL Server存储数据的基本单元是Page,每一个Page的大小是8KB,数据文件是由Page构成的.在同一个数据库上,每一个Page都有一个唯一的资源标识,标识符由三部分组成:db_id,fi ...