微软高性能缓存AppFabric(二)使用
原文链接: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(二)使用的更多相关文章
- 微软高性能缓存AppFabric (一) 安装
博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...
- 微软分布式缓存 appfabric
appfabric为微软自家产的分布式缓存解决方案,随dotnet4.0一起发布.目前版本为1.1
- 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路
本文来自知乎官方技术团队的“知乎技术专栏”,感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动 ...
- 构建高性能服务(二)java高并发锁的3种实现
构建高性能服务(二)java高并发锁的3种实现 来源:http://www.xymyeah.com/?p=46 提高系统并发吞吐能力是构建高性能服务的重点和难点.通常review代码时看到sync ...
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...
- Solr4.8.0源码分析(19)之缓存机制(二)
Solr4.8.0源码分析(19)之缓存机制(二) 前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程.本节将更深 ...
- java 手写 jvm高性能缓存
java 手写 jvm高性能缓存,键值对存储,队列存储,存储超时设置 缓存接口 package com.ws.commons.cache; import java.util.function.Func ...
- [译]高性能缓存库Caffeine介绍及实践
概览 本文我们将介绍Caffeine-一个Java高性能缓存库.缓存和Map之间的一个根本区别是缓存会将储存的元素逐出.逐出策略决定了在什么时间应该删除哪些对象,逐出策略直接影响缓存的命中率,这是缓存 ...
- 使用微软分布式缓存服务Velocity(Windows Server AppFabric Caching Service)
概述 Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,可以缓存各种类型的数据,如CLR对象. XML.二进制数据等,并且支持集群模式的缓存服务器.Vel ...
随机推荐
- Mysql-15-mysql分布式应用
1.分布式应用的概念和优势 分布式数据库是指利用高速网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库.分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的 ...
- springBoot2.0 配置 mybatis+mybatisPlus+redis
一.Idea新建springBoot项目 next到完成,然后修改使用自己的maven 等待下载包 二.pom.xml文件 <?xml version="1.0" encod ...
- EOS多主机多节点环境配置
本文使用了四台同网段的主机,第一台做为eosio创世用户使用,另外三台做为出块者节点使用,最终实现了EOS多主机多节点的配置.最后EOSIO创世用户不再出块,由选举出来的各个节点轮流出块,下面将介绍具 ...
- [Leetcode]012. Integer to Roman
public class Solution { public String intToRoman(int num) { String M[] = {"", "M" ...
- Linux系统的vim编辑器的配置文件的初步说明
vim 编辑器的基本说明 vi编辑器的功能类似于Windows下的记事本,只能编辑普通文本,而vim编辑器则相当于Windows下的notepad++等高级编辑器,提升了代码开发效率. 将vi命令默认 ...
- WebGL之物体选择
原文地址: WebGL之物体选择 使用WebGL将图形绘制到画布后,如何与外部进行交互?这其中最关键的就是如何实现物体的选择.比如鼠标点击后判断是否选中了某个图形或图形的某个部分. 本节实现的效果: ...
- Java中的Enum(枚举)用法介绍
1. 关于Java Enum:学过C/C++等语言的人,应该都对Enum类型略知一二.Enum一般用来表示一组相同类型的常量.如性别.日期.月份.颜色等.对这些属性用常量的好处是显而易见的,不仅可以保 ...
- mysql报错this is incompatible with sql_mode=only_full_group_by
1.报错信息 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In aggregated query without GROUP ...
- sql server sql语句
添加联合唯一索引 create unique index 索引名 on 表名(列名1,列名2……)
- Entity framework 7通过代码添加外键关系的方法
这几天研究Asp.net5,也试着写了一些示例代码,因为网上的资料实在是太少了,所以在此把一些问题的解决方法记录下来,以备后查. 问题: 在EF7中,假如数据库已经存在,并且两个表具有外键关系,但是实 ...