原文链接:http://www.cnblogs.com/Qbit/p/6102614.html

从AppFabric 的安装目录中选择两个dll添加到项目中,

默认安装位置:C:\Program Files\用于 Windows Server 的 AppFabric 1.1\

方法一: 使用代码指定配置:

创建缓存对象,在最后 指定的缓存名称处参考:

《微软高性能缓存AppFabric (一) 安装》文章里PowerShell 创建的缓存名称

"使用 New-Cache 命令创建所有必要的命名缓存。"

private DataCache GetCurrentCache()

{

DataCache dCache;

DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[];

servers[] = new DataCacheServerEndpoint

(this.txtAppFabricServerHost.Text,//主机名或IP地址

(int)this.numAppFabricPortNumber.Value);//端口号默认:22233 这里总让我想到网易的表情。。#23 !..
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration(); factoryConfig.Servers = servers; var factory = new DataCacheFactory(factoryConfig); dCache = factory.GetCache(this.txtAppFabricCacheName.Text);//指定缓存名称这里参考 return dCache; }

方法二:使用配置文件配置缓存

这种配置方法十分灵活,而且程序代码也比较简洁,只需要在配置文件中添加相应的配置即可。

private DataCache GetDefaultCache()

{

    var factory = new DataCacheFactory();

    var dCache = factory.GetCache(this.txtAppFabricCacheName.Text);//缓存名称 

    return dCache;

}

  

Config文件:

首先需要在configuration 添加一个Section,用来识别我们的配置

   <configSections>
<!-- required to read the <dataCacheClient> element -->
<section name="dataCacheClient"
type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"
allowLocation="true"
allowDefinition="Everywhere"/>
</configSections>

然后添加缓存配置:

    <dataCacheClient>
<hosts>
<host
name="127.0.0.1"
cachePort="22233"/>
<!--<host
name="CacheServer2"
cachePort="22233"/>-->
</hosts>
</dataCacheClient>

使用AppFabric 进行操作缓存:

//参考文档:https://msdn.microsoft.com/zh-cn/library/ee790846.aspx

// Declare array for cache host(s).

DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];

servers[0] = new DataCacheServerEndpoint("127.0.0.1", 22233);

// Setup the DataCacheFactory configuration.

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;

// Create a configured DataCacheFactory object.

DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".

DataCache myCache = mycacheFactory.GetCache("NamedCache1");

//add string object to cache with key "Key0"

#region 添加或更新

try

{

myCache.Add("Key0", "object added with Key0");

}

catch (Exception ex)

{

throw;

}

//add or replace string object in cache using key "Key0"

myCache.Put("Key0", "object replaced or added using Key0");

//add or replace object in cache using array notation

myCache["Key0"] = "object replaced or added using Key0";

#endregion

#region 获取

//get string from cache using key "Key0"

string myString1 = (string)myCache.Get("Key0");

//get string from cache using array notation

string myString2 = (string)myCache["Key0"];

#endregion

#region 删除

//remove object in cache using key "Key0"

myCache.Remove("Key0");

//remove object in cache using array notation

myCache["Key0"] = null;

#endregion

return View();

补充在最后:

看到其他兄弟写的一些Velocity的代码,数据是存储在一些Region 中的。这样在需要删除一部分Key的时候确实很方便。但是今天配置Session过程中注意到一条官方提醒

存储在region中的对象将不会在缓存主机之间负载平衡,但位于创建region的缓存主机中。因此,它通常不是推荐的配置。

仅当特殊要求查找单个主机上的所有会话对象时,才应该使用region。

微软高性能缓存AppFabric(二)使用的更多相关文章

  1. 微软高性能缓存AppFabric (一) 安装

    博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...

  2. 微软分布式缓存 appfabric

    appfabric为微软自家产的分布式缓存解决方案,随dotnet4.0一起发布.目前版本为1.1

  3. 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路

    本文来自知乎官方技术团队的“知乎技术专栏”,感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动 ...

  4. 构建高性能服务(二)java高并发锁的3种实现

    构建高性能服务(二)java高并发锁的3种实现 来源:http://www.xymyeah.com/?p=46   提高系统并发吞吐能力是构建高性能服务的重点和难点.通常review代码时看到sync ...

  5. [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能

    [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...

  6. Solr4.8.0源码分析(19)之缓存机制(二)

    Solr4.8.0源码分析(19)之缓存机制(二) 前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程.本节将更深 ...

  7. java 手写 jvm高性能缓存

    java 手写 jvm高性能缓存,键值对存储,队列存储,存储超时设置 缓存接口 package com.ws.commons.cache; import java.util.function.Func ...

  8. [译]高性能缓存库Caffeine介绍及实践

    概览 本文我们将介绍Caffeine-一个Java高性能缓存库.缓存和Map之间的一个根本区别是缓存会将储存的元素逐出.逐出策略决定了在什么时间应该删除哪些对象,逐出策略直接影响缓存的命中率,这是缓存 ...

  9. 使用微软分布式缓存服务Velocity(Windows Server AppFabric Caching Service)

    概述 Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,可以缓存各种类型的数据,如CLR对象. XML.二进制数据等,并且支持集群模式的缓存服务器.Vel ...

随机推荐

  1. C# 字节转换

    1.字符串与字节数组 System.Text.Encoding.UTF-8.GetBytes() 汉字转换后3个字节,数字转换和数字位数一样 GetString() 2.Int32值类型与字节数组 B ...

  2. .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)

    DDD领域驱动模型设计 什么是DDD 软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开 ...

  3. C++基础之预处理和语句

    (1)C++语言源程序中可以使用一些预处理中的编译命令,这些命令在程序被正常编译之前执行,被称为预处理命令,这些命令所实现的功能被称为预处理功能(2)常用的预处理命令有文件包含命令.宏定义命令和条件编 ...

  4. bzoj2597: [Wc2007]剪刀石头布(费用流)

    传送门 不得不说这思路真是太妙了 考虑能构成三元组很难,那我们考虑不能构成三元组的情况是怎么样 就是说一个三元组$(a,b,c)$,其中$a$赢两场,$b$赢一场,$c$没有赢 所以如果第$i$个人赢 ...

  5. 初识Scrapy之再续火影情缘

    前言Scrapy框架之初窥门径1 Scrapy简介2 Scrapy安装3 Scrapy基础31 创建项目32 Shell分析4 Scrapy程序编写41 Spiders程序测试42 Items编写43 ...

  6. has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

    https://www.cnblogs.com/caimuqing/p/6733405.html // TODO 支持跨域访问 response.setHeader("Access-Cont ...

  7. vuex和localStorage/sessionStorage 区别

    1.最重要的区别:vuex存储在内存,localstorage则以文件的方式存储在本地 2.应用场景:vuex用于组件之间的传值,(响应式的),localstorage则主要用于不同页面之间的传值(其 ...

  8. Java中23种设计模式--超快速入门及举例代码

    在网上看了一些设计模式的文章后,感觉还是印象不太深刻,决定好好记录记录. 原文地址:http://blog.csdn.net/doymm2008/article/details/13288067 注: ...

  9. LeetCode 101 Symmetric Tree 判断一颗二叉树是否是镜像二叉树

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For ex ...

  10. C. Glass Carving 正着做或者倒着做都可以

    http://codeforces.com/problemset/problem/527/C 这题总体思路就是,每画一条线,然后就找到x间距的最max值和y间距的最max值,相乘就是当前的ans 那么 ...