memcached win64位服务端安装和java客户端实例
2017-06-01 11:58
447 查看
项目开发中需要用到memcached缓存记录下来相关操作方便日后复习,如果有错误或遗漏请留言。
memcached服务端安装
32位系统 1.4.4版本:http://static.runoob.com/download/memcached-win32-1.4.4-14.zip
64位系统 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
2.打开cmd黑窗口 进入解压目录下
3.安装
注意:必须先停止memecached后才能卸载。
连接
1.语法
port memcached服务端接口
例如:
2.编写工具类
3.编写配置文件
memcached服务端安装
下载安装包
下载地址32位系统 1.4.4版本:http://static.runoob.com/download/memcached-win32-1.4.4-14.zip
64位系统 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
安装
1.解压下载的服务端安装包到指定目录c:/memcached下2.打开cmd黑窗口 进入解压目录下
3.安装
memcached.exe -d install4.启动
memcached.exe -d start5.卸载 需要时执行
memcached.exe -d stop memcached.exe -d uninstall
注意:必须先停止memecached后才能卸载。
连接
1.语法telnet host porthost memcached服务端IP地址
port memcached服务端接口
例如:
telnet 127.0.0.1 11211
操作数据
具体参考:http://www.runoob.com/memcached/memcached-set-data.htmljava客户端实例
1.解压java客户端将所有jar包放到项目中2.编写工具类
package com.demo.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Date; import java.util.Properties; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; /** * memcached缓存基本操作 2017-6-1 lg * */ public class Memcached { private static Memcached instance = new Memcached(); /** * memcached客户端 */ private static MemCachedClient mcc; private int serverAmount = 0;//memcached服务器数量 private String url = "/memcached.properties";//配置文件地址 根据实际情况调整 /** * 私有构造方法 */ private Memcached(){ try { Properties pro = new Properties(); pro.load(Memcached.class.getResource(url).openStream()); String[] servers = pro.getProperty("servers").split(",");//memcached服务器连接地址和端口号 serverAmount = servers.length;//服务器数量 SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setFailover(Boolean.valueOf(pro.get("failover").toString()));//当memcached服务器失效的时候是否连接下一个memcached服务器 pool.setInitConn(Integer.valueOf(pro.get("initConn").toString()));//初始化连接服务器连接数量 pool.setMinConn(Integer.valueOf(pro.get("minConn").toString()));//服务器最小连接数量 pool.setMaxConn(Integer.valueOf(pro.get("maxConn").toString()));//服务器最大连接数量 pool.setMaxIdle(Long.valueOf(pro.get("maxIdle").toString()));//连接最长空闲时间 毫秒 pool.setMaintSleep(Long.valueOf(pro.get("maintSleep").toString()));//自查线程周期进行工作,其每次休眠时间 pool.setNagle(Boolean.valueOf(pro.get("nagle").toString())); pool.setSocketTO(Integer.valueOf(pro.get("socketTO").toString())); pool.setAliveCheck(Boolean.valueOf(pro.get("aliveCheck").toString()));//是否检查memcached服务器是否失效 pool.initialize(); //memcached客户端 mcc = new MemCachedClient(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取唯一实例 * @return */ public static Memcached getInstance(){ return instance; } /** * 新增 * @param key 键 * @param value 值 * @return */ public boolean add(String key,Object value){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.set(key, value);//直接保存数据 } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.set(key, value, num); } } /** * 新增 * @param key 键 * @param value 值 * @param millisecond 数据过期时间 单位毫秒 * @return */ public boolean add(String key,Object value,int millisecond){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.set(key, value, new Date(millisecond));//直接保存数据 } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.set(key, value, new Date(millisecond), num); } } /** * 删除 * @param key 键 * @return */ public boolean delete(String key){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.delete(key); } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.delete(key, num, null); } } /** * 修改 * @param key 键 * @param value 值 * @return */ public boolean update(String key,Object value){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.replace(key, value); } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.replace(key, value, num); } } /** * 修改 * @param key 键 * @param value 值 * @param millisecond 数据过期时间 单位毫秒 * @return */ public boolean update(String key,Object value,int millisecond){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.replace(key, value, new Date(millisecond)); } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.replace(key, value, new Date(millisecond), num); } } /** * 查询 * @param key * @return */ public Object query(String key){ if (serverAmount == 1) {//只拥有一个memcached服务器 return mcc.get(key, 0);//直接查询数据 } else { int num = serverNumber(key);//数据应保存的服务器标记 return mcc.get(key, num); } } /** * 计算数据应该保存到哪个memcached服务器 返回服务器标记 * @param key 键 * @return */ public int serverNumber(String key){ int tem01 = key.hashCode();//主键字节码 int tem02 = tem01 % serverAmount;//所属服务器标记 = 键字节码 % 服务器数量 return tem02; } }
3.编写配置文件
#mecached配置信息 #memcached服务器连接地址和端口号 多个已逗号间隔 servers=192.168.1.111:11211,192.168.1.109:11211 #当memcached服务器失效的时候是否连接下一个memcached服务器 failover=true #初始化连接服务器连接数量 initConn=10 #服务器最小连接数量 minConn=5 #服务器最大连接数量 maxConn=250 #连接最长空闲时间 毫秒 maxIdle=3600000 #自查线程周期进行工作,其每次休眠时间 maintSleep=30 # nagle=false # socketTO=3000 #是否检查memcached服务器是否失效 aliveCheck=true
相关文章推荐
- memcache实战之三 :客户端 enyim.com Memcached Client 的安装与调试以及实例,2012年下载地址
- Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- Windows下Memcached安装及Java客户端调用
- kafka安装,管理,以及常见问题的解决【如:服务端是ok的,java客户端却始终调不通】
- 64位winserver2008环境,ASP.Net程序不能访问Oracle数据库(安装的32位Oracle客户端)
- 红叶倾城一键网页游戏服务端+客户端(无须安装Java)源码
- MemCached的安装和JAVA客户端连接Memcached示例代码
- Java网络编程之简单的服务端客户端应用实例
- java 中模拟TCP传输的客户端和服务端实例详解
- java Socket客户端服务端通信小实例
- win7上安装memcached及客户端调用实例
- win 7 64位系统安装java jdk 遇到could not find the required version of the java 2 runtime environment 错误
- Java review--NIO实例:实现服务端和客户端的简单通信
- Linux下的Memcached安装与JAVA客户端连接Memcached
- 服务端64位系统安装orcal,客户端32位系统调用
- Windows下Memcached安装及Java客户端调用
- java客户端与服务端同步实例
- kafka安装以及常见问题的解决【如:服务端是ok的,java客户端却始终调不通】
- 36、Java入门—Socket实例之客户端向服务端数据库上传文件UI版