支持 .NET Core 的 Memcached 客户端 EnyimMemcachedCore
1. 介绍
EnyimMemcachedCore 是一个支持 .NET Core 的 Memcached 客户端,是从 EnyimMemcached 迁移至 .NET Core的,源代码托管在 GitHub 上:https://github.com/cnblogs/EnyimMemcachedCore ,NuGet 包地址:https://www.nuget.org/packages/EnyimMemcachedCore 。
2. 使用说明
2.1 安装 NuGet 包
- Install-Package EnyimMemcachedCore
2.2 配置
2.2.1 在 appsetting.json 中进行配置
1)不带验证的配置
- {
- "enyimMemcached": {
- "Servers": [
- {
- "Address": "memcached",
- "Port": 11211
- }
- ]
- }
- }
2)带验证的配置
- {
- "enyimMemcached": {
- "Servers": [
- {
- "Address": "memcached",
- "Port": 11211
- }
- ],
- "Authentication": {
- "Type": "Enyim.Caching.Memcached.PlainTextAuthenticator",
- "Parameters": {
- "zone": "",
- "userName": "username",
- "password": "password"
- }
- }
- }
- }
3)Startup.cs 中的配置代码
- public class Startup
- {
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddEnyimMemcached(options => Configuration.GetSection("enyimMemcached").Bind(options));
- }
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
- {
- app.UseEnyimMemcached();
- }
- }
2.2.2 直接硬编码配置(无需配置文件)
Startup.cs 中的硬编码配置代码
- public class Startup
- {
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddEnyimMemcached(options =>
- {
- options.AddServer("memcached", );
- //options.AddPlainTextAuthenticator("", "usename", "password");
- });
- }
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
- {
- app.UseEnyimMemcached();
- }
- }
2.3 调用
2.3.1 使用 IMemcachedClient 接口
- public class TabNavService
- {
- private ITabNavRepository _tabNavRepository;
- private IMemcachedClient _memcachedClient;
- public TabNavService(
- ITabNavRepository tabNavRepository,
- IMemcachedClient memcachedClient)
- {
- _tabNavRepository = tabNavRepository;
- _memcachedClient = memcachedClient;
- }
- public async Task<IEnumerable<TabNav>> GetAll()
- {
- var cacheKey = "aboutus_tabnavs_all";
- var result = await _memcachedClient.GetAsync<IEnumerable<TabNav>>(cacheKey);
- if (!result.Success)
- {
- var tabNavs = await _tabNavRepository.GetAll();
- await _memcachedClient.AddAsync(cacheKey, tabNavs, );
- return tabNavs;
- }
- else
- {
- return result.Value;
- }
- }
- }
2.3.2 使用 IDistributedCache 接口(来自 Microsoft.Extensions.Caching.Abstractions )
- public class CreativeService
- {
- private ICreativeRepository _creativeRepository;
- private IDistributedCache _cache;
- public CreativeService(
- ICreativeRepository creativeRepository,
- IDistributedCache cache)
- {
- _creativeRepository = creativeRepository;
- _cache = cache;
- }
- public async Task<IList<CreativeDTO>> GetCreatives(string unitName)
- {
- var cacheKey = $"creatives_{unitName}";
- IList<CreativeDTO> creatives = null;
- var creativesJson = await _cache.GetStringAsync(cacheKey);
- if (creativesJson == null)
- {
- creatives = await _creativeRepository.GetCreatives(unitName)
- .ProjectTo<CreativeDTO>().ToListAsync();
- var json = string.Empty;
- if (creatives != null && creatives.Count() > )
- {
- json = JsonConvert.SerializeObject(creatives);
- }
- await _cache.SetStringAsync(
- cacheKey,
- json,
- new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromMinutes()));
- }
- else
- {
- creatives = JsonConvert.DeserializeObject<List<CreativeDTO>>(creativesJson);
- }
- return creatives;
- }
- }
3. 问题支持
如果在使用中遇到问题,麻烦您在 GitHub 上提交 Issue 。
支持 .NET Core 的 Memcached 客户端 EnyimMemcachedCore的更多相关文章
- php memcache 缓存与memcached 客户端的详细步骤
缓存服务器有Memcache.Redis,我主要介绍了PHP中的Memcache,从Memcache简介开始,详细讲解了如Memcache和memcached的区别.PHP的 Memcache所有操作 ...
- CoreWCF 1.0 正式发布,支持 .NET Core 和 .NET 5+ 的 WCF
CoreWCF 1.0 正式发布,支持 .NET Core 和 .NET 5+ 的 WCF https://devblogs.microsoft.com/dotnet/corewcf-v1-relea ...
- [开源].NET高性能框架Chloe.ORM-完美支持.NET Core
扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...
- MySQL官方.NET Core驱动已出,支持EF Core
千呼万唤始出来MySQL官方.NET Core驱动已出,支持EF Core. 昨天MySQL官方已经发布了.NET Core 驱动,目前还是预览版,不过功能已经可用. NuGet 地址:https:/ ...
- PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有 ...
- .NET平台上的Memcached客户端介绍
早上接到一个任务,需要对Linux服务器的Memcached的update操作进行性能测试,我发现我是一个典型的“手里拿着锤子, 就把所有问题都当成钉子”的人.我第一个念头就是,上Memcached的 ...
- memcached客户端的使用
一. 概念 Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能. 二. 适用场合 1. 分布式应用 ...
- .NET平台上的Memcached客户端介绍(Memcached Providers)
早上接到一个任务,需要对Linux服务器的Memcached的update操作进行性能测试,我发现我是一个典型的“手里拿着锤子,就把所有问题都当成钉子”的人.我第一个念头就是,上Memcached的官 ...
- NET Core驱动已出,支持EF Core
NET Core驱动已出,支持EF Core 千呼万唤始出来MySQL官方.NET Core驱动已出,支持EF Core. 昨天MySQL官方已经发布了.NET Core 驱动,目前还是预览版,不过功 ...
随机推荐
- 清空Github上某个文件的历史版本
title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...
- error C4430:missing type specifier 解决错误
错误 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int ...
- cocos2dx调用浏览器打开网址
安卓端cocos2dx/platform/android路径下CCApplication.h: virtual void openURL(const char* pszUrl); CCApplicat ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- Linux学习
Linux 命令英文全称su:Swith user 切换用户,切换到root用户cat: Concatenate 串联uname: Unix name 系统名称df: Disk free 空余硬盘du ...
- MMORPG大型游戏设计与开发(攻击区域 扇形)
距离上次发布已经有了很长一段时间,期间由于各种原因没有更新这方面的技术分享,在这里深表遗憾.在MMO或其他的游戏中,会有针对各种形状的计算,通常在攻击区域里不会很复杂,常见的为矩形.圆形.扇形.今天分 ...
- python selenium
https://segmentfault.com/a/1190000007249396?_ea=1293878