现在开源缓存让人眼花撩乱,介绍一下两个比较典型的缓存
oscache支持内存缓存和硬盘缓存两种方式,且可以两种方式同时使用
使用方式:oscahce,oscache属于应用端缓存,即只能和应用服务在同一台机器上,或者说只能与运行的应用在同一个
JVM中使用。
集群方式: oscache 依赖jgroups 的组播功能可以进行分布式集群,oscache可以参考我
之前的一边文章:http://mengxs.iteye.com/admin/blogs/1023791 ,不过oscache在集群方面存在bug。
优点:
1.oscache提供了jsp标签库,在jsp页面可以很简单对数据进行缓存
2.支持cron表达式
3.配置简单,只要将配置文件稍作修改或不修改就可使用
4.oscache在读写操作时,并发对相同 key 进行写操作时它只写一次:多个线程T1,T2,T3并发去读取 key的缓存
对象,T1读取数据时发现数据过期,这时T1会获取key的写锁,T2,T3读取数据时也发现数据过期,同时发现这
个key的数据正在被其他线程进行写,这时T2,T3就处于等待状态,直到T1将新的数据写入缓存,T2、T3线
程被唤醒,T2、T3醒来后发现缓存数据已经被更新,他们会重新在缓存中获取key的数据。
缺点:
1.集群本身存在bug http://mengxs.iteye.com/admin/blogs/1023791
2.缓存只能与应用处于同一JVM种,不能够将oscache放在独立的缓存服务器上。不适合大规模集群
memcached是单独的缓存服务,独立于应用层,可以放在单独的机器上。将memcached安装完以后(具体安装看官方文档),如果要使用的话,需要下载memcached客户端,如:https://github.com/gwhalin/Memcached-Java-Client
优点:
1.memcached本身独立于应用层,可以放在单独的服务器上
2.多台memcached缓存服务器可以进行分布式,分布式是通过客户端来决定将key 的对象 缓存到指定的某台机器上,多台memcached之间是没有相互通信的,他们是单独互不影响。适合集群,不存在网络爆炸的危险
缺点:
客户端提供的缓存的同一key的读、写操作都是并发执行,这点感觉不如socache周到。
总结
从可扩展行和稳定性来看,建议使用memcached 作为内存缓存
分享到:
相关推荐
在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装 3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动...
memcached 64位 window memcached 64位 window memcached 64位 window
memcached, libevent, MemCachedClient
安装Memcached及Memcached配置
memcached安装软件 libevent-2.0.21-stable.tar.gz magent.tar.gz memcached-1.4.15.tar.gz
python-memcached python-memcached
memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d ...
使用memcached 方法 package com.war.common.util; import com.danga.MemCached.*; import java.util.Date; public class MemCached { protected static MemCachedClient mcc; protected static Logger log; ...
MemCached For Win32 服务器 -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
memcached可视化工具memadmin,memcached可视化工具memadmin
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
memcached.exe及memcached.dll
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,很好的提高了Web性能。Memcached需要有缓存服务端,采用java编程的话还需要memcached.jar,这就是java中实现memcached服务的...
memcached协议中文版 memcached协议中文版 memcached协议中文版
到memcached根目录 1、安装:memcached.exe –d install 2、启动:memcached.exe -d start 此时memcached已经注册为开机启动服务完成安装。 使用参数: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动...
安装Memcached及Memcached配置
memcached是一套分布式的快取系统,是一套开放源代码软件,以BSD license授权释出。是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 以下是 memcached 在 Windows 系统下的 x86/x64 版本...
memcached 安装文件,libevent库, C/C++ memcached 客户端库:libmemcached 全套工具:libevent-1.3.tar.gz,memcached-1.2.2.tar.gz,libmemcached-0.42.tar.gz 测试通过的