- 浏览: 65599 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (121)
- luence (7)
- MoveLuceneRebuild (0)
- ehcache (0)
- memcached (12)
- WeiXin (1)
- hy (0)
- alipay (0)
- Wxap (0)
- 学习笔记 (14)
- java generic (1)
- threadpool (0)
- Awmazon (0)
- com.yulong.businessCache (0)
- com.yulong.util (1)
- com.wxap (0)
- com.yulong.wxshop (0)
- com.alipay (0)
- com.yulong.session (0)
- com.yulong.handler (0)
- kafka (0)
- http://www.cnblogs.com/oubo/archive/2012/02/04/2394646.html (0)
- redis (0)
- MongoDB (2)
- Nginx (1)
- java (10)
- 云搜索 (4)
- Hadoop (1)
- Spring (15)
- Thread (1)
- 博客链接 (0)
- AJAX与CSS (7)
- 项目管理 (1)
- restful架构 (1)
- 多线程 (3)
- Java面试 (6)
- 牛人博客 (2)
- Linux (1)
- java集合 (1)
- Socket与Nio (1)
- SQL开发 (2)
- Spring Boot (3)
- Spring4.1 (4)
- tomcat配置 (1)
- JVM (5)
- Hibernate (1)
- Dubbo (7)
- MQ (2)
- java常见错误 (0)
最新评论
package com.yulong.memcached.service;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemcachedService
{
static Logger logger = Logger.getLogger(MemcachedService.class);
static
{
init();
}
private static MemCachedClient mcc = new MemCachedClient();
public static void init()
{
String[] servers = {};
long maxBusyTime = 1000 * 60 * 2;
int initConn = 10;
int minConn = 5;
int maxConn = 250;
long maintSleep = 30;
int hashingAlg = 3;
try
{
URL url = MemcachedService.class.getResource("/memcached/servers.properties");
InputStream is = null;
if (url != null)
{
is = url.openStream();
}
if (is == null)
is = MemcachedService.class.getResourceAsStream("/memcached/servers.properties");
Properties prop = new Properties();
prop.load(is);
servers = prop.getProperty("servers").split(",");
maxBusyTime = Long.valueOf(prop.getProperty("maxBusyTime") == null ? "" : prop.getProperty("maxBusyTime"));
initConn = Integer.parseInt(prop.getProperty("initConn") == null ? "" : prop.getProperty("initConn"));
minConn = Integer.parseInt(prop.getProperty("minConn") == null ? "" : prop.getProperty("minConn"));
maxConn = Integer.parseInt(prop.getProperty("maxConn") == null ? "" : prop.getProperty("maxConn"));
maintSleep = Long.parseLong(prop.getProperty("maintSleep") == null ? "" : prop.getProperty("maintSleep"));
hashingAlg = Integer.parseInt(prop.getProperty("hashingAlg") == null ? "" : prop.getProperty("hashingAlg"));
logger.info("memcached servers:" + prop.getProperty("servers"));
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setMaxBusyTime(maxBusyTime);
pool.setInitConn(initConn);
pool.setMinConn(minConn);
pool.setMaxConn(maxConn);
pool.setMaintSleep(maintSleep);
pool.setHashingAlg(hashingAlg);
pool.setFailover(true);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(false);
pool.initialize();
}
catch (Exception e)
{
logger.error(e.getMessage());
for (StackTraceElement element : e.getStackTrace())
{
logger.error(element);
}
}
}
/**
* 系统专用
* @param key
* @param value
* @return
*/
public static Object setParam(Object key, Object value)
{
return set("P" + (String) key, value);
}
/**
* 获得memcached服务器的状态
*/
// public static String getServerStatus()
// {
// mch = new MccErrorHandler();
// mch.handleErrorOnStats(mcc, null);
//// mcc.setErrorHandler(mch);
// mcc.set("test", "test");
// mcc.replace("test", "test");
// if (mch.getStatus().equals("ok"))
// {
// return "ok";
// }
// else
// {
// return "outOfService";
// }
// }
/**
* 系统专用
* @param key
* @param value
* @return
*/
public static Object setParam(String key, Object value)
{
return set("P" + key, value);
}
public static Object set(Object key, Object value)
{
return set((String) key, value);
}
public static Object set(String key, Object value)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
mcc.set(key, value);
mcc.replace(key, value);
// if (mch.getStatus().equals("ok"))
// {
return value;
// }
// else
// {
// return "error";
// }
}
public static void putAll(Map<? extends String, ? extends Object> m)
{
for (String key : m.keySet())
{
set(key, m.get(key));
}
}
public static Object removeGroup(Object key)
{
return remove("G" + (String) key);
}
public static Object removeParam(Object key)
{
return null;// 系统不可移除
}
public static Object remove(Object key)
{
return remove((String) key);
}
public static Object remove(String key)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
Object value = mcc.get(key);
mcc.delete(key);
// if (mch.getStatus().equals("ok"))
// {
return value;
// }
// else
// {
// return "error";
// }
}
public static boolean replace(String key, Object value)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.replace(key, value);
// if (mch.getStatus().equals("ok"))
// {
return result;
// }
// else
// {
// return false;
// }
}
public static Object get(Object key)
{
return get((String) key);
}
public static Object get(String key)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
Object t = mcc.get(key);
// if (mch.getStatus().equals("ok"))
// {
return t;
// }
// else
// {
// return "error";
// }
}
/**
* 系统专用
* @param key
* @return
*/
public static Object getParam(Object key)
{
Object t = get("P" + (String) key);
if (t != null && t.toString().equals("error"))
{
// TODO 获得对应的值
return "error";
}
else
{
return t;
}
}
/**
* 系统专用
* @param key
* @return
*/
public static Object getParam(String key)
{
return get("P" + key);
}
/**
* 系统专用
* @param groupName
* @return
*/
public static LinkedHashMap<String, Object> getGroup(String groupName)
{
Object group = get("G" + groupName);
if (group != null && group.toString().equals("error"))
{
// 数据库存取
return null;
}
else if (group == null)
{
return null;
}
else
{
return (LinkedHashMap<String, Object>) group;
}
}
/**
* 系统专用
* @param groupName
* @param group
* @return
*/
public static LinkedHashMap<String, Object> setGroup(String groupName, LinkedHashMap<String, Object> group)
{
String t = set("G" + groupName, group).toString();
if (t.equals("error"))
{
return null;
}
replace("G" + groupName, group);
return group;
}
public static boolean set(String key, Object value, Date expiry)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.set(key, value, expiry);
result = mcc.replace(key, value, expiry);
return result;
}
/**
*
* @Title: getAll
* @Description: 批量获取数据
* @param key
* @return boolean
* @throws
*/
public static Map<String,Object> getAll(String[] key){
return mcc.getMulti(key);
}
/**
*
* @Title: getAllParam
* @Description: TODO批量获取系统参数数据
* @param keys
* @return Map<String,Object>
* @throws
*/
public static Map<String,Object> getAllParam(String[] keys){
for (int i=0;i<keys.length;i++){
keys[i]="P"+keys[i];
}
return mcc.getMulti(keys);
}
/**
*
* @Title: getAllGroup
* @Description: TODO批量获取系统代码数据
* @param keys
* @return Map<String,Object>
* @throws
*/
public static Map<String,Object> getAllGroup(String[] keys){
for (int i=0;i<keys.length;i++){
keys[i]="G"+keys[i];
}
return mcc.getMulti(keys);
}
public static boolean keyExists(String key)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.keyExists(key);
return result;
}
}
import java.io.InputStream;
import java.net.URL;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemcachedService
{
static Logger logger = Logger.getLogger(MemcachedService.class);
static
{
init();
}
private static MemCachedClient mcc = new MemCachedClient();
public static void init()
{
String[] servers = {};
long maxBusyTime = 1000 * 60 * 2;
int initConn = 10;
int minConn = 5;
int maxConn = 250;
long maintSleep = 30;
int hashingAlg = 3;
try
{
URL url = MemcachedService.class.getResource("/memcached/servers.properties");
InputStream is = null;
if (url != null)
{
is = url.openStream();
}
if (is == null)
is = MemcachedService.class.getResourceAsStream("/memcached/servers.properties");
Properties prop = new Properties();
prop.load(is);
servers = prop.getProperty("servers").split(",");
maxBusyTime = Long.valueOf(prop.getProperty("maxBusyTime") == null ? "" : prop.getProperty("maxBusyTime"));
initConn = Integer.parseInt(prop.getProperty("initConn") == null ? "" : prop.getProperty("initConn"));
minConn = Integer.parseInt(prop.getProperty("minConn") == null ? "" : prop.getProperty("minConn"));
maxConn = Integer.parseInt(prop.getProperty("maxConn") == null ? "" : prop.getProperty("maxConn"));
maintSleep = Long.parseLong(prop.getProperty("maintSleep") == null ? "" : prop.getProperty("maintSleep"));
hashingAlg = Integer.parseInt(prop.getProperty("hashingAlg") == null ? "" : prop.getProperty("hashingAlg"));
logger.info("memcached servers:" + prop.getProperty("servers"));
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setMaxBusyTime(maxBusyTime);
pool.setInitConn(initConn);
pool.setMinConn(minConn);
pool.setMaxConn(maxConn);
pool.setMaintSleep(maintSleep);
pool.setHashingAlg(hashingAlg);
pool.setFailover(true);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(false);
pool.initialize();
}
catch (Exception e)
{
logger.error(e.getMessage());
for (StackTraceElement element : e.getStackTrace())
{
logger.error(element);
}
}
}
/**
* 系统专用
* @param key
* @param value
* @return
*/
public static Object setParam(Object key, Object value)
{
return set("P" + (String) key, value);
}
/**
* 获得memcached服务器的状态
*/
// public static String getServerStatus()
// {
// mch = new MccErrorHandler();
// mch.handleErrorOnStats(mcc, null);
//// mcc.setErrorHandler(mch);
// mcc.set("test", "test");
// mcc.replace("test", "test");
// if (mch.getStatus().equals("ok"))
// {
// return "ok";
// }
// else
// {
// return "outOfService";
// }
// }
/**
* 系统专用
* @param key
* @param value
* @return
*/
public static Object setParam(String key, Object value)
{
return set("P" + key, value);
}
public static Object set(Object key, Object value)
{
return set((String) key, value);
}
public static Object set(String key, Object value)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
mcc.set(key, value);
mcc.replace(key, value);
// if (mch.getStatus().equals("ok"))
// {
return value;
// }
// else
// {
// return "error";
// }
}
public static void putAll(Map<? extends String, ? extends Object> m)
{
for (String key : m.keySet())
{
set(key, m.get(key));
}
}
public static Object removeGroup(Object key)
{
return remove("G" + (String) key);
}
public static Object removeParam(Object key)
{
return null;// 系统不可移除
}
public static Object remove(Object key)
{
return remove((String) key);
}
public static Object remove(String key)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
Object value = mcc.get(key);
mcc.delete(key);
// if (mch.getStatus().equals("ok"))
// {
return value;
// }
// else
// {
// return "error";
// }
}
public static boolean replace(String key, Object value)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.replace(key, value);
// if (mch.getStatus().equals("ok"))
// {
return result;
// }
// else
// {
// return false;
// }
}
public static Object get(Object key)
{
return get((String) key);
}
public static Object get(String key)
{
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
Object t = mcc.get(key);
// if (mch.getStatus().equals("ok"))
// {
return t;
// }
// else
// {
// return "error";
// }
}
/**
* 系统专用
* @param key
* @return
*/
public static Object getParam(Object key)
{
Object t = get("P" + (String) key);
if (t != null && t.toString().equals("error"))
{
// TODO 获得对应的值
return "error";
}
else
{
return t;
}
}
/**
* 系统专用
* @param key
* @return
*/
public static Object getParam(String key)
{
return get("P" + key);
}
/**
* 系统专用
* @param groupName
* @return
*/
public static LinkedHashMap<String, Object> getGroup(String groupName)
{
Object group = get("G" + groupName);
if (group != null && group.toString().equals("error"))
{
// 数据库存取
return null;
}
else if (group == null)
{
return null;
}
else
{
return (LinkedHashMap<String, Object>) group;
}
}
/**
* 系统专用
* @param groupName
* @param group
* @return
*/
public static LinkedHashMap<String, Object> setGroup(String groupName, LinkedHashMap<String, Object> group)
{
String t = set("G" + groupName, group).toString();
if (t.equals("error"))
{
return null;
}
replace("G" + groupName, group);
return group;
}
public static boolean set(String key, Object value, Date expiry)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.set(key, value, expiry);
result = mcc.replace(key, value, expiry);
return result;
}
/**
*
* @Title: getAll
* @Description: 批量获取数据
* @param key
* @return boolean
* @throws
*/
public static Map<String,Object> getAll(String[] key){
return mcc.getMulti(key);
}
/**
*
* @Title: getAllParam
* @Description: TODO批量获取系统参数数据
* @param keys
* @return Map<String,Object>
* @throws
*/
public static Map<String,Object> getAllParam(String[] keys){
for (int i=0;i<keys.length;i++){
keys[i]="P"+keys[i];
}
return mcc.getMulti(keys);
}
/**
*
* @Title: getAllGroup
* @Description: TODO批量获取系统代码数据
* @param keys
* @return Map<String,Object>
* @throws
*/
public static Map<String,Object> getAllGroup(String[] keys){
for (int i=0;i<keys.length;i++){
keys[i]="G"+keys[i];
}
return mcc.getMulti(keys);
}
public static boolean keyExists(String key)
{
boolean result = false;
// mch = new MccErrorHandler();
// mcc.setErrorHandler(mch);
result = mcc.keyExists(key);
return result;
}
}
发表评论
-
Memcached处理
2015-07-21 14:00 335Memcached有两个核心 ... -
memcached工作原理与优化建议
2015-01-07 10:30 305工作原理 基本概念:slab,page,chunk。 ... -
TestMemcached
2014-11-10 09:08 363/** * Copyright (c) 2008 Greg ... -
MemcachedTest
2014-11-10 09:08 299/** * Copyright (c) 2008 Greg ... -
MemcachedBench
2014-11-10 09:09 358/** * Copyright (c) 2008 Greg ... -
TestDropMemcacheUser
2014-11-10 09:10 447package com.yulong.memcached; ... -
TestAddMemcacheMemberAddress
2014-11-12 09:23 206package com.yulong.memcached; ... -
SockIOPool
2014-11-12 09:24 1403/** * Copyright (c) 2008 Greg ... -
NestedIOException
2014-11-12 09:24 737/** * Copyright (c) 2008 Greg ... -
NativeHandler
2014-11-12 09:24 257/** * Copyright (c) 2008 Greg ... -
MemcachedClient
2014-11-12 09:24 1789/** * Copyright (c) 2008 Greg ... -
MccErrorHandler
2014-11-07 22:10 0package com.yulong.memcached; ... -
Logger
2014-11-07 22:10 0/** * Copyright (c) 2008 Greg ... -
LineInputStream
2014-11-07 22:10 0/** * Copyright (c) 2008 Greg ... -
ErrorHandler
2014-11-07 22:09 0/** * Copyright (c) 2008 Greg ... -
ContextObjectInputStream
2014-11-07 22:09 0/** * Copyright (c) 2008 Greg ... -
ByteBufArrayInputStream
2014-11-07 22:08 0/** * Copyright (c) 2008 Greg ... -
MemberInfoMemcachedService
2014-11-07 17:55 0package com.yulong.memcached.se ... -
GrabMemcachedService
2014-11-07 17:50 0package com.yulong.memcached.se ...
相关推荐
memcached安装错误解决文件
访问量上升,数据库压力大,怎么办?好办法是在中间挡一层缓存!这个缓存要求高效,不能比数据库慢,否则服务质量受影响;如果能把数据用hash打散存储到硬盘,也是可以的,不过在内存越来越便宜的今天,还是使用内存...
在windows下编译的最新的memcached 1.6.21 由于1.4.5以后的memcached不支持windows服务。 使用第三方工具做成了windows的服务 使用说明: 1、解压rar文件 2、以管理员身份运行cmd.exe 3、然后执行service_install....
tomcat6 Memcached集群,sessoin共享。修改下tomcat下conf/service.xml中的web指向路径即可
memcached安装和使用详细说明 一、开启memcached服务器端服务 二、引入jar 三、创建memcached客户端配置文件 四、创建memcached客户端程序 五、使用Spring AOP在数据查询的Service层实现数据缓存及读取
实现目的:安装部署Memcached服务器 一、防火墙设置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。 1、关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable ...
我的电商平台,memcached、nginx、api、web、tomcat、jboss
杂项服务介绍crud-service提供了一些类,用于使用Sinatra,MySQL和memcached实现基本的JSON CRUD服务。用法gem旨在提供一组类,以为给定数量MySQL实体生成简单MySQL / Memcached支持的RESTful CRUD API。入门你应该...
安装先决条件: sudo apt-get install ruby-redcarpet ruby-memcache-client memcachedsudo service memcached start在您的 cgi-bin 目录中安装Markdown.cgi sudo cp Markdown.cgi /usr/lib/cgi-binsudo chmod +x /...
4.4.3. Zend_Cache_Backend_Memcached 4.4.4. Zend_Cache_Backend_Apc 4.4.5. Zend_Cache_Backend_ZendPlatform 5. Zend_Config 5.1. 简介 5.2. 操作理论 5.3. Zend_Config_Ini 5.4. Zend_Config_Xml 6. ...
•开发的Search Ads工作流支持:查询理解,从倒排索引中选择广告,广告排名,广告过滤器,广告定价,使用Java,Jetty,MySQL,MemCached,gRPC进行广告分配。 •具有加权随机抽样算法(Python)的反向工程搜索日志...
openstack重启的服务命令集合 最近公司项目需要使用Openstack 由于Openstack 重启...service memcached restart 2. 重启 ceilometer 2.1 cinder service mongod restart 2.2 controller service openstack-ceil
NingAsyncHttpClientThrift Client, Thrift ServiceMySQL, Oracle, MSSQL, CUBRID, DBCP, POSTGRESQLArcus, Memcached, RedisiBATIS, MyBatisgson, Jackson, Json Liblog4j, Logback构建要求:JDK 6 installedJDK 8 ...
12.5.4 创建Service 12.5.5 配置存储集群GFS 12.5.6 配置表决磁盘 12.5.7 配置Fence设备 12.6 管理和维护RHCS集群 12.6.1 启动RHCS集群 12.6.2 关闭RHCS集群 12.6.3 管理应用服务 12.6.4 监控RHCS...
–d install[提示错误:failed to install service or service already installed]解决方法:在系统盘中找到cmd.exe文件,点击右键,以管理员身份运行 3.输入命令,启动memcache服务H:/wamp/...
3、系统用到缓存技术,MemCached和Redis这2种。 01 Reference DLL 这里主要包括第三方的框架和组件项目,把这些文件分门别类地集中放在此目录下。 02 Solution Items 项目的规范、流程、重要文件等。 03 Test 这里...
│ 第12节:Service的实现以及模块化.avi │ 第13节:Spring MVC实现Web层开发.avi │ 第14节:新增和列表页面和分页tag.avi │ 第15节:带查询的分页、修改和删除页面.avi │ 第16节:Mybatis动态查询和Json自动...
18)、缓存使用EhCache或是Memcached。 19)、数据库连接池使用CommonsDBCP。 20)、Office文档操作使用POI。 21)、工作流使用Activiti。 22)、报表使用BIRT。 23)、Web资源优化使用wro4j。 24)、日志拦截使用...
为我们的memcached缓存服务标识环中的节点列表。 用于出于各种其他原因承载有关服务的其他其他特定于应用程序的元数据。建筑由于某些必需的库是java8 ( servo ),因此构建需要java8 ,但是源和目标兼容性仍设置为...
注意: PostgreSQL、MongoDB、Memcached 和 RabbitMQ 的镜像将被 docker.io hub 自动重建并推送到 glow/<servicename>:latest 盐 使用脚本安装 salt。 Mac 安装 如果您使用的是 Mac,则可以。 brew 安装 有用的...