memcached win64位服务端安装和java客户端实例
来源:互联网 发布:非广播多路访问网络 编辑:程序博客网 时间:2024/05/16 12:06
项目开发中需要用到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
安装
1.解压下载的服务端安装包到指定目录c:/memcached下
2.打开cmd黑窗口 进入解压目录下
3.安装
memcached.exe -d install4.启动
memcached.exe -d start
5.卸载 需要时执行memcached.exe -d stopmemcached.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.html
java客户端实例
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
阅读全文
0 0
- memcached win64位服务端安装和java客户端实例
- Win64 安装Oracle11g和32位PLSQL客户端
- Win64安装Oracle11g和32位PLSQL客户端
- java socket客户端和服务端实例
- memcached java客户端实例
- python-安装easy_install和pip(win64位)
- MemCached的安装和JAVA客户端连接Memcached示例代码
- Memcached java 客户端简单实例
- MemCached的java客户端实例
- win64位安装Apache
- svn客户端和服务端安装
- opencv的安装 win64位
- win64位系统安装numpy
- win64位 安装python opencv
- java Socket客户端服务端通信小实例
- java客户端与服务端同步实例
- JAVA TCP通信服务端与客户端实例
- TCP:客户端和服务端的使用实例
- Android 線上的opengrok
- linux下安装oracle数据库
- linux 搭建zookeeper集群
- Oozie安装时放置Mysql驱动包的总结(网上最全)
- post发布表单判断
- memcached win64位服务端安装和java客户端实例
- Android学习三、SurfaceView的学习
- java笔记-多线程join用法
- 使用pytorch预训练模型分类与特征提取
- js获取文件的后缀名方法
- Paint MaskFilter类进行处理、颜色RGB的滤镜处理
- CSDN日报20170601 ——《程序猿职业生涯的迷惘与野望》
- 后代选择器与子选择器
- Python例题8-3~8-4 T恤