PowerDotNet平台化软件架构设计与实现系列(08):缓存平台
摘要:几乎所有后端应用都会或多或少用到缓存,尤其是分布式缓存服务,以及和本地缓存构造的二级缓存。根据我们一贯的节约代码的风格,为了复用的目标,抽象出缓存平台,进行缓存管理。 考虑到很多公司都会自己造或者直接拿来主义使用各种各样的开源缓存轮子,本文介绍的就简单一点,聊下主要思路和实现思想就行,咩哈哈。 环境
阅读全文
posted @
2021-12-21 21:12
JeffWong
阅读(868)
推荐(3) 编辑
Spring Boot缓存应用实践
摘要:缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、通用缓存接口 1、缓存基础算法 (1)、FIFO(First In First Out),先进先出,和OS里的FIFO思
阅读全文
posted @
2018-05-02 09:45
JeffWong
阅读(4828)
推荐(6) 编辑
由Memcached使用不当而引发性能问题的两个经验总结
摘要:在这个cache everywhere的时代,在这个人人都会说分布式缓存的时代,Memcached几乎已成为网站开发中的标配。作为一名普通的coder,我们在编写缓存代码的时候,很多情况下可能都只是了解其基本原理,知道如何调用API,知道大概怎么work around,然后测试通过上线,通常这样做还真不会出事。然而看到这几天评论猛烈的雄文因为所谓的代码性能不高而被离职的程序员及其回帖,以及之前公司内部培训发现竟然有很多人不知道framework的缓存是天生的Thread Safe,实在忍不住,抛开非技术话题,也不讨论代码可读性,就说说Memcached缓存的使用,用好用对其实并不容易,而且说不
阅读全文
posted @
2013-09-21 22:39
JeffWong
阅读(7306)
推荐(10) 编辑
【讨论帖】控制分布式缓存“及时”过期的一种实现
摘要:大型网站中都会用到分布式缓存,现在经常使用的成熟可靠的分布式缓存产品有Memcached、Redis、Velocity等等。开发中我们在设计实现缓存层的时候,通常会按照业务模块,定义一些有意义的缓存键。比如,在一个非常典型的电子商务网站中,我们会缓存常用的字典表,如省市区县、商品分类、商品等等,一种常用的定义缓存键的方式如下: /// <summary> /// 缓存键管理 /// </summary> public class CacheKeyManager { /// <summary> /// 区域 /// </su...
阅读全文
posted @
2013-06-09 16:57
JeffWong
阅读(2825)
推荐(4) 编辑
【转】Memcached也是IO操作,小心误用
摘要:原文地址: http://blog.csdn.net/fenglibing/article/details/7037242 作者:fenglibing 在大型互联网的网络应用中,很多都会使用到Memcached或者类型似的Cache服务,用来提高网络响应的速度以及减少对数据库的访问,因为数据库是直接对硬盘进行操作,相对Memcached的直接内存操作,那肯定是要慢很多的了,因而适当的使用Memcached,提高系统的响应能力及吞吐量,这个效果还是明显的,特别是高并发的情况下效果更明显。 任何东西都有个适当原则,并不是任何东西都放到Memcached中,再从Memcached中读出来,就一定可以
阅读全文
posted @
2012-06-20 23:27
JeffWong
阅读(1622)
推荐(0) 编辑
Memcached常用命令及使用说明
摘要:一、存储命令存储命令的格式:<command name> <key> <flags> <exptime> <bytes><data block>参数说明如下:<command name>set/add/replace<key>查找关键字<flags>客户机使用它存储关于键值对的额外信息<exptime>该数据的存活时间,0表示永远<bytes>存储字节数<data block>存储的数据块(可直接理解为key-value结构中的value)1、添加(1
阅读全文
posted @
2011-11-06 18:17
JeffWong
阅读(143883)
推荐(9) 编辑
浅显理解*nix下的守护进程机制及fork函数
摘要:最近空闲时间重新仔细看了一下memcached的使用说明文档,硬着头皮看了一点源码,有时候看到一些晦涩的c函数感觉实在恍惚只能跳过。不过也不算是全无收获,终于LZ还敢再看c语言,终于LZ又看起了c语言,终于近期的睡眠质量明显好了很多。扯淡到此结束,下面记录一下自己的学习心得。一、Unix Daemon Processmemcached的守护进程机制使用经典的Unix daemon模式(daemon.c),它的实现部分源码如下:memcached daemon.c#if defined __SUNPRO_C || defined __DECC || defined __HP_cc# pragma
阅读全文
posted @
2011-10-26 23:26
JeffWong
阅读(2178)
推荐(2) 编辑
简单利用Memcached进行缓存层设计
摘要:正在考虑web应用缓存层的设计,参考了不少资料,估计还是需要用到相对成熟应用广泛的分布式缓存Memcached。在.net平台上早就有相对成熟的Memcached客户端产品,如BeITMemcached和EnyimMemcached,业余时间看了一下源码,自己分析并调用一下并不困难。这里简单介绍一下利用Memcached的一个简单的缓存层设计,示例代码基于EnyimMemcached,下面以贴代码为主。一、公共缓存接口分析asp.net web caching的缓存类,我们大致可以抽象出如下几个接口方法:Contractnamespace DotNet.Common.EnyimCache{ .
阅读全文
posted @
2011-07-17 19:58
JeffWong
阅读(7241)
推荐(4) 编辑