Memcached 使用备注
ICSharpCode.SharpZipLib未能加载文件或程序集
Memcached使用的是0.84版本的dll,vs2013带的是0.86版本
在web.config中<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">节加入以下节点
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1B03E6ACF1164F73" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.86.0.518" newVersion="0.86.0.518" />
</dependentAssembly>
未标记为可序列化。
为所有要缓存的对象加可序列化属性太麻烦,需要对进行再次封装
/// <summary>
/// 向缓存服务器写入数据
/// </summary>
/// <param name="key">key</param>
/// <param name="value">数据</param>
/// <param name="seconds">缓存时间 </param>
/// <returns></returns>
public static bool SetData(string key, object value, int seconds)
{
string jsonString = JsonConvert.SerializeObject(value);
return MemcacheHelper.Set(key, jsonString, DateTime.Now.AddSeconds(seconds));
} /// <summary>
/// 从服务器读取数据
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="key">key</param>
/// <returns></returns>
public static T GetData<T>(string key)
{
object obj = MemcacheHelper.Get(key);
if (obj == null)
return default(T);
return JsonConvert.DeserializeObject<T>(obj.ToString());
}
使用上面的方法可能会导致复杂的集合类无法反序列化成功,报Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type .....错误
尝试将写入方法改为
/// <summary>
/// 向缓存服务器写入数据
/// </summary>
/// <param name="key">key</param>
/// <param name="value">数据</param>
/// <param name="seconds">缓存时间 </param>
/// <returns></returns>
public static bool SetData<T>(string key, T value, int seconds)
{
if (value == null)
return false;
string jsonString = JsonConvert.SerializeObject(value);
return MemcacheHelper.Set(key, jsonString, DateTime.Now.AddSeconds(seconds));
}
反序列化失败是偶尔出现,以待后测
Memcached 使用备注的更多相关文章
- memcached安装【转】
1.安装依赖软件 # yum -y install libevent libevent-devel perl-Test-Harness perl-Time-HiRes perl-TermReadKey ...
- Memcached 测试
Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用. 语法: s ...
- 安装repcached,并且测试其双向复制是否成功
备注:本实验不仅包括了repcached,还包括了memcache的配置安装 1.1实验环境. 1.2环境准备. 1.3配置一个memcache. 1.3.1安装memcache. 1.3.2启动me ...
- Memcached初探
一.Memcached是什么 Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度. Memcached基于 ...
- 转载:Centos7 从零编译配置Memcached
序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...
- [原创]Centos7 从零编译配置Memcached
序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...
- python对缓存(memcached,redis)的操作
1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- Memcached分布式缓存初体验
1 Memcached简介/下载/安装 Memcached是一个高性能的不是内存对象缓存系统,用于动态Web应用以减轻数据库负载.Memcached基于一个存储键/值对的HashMap.其客户端可以使 ...
- 高性能文件缓存key-value存储—Memcached
1.高性能文件缓存key-value存储—Redis 2.ASP.NET HttpRuntime.Cache缓存类使用总结 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出 ...
随机推荐
- python之模块定义、导入、优化详解
一.模块 1.模块的定义 模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用.模块可以分为以下四个通用类别 1 使用python编 ...
- 3D打印GCODE文件学习(一)
我家有一个天威的入门级的3D打印机.它有一个配套的软件叫“Rrint-RiteCoLiDo Repetier-Host V1.5.5”,用来连接.控制打印机.同时它可以加载各种切片软件,对各种3D模型 ...
- Mysql 编译安装脚本
cat mysql_init.sh##安装mariadb依赖包function install_yum(){ yum -y install $1}i="ncurses* bison gcc ...
- MySQL 用户连接与用户线程
本文转载自公众号数据库随笔,作者happypig 微信看起来麻烦 pig已经好长一段时间没有分享文章了,有点对不起订阅的朋友.最近在做比较复杂跟困难的事情,也并不一定最终会有成果,因此必须对此沉默. ...
- oracle中数字保留几位小数的问题
需求:#将数字填充到对应金额单中 select substr(b.payMoney,length(b.payMoney),1) 分, substr(b.payMoney,length(b.payMon ...
- java数学函数Math类中常用的方法
Math类提供了常用的一些数学函数,如:三角函数.对数.指数等.一个数学公式如果想用代码表示,则可以将其拆分然后套用Math类下的方法即可. Math.abs(12.3); ...
- 虚拟机模拟SSD用于Ceph测试
一.简单介绍 在一些使用场景中,我们需要使用SSD进行测试,如Ceph的分级,OpenStack多种云硬盘配置.在物理设备受限的情况下,我们可以采用模拟SSD的方式进行 二.SSD的标识 在实际的使用 ...
- My IELTS result has come out 我的雅思成绩出来了
Thanks to god, I finally get a score of 6.5, although my socres of listening and writing are only ...
- L2-024. 部落(并查集)*
L2-024. 部落 参考博客 #include<cstdio> #include<iostream> #include<set> #include<algo ...
- 移动端键盘遮挡input问题
在开发移动端项目的时候测试提出优化问题,即: input 获取焦点弹出系统虚拟键盘时, input 被键盘遮挡问题(PS:此问题只在安卓手机上有,ios系统是有自动处理的). 解决办法为: 当 inp ...