博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Memcached
阅读量:2382 次
发布时间:2019-05-10

本文共 2873 字,大约阅读时间需要 9 分钟。

Memcached

Memcached是一个免费开源、高性能、分布式的内存对象缓存系统。Memcached使用二级hash实现缓存,一级缓存实现资源存放节点的确认,二级缓存获得具体Key对应的Value。


Windows上的Memcached安装

安装流程

  1. cmd执行“memcached.exe -d install”,安装memcached。
  2. memcached.exe -d start,守护进程形式的启动Windows服务。
    -p 监听的端口
    -l 连接的IP地址, 默认是本机
    -d start 启动memcached服务
    -d restart 重起memcached服务
    -d stop|shutdown 关闭正在运行的memcached服务
    -d install 安装memcached服务
    -d uninstall 卸载memcached服务
    -u 以的身份运行 (仅在以root运行的时候有效)
    -m 最大内存使用,单位MB。默认64MB
    -M 内存耗尽时返回错误,而不是删除项
    -c 最大同时连接数,默认是1024
    -f 块大小增长因子,默认是1.25
    -n 最小分配空间,key+value+flags默认是48
    -h 显示帮助

3.telnet ip:port 进入Memcached

stats 显示所有信息


Java调用Memcached

1.添加相应的jar包

2.相关实现代码

package utils.cache;import java.util.Date;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;/*** 使用memcached的缓存实用类.* * @author CPP**/public class MemCached{
// 创建全局的唯一实例 protected static MemCachedClient mcc = new MemCachedClient(); protected static MemCached memCached = new MemCached(); // 设置与缓存服务器的连接池 static { // 服务器列表和其权重 String[] servers = {
"127.0.0.1:11211"}; Integer[] weights = {
3}; // 获取socke连接池的实例对象 SockIOPool pool = SockIOPool.getInstance(); // 设置服务器信息 pool.setServers( servers ); pool.setWeights( weights ); // 设置初始连接数、最小和最大连接数以及最大处理时间 pool.setInitConn( 5 ); pool.setMinConn( 5 ); pool.setMaxConn( 250 ); pool.setMaxIdle( 1000 * 60 * 60 * 6 ); // 设置主线程的睡眠时间 pool.setMaintSleep( 30 ); // 设置TCP的参数,连接超时等 pool.setNagle( false ); pool.setSocketTO( 3000 ); pool.setSocketConnectTO( 0 ); // 初始化连接池 pool.initialize(); // 压缩设置,超过指定大小(单位为K)的数据都会被压缩 mcc.setCompressEnable( true ); mcc.setCompressThreshold( 64 * 1024 ); } /** * 保护型构造方法,不允许实例化! * */ protected MemCached() { } /** * 获取唯一实例. * @return */ public static MemCached getInstance() { return memCached; } /** * 添加一个指定的值到缓存中. * @param key * @param value * @return */ public boolean add(String key, Object value) { return mcc.add(key, value); } public boolean add(String key, Object value, Date expiry) { return mcc.add(key, value, expiry); } public boolean replace(String key, Object value) { return mcc.replace(key, value); } public boolean replace(String key, Object value, Date expiry) { return mcc.replace(key, value, expiry); } /** * 根据指定的关键字获取对象. * @param key * @return */ public Object get(String key) { return mcc.get(key); } public static void main(String[] args) { MemCached cache = MemCached.getInstance(); cache.add("hello", 234); System.out.print("get value : " + cache.get("hello")); }}

示例代码

示例代码,实现Memcached对Hibernate读取的数据库实体的缓存,并给予Lambda实现stream流的fillter数据处理;

转载地址:http://kgkab.baihongyu.com/

你可能感兴趣的文章
对类前置声明和包含头文件的一点理解
查看>>
DLL封装框架视图经验总结二
查看>>
重新找回心灵的感动
查看>>
在软件开发中用户应该扮演怎样的角色
查看>>
“调试器的协议与调试对象不兼容”错误的解决
查看>>
简介分布式计算系统的硬件架构
查看>>
图形图像显示研究(二)
查看>>
延庆石京龙滑雪记
查看>>
有关博客的一些断想
查看>>
Windows Server2008上安装VS2008出错及解决办法
查看>>
自定义安装MS Office Project2007会出错
查看>>
有关无法打开预编译头文件错误的思考
查看>>
在对话框上创建视图的方法总结
查看>>
关于桌面软件的开发语言和开发框架的思考
查看>>
打开word2010每次都要配置进度的解决办法
查看>>
使用动态数组结构的一个好处
查看>>
移动铁通宽带上网设置教程
查看>>
怎样的提问才是有效的提问
查看>>
山城之旅
查看>>
有关在对话框上创建视图上的再探索
查看>>