今天被接触到Memcache, 先把自己在网上找到的资料和自己实践的过程记录一起记录下来, 以供自己日后查阅.
Memcache服务器端的安装
*安装libevent
Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.4.13。(如果你的系统已经安装了libevent,可以省去这一步骤)
cd /tmp
wget -c http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
#配置一个安装路径, 为/usr/local/libevent
./configure --prefix=/usr/local/libevent
make && make install
*安装memcached
cd /tmp
wget -c http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
#配置memcached的安装目录, 并绑定到已经安装的libevent.
./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent
make && make install
*启动memcached
./memcached -d -m 10 -u root -p 11211 -P /tmp/memcached.pid
注意:
运行/usr/local/memcache/bin/memcached 时有类似以下错误提示
/usr/local/memcache/bin/memcached : error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
#64位系统解决办法:
ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
#32位系统解决办法:
ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
在Hibernate中应用Memcached.
项目使用的是maven来管理, eclipse作为开发的工具. 下面的文字说明一这个开发环境做前提.
*引入相关的jar到项目中 -- 在POM中新增如下的依赖
<dependency>
<groupId>com.googlecode</groupId>
<artifactId>hibernate-memcached</artifactId>
<version>1.2</version>
</dependency>
如果你不能成功的下载相关的jar文件, 你应该新增下面的Repository到Pom
<repository>
<id>hibernate-memcached</id>
<name>hibernate-memcached</name>
<url>http://raykrueger.googlecode.com/svn/repository</url>
</repository>
# 如果不是用maven来管理项目的jar文件依赖, 你可以按照下面的步骤导入所有需要的jar:
1. 查看hibernate-memcached的pom文件, 打开该文件, 获取它的所有依赖的jar.
2. 通过其他的方法下载所有被依赖的jar.
3. 手动的导入所有的jars.
Hibernate中引用Memcacheed
*修改Hibernate配置文件, 如下:
#配置Hibernate使用cache提供类
hibernate.cache.provider_class=com.googlecode.hibernate.memcached.MemcachedCacheProvider
#设置查询缓存开启
hibernate.cache.use_query_cache=true
以上两个配置项是必须的(*
),
# 其它一些可选配置参数设置说明:
其它一些参数设置说明:
Property
|
Default
|
Description
|
hibernate.memcached.servers |
localhost:11211 |
memcached 服务地址,多个用空格分隔
格式host:port
|
hibernate.memcached.cacheTimeSeconds |
300 |
缓存失效时间,单位秒 |
hibernate.memcached.keyStrategy |
HashCodeKeyStrategy |
缓存Key生成存储HashCode算法 |
hibernate.memcached.readBufferSize |
DefaultConnectionFactory.
DEFAULT_READ_BUFFER_SIZE
|
从服务器读取数据缓存区大小
|
hibernate.memcached.operationQueueLength |
DefaultConnectionFactory.
DEFAULT_OP_QUEUE_LEN
|
Maximum length of the operation queue returned by this connection factory |
hibernate.memcached.operationTimeout |
DefaultConnectionFactory.
DEFAULT_OPERATION_TIMEOUT
|
操作超时时间设置 |
hibernate.memcached.hashAlgorithm |
HashAlgorithm.KETAMA_HASH |
新增缓存数据到服务器时使用的Hash散列算法。 当
hibernate-memcached 设置成 KETAMA_HASH算法时,注意:默认客户端API使用的是 HashAlgorithm.NATIVE_HASH |
hibernate.memcached.clearSupported |
false |
支持MemcachedCache.clear()方法清空缓存。
建议不要开启。 |
#在Hibernate的Model类中增加缓存策略, 可以用Annotation来实现 如下,
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
如果用到了One-to-many, 而且想缓存对应的Set, 可以在Set对应的Getter方法上加上上面的@Cache
CacheConcurrencyStrategy中一共有五个常量:
NONE – 不缓存
READ_ONLY, 只读模式,在此模式下,如果对数据进行更新操作,会有异常;
READ_WRITE,读写模式, 在更新缓存的时候会把缓存里面的数据换成一个锁
NONSTRICT_READ_WRITE,不严格的读写模式则不会的缓存数据加锁;
TRANSACTIONAL,事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持JTA环境
请根据各自Model的所起的具体作用选用适合的策略
分享到:
相关推荐
Linux环境下Memcache的安装
压缩包中包含最新版Win32 Memcache服务器端和安装及测试文档
技术分享:Linux下Memcache的源码安装
在Linux下memcache安装配置文档,很详细的哦
memcache服务器端 版本:1.2.1 安装方法:在cmd下,切换到解压目录,执行以下命令 memcached.exe -k install memcached.exe -k start 即可。以后每次开机,会自动作为服务启动,不需要的话,自己去服务中关闭自动启动
memcache的客户端,用maven构建,里有用hibernate-memcached与hibernate,spring3.0进行配置,也有与spring3.0单独配置。
这个文档是介绍如何在linux中安装memcache的完整的过程,比较详细的过程介绍,大家可以自己试验一下,仅供参考
linux平台使用的memcache压缩包,解压缩之后运行make && make install安装, 然后/usr/local/memcache/bin/memcache -d -m 1024 -u root -p 11211 -c 1024命令运行memcache
文档给出linux环境下,memcache安装过程步骤;同时提供memcache相关的软件包资源。主要帮助新手简单、快速完成memcache服务搭建!
NULL 博文链接:https://sunney2010.iteye.com/blog/656905
linux 基本操作,memcache应用,主要用于WEB站点。
这样服务器端已经安装完毕了。 4.下载php_memcache.dll,请自己查找对应的php版本的文件 5. 在C:\winnt\php.ini 加入一行 'extension=php_memcache.dll' 6.重新启动Apache,然后查看一下phpinfo,如果有memcache,...
一、在 linux 编译安装memcache、redis等,需要 gcc,make,cmake,autoconf,libtool 等工具, 直接使用yum安装即可: yum install gcc make cmake autoconf libtool 二、下载官方源码: memcached依赖于libevent库,因此...
java环境下的memcache服务器安装指导,以及在java中测试的jar包
Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库...
linux下安装包memcache-2.2.4.tgz
当初自己在linux下安装memcache缓存服务器,由于第一次操作,花费不少时间, 搞了半天记录成文档,亲自测试启动memcache可以运行,分享给第一次操作的生手。 如果本机linux有lib库也可以直接编译自己的lib库(建议...
Java开发中的Memcache原理及实现
linux环境安装memcache和php的memcache扩展的方法!!!
Linux+nginx+php+mysql+memcache服务器安装,配置与优化