java memcached客户端,模糊查询/批量删除/查询所有的key
来源:互联网 发布:数据可视化怎么做 编辑:程序博客网 时间:2024/06/05 16:57
package com.client;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Map;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.danga.MemCached.MemCachedClient;import com.danga.MemCached.SockIOPool;public class MemCacheCl { private static final Logger LOG = LoggerFactory.getLogger(MemCacheCl.class); public static final MemCachedClient mcc = new MemCachedClient(); static { String ip = "127.0.0.1"; int port = 9005; String server = ip + ":" + port; LOG.info("Conn Memcache {}", server); String[] servers = { server, }; Integer[] weights = { 3, 2 }; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(servers); pool.setWeights(weights); pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); pool.initialize(); } public String get(String key) { String value = ""; try { if (mcc.get(key) != null) { value = mcc.get(key).toString(); } } catch (Exception e) { LOG.error("memcached get exception: " + key, e); } LOG.debug("GET: key:{}, value:{}", key, value); return value; } public boolean delete(String key) { try { LOG.info("DEL: key:{}", key); return mcc.delete(key); } catch (Exception e) { LOG.error("memcached delete exception: " + key, e); } return false; } public boolean set(String key, String value, long millisecond) { try { LOG.info("SET: key:{}, value:{}, expiretime:{}", key, value, millisecond); Date expiry = new Date(millisecond); return mcc.set(key, value, expiry); } catch (Exception e) { LOG.error("memcached set exception: " + key, e); } return false; } public boolean set(String key, String value) { try { LOG.info("SET: key:{}, value:{}", key, value); return mcc.set(key, value); } catch (Exception e) { LOG.error("memcached set exception: " + key, e); } return false; } public long incr(String key) { return mcc.incr(key); } public long addOrIncr(String key, long value) { LOG.info("SET: key:{}, value:{}", key, value); return mcc.addOrIncr(key, value); } public static List<String> getAllKeys(MemCachedClient mcc) { LOG.info("Get all key......."); List<String> list = new ArrayList<String>(); Map<String, Map<String, String>> items = mcc.statsItems(); for (Iterator<String> itemIt = items.keySet().iterator(); itemIt.hasNext();) { String itemKey = itemIt.next(); Map<String, String> maps = items.get(itemKey); for (Iterator<String> mapsIt = maps.keySet().iterator(); mapsIt.hasNext();) { String mapsKey = mapsIt.next(); String mapsValue = maps.get(mapsKey); if (mapsKey.endsWith("number")) { // memcached key 类型 // item_str:integer:number_str String[] arr = mapsKey.split(":"); int slabNumber = Integer.valueOf(arr[1].trim()); int limit = Integer.valueOf(mapsValue.trim()); Map<String, Map<String, String>> dumpMaps = mcc.statsCacheDump(slabNumber, limit); for (Iterator<String> dumpIt = dumpMaps.keySet().iterator(); dumpIt .hasNext();) { String dumpKey = dumpIt.next(); Map<String, String> allMap = dumpMaps.get(dumpKey); for (Iterator<String> allIt = allMap.keySet().iterator(); allIt .hasNext();) { String allKey = allIt.next(); list.add(allKey.trim()); } } } } } LOG.info("获取服务器中所有的key完成......."); return list; } public static void getAllKeyVal(List<String> keys) { LOG.info("--------------------getAllKeyVal"); for (String key : keys) { String val = (String) mcc.get(key); LOG.info("get key: {} , val:{}", key, val); } } public static void delAllKeys(List<String> keys) { LOG.info("--------------------delAllKeys"); for (String key : keys) { boolean ret = mcc.delete(key); LOG.info("delete key: {} , succ:{}", key, ret); } } public static void regexGetKey(List<String> keyList, String regex) { LOG.info("--------------------regex: {}", regex); for (String key : keyList) { if (key.matches(regex)) { LOG.info("key: {}", key); } } } public static void main(String[] args) { // mcc.delete("XXXXABC");// System.out.println(mcc.set("abc", "-1"));// System.out.println(mcc.incr("abc"));// System.out.println("-----------------------------------"); // System.out.println(mcc.addOrIncr("abc", 1)); // String key = ""; // String cache = (String)mcc.get(key); // System.out.println(key+"----"+cache); List<String> keys = getAllKeys(mcc); getAllKeyVal(keys); }}
gradle依赖包:
compile group: 'com.danga', name: 'MemCached', version: '2.6.6'
runtime 'org.slf4j:jcl-over-slf4j:1.6.6'
runtime 'ch.qos.logback:logback-classic:1.1.8'
阅读全文
0 0
- java memcached客户端,模糊查询/批量删除/查询所有的key
- ssm批量删除和模糊查询
- memcached实战系列(五)Memcached: List all keys 查询所有的key
- ehcache key 模糊查询
- redis key 模糊查询
- ShardedJedis 不支持key的模糊查询
- Redis模糊查询、模糊删除
- 模糊查询,批量删除, 添加用户,隔行变色,排序,过滤器
- AngularJS排序+模糊查询+批量删除+添加列表
- StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改
- 商品订单:数据的判断、添加,批量删除,排序,模糊查询
- 删除所有链接\批量删除DB\查询某个用户进程ID执行的操作
- 删除所有链接\批量删除DB\查询某个用户进程ID执行的操作
- Mybatis批量查询和模糊查询
- 数据的查询、模糊查询、新建、修改、删除
- mysql给列的属性赋值,修改列属性,删除记录,删除所有记录,查询表的记录,去除重复的,总和查询,条件查询,模糊查询,关联查询,范围查询
- 匹配所有字段模糊查询
- 遍历memcached所有的key
- Java练习题10
- web阶段总结-课堂笔记
- 设计模式【桥接模式Bridge Pattern】
- poj 3304 Segments(叉积+直线和线段相交判断)
- 本次考试总结(2017.10.8比赛)
- java memcached客户端,模糊查询/批量删除/查询所有的key
- 上课 第五周
- AUTO ML and Bayes Op
- Bootstrap-课堂笔记
- 直接插入排序及其优化
- PAT 甲级 1105. Spiral Matrix (25)
- java类集--排序及重复元素说明
- http&tomcat-课堂笔记
- a++与++a 的区别