文档章节

CacheUtils 简单的内存操作工具类(根据条数缓存)

承影dz
 承影dz
发布于 2017/07/27 21:37
字数 211
阅读 7
收藏 0

自己写的不完整的cacheUtils工具类,做下笔记, 之所以叫cacheUtils2,因为cacheUtils不能用,

package test;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class CacheUtils2 {
	
	//初始化一个XXX
	private static Map<String, Map<String, Object>> pool = new ConcurrentHashMap<String, Map<String, Object>>();
	private static String name;
	private static int maxNumber;
	
	public static CacheUtils2 instance(String name, int maxNumber) {
		CacheUtils2 cacheUtils = new CacheUtils2();
		cacheUtils.name = name;
		cacheUtils.maxNumber = maxNumber;
		return cacheUtils;
	}

	public static void add(String key, String value) {
		Map<String, Object> oldCache = pool.get(name);
		if (oldCache == null) {
			Map<String, Object> newCache = new LinkedHashMap<String, Object>();
			newCache.put(key, value);
			pool.put(name, newCache);
		} else {
			if (oldCache.size() >= maxNumber) {
				oldCache.remove(oldCache.entrySet().iterator().next().getKey());
				oldCache.put(key, value);
			} else {
				oldCache.put(key, value);
			}
		}
	}

	public static Object get(String key) {
		Map<String, Object> Caches = pool.get(name);
		return Caches.get(key);
	}

	public static void main(String[] args) {
		CacheUtils2 u = CacheUtils2.instance("url", 25);
		for (int i = 0; i <= 30; i++) {
			u.add("key" + i, "value" + i);
		}
		u.add("key30", "value11100");
		u.add("key29", "value11100");
		u.add("key38", "value11100");
		u.add("key27", "value11100");
		for (int i = 0; i <= 35; i++) {
			System.out.println(u.get("key" + i));
		}
	}

}

© 著作权归作者所有

承影dz
粉丝 1
博文 1
码字总数 211
作品 0
郑州
私信 提问
基于 redis 和 ehcache 的两级缓存组件--uncode-cache

uncode-cache 基于 redis 和 ehcache 的两级缓存组件,支持spring-boot,使用方便,有管理页面。 功能概述 统一注解支持 可以设置缓存定时自动更新时间 可以缓存预热 可以设置缓存依赖消除 可...

冶卫军
2017/06/26
1K
7
cached-query

介绍 我们常常有这样的需求:当我们把memcached加入到项目后我还还要写一个 cacheUtils 或者 cacheManager 之类的类来操作memcached。并且一般的操作不外乎是这种操作: 拿到一段sql,先去m...

alexxiyang
2014/09/19
319
0
uncode/uncode-cache

uncode-cache 基于redis和ehcache的两级缓存组件,支持spring-boot,使用方便,有管理页面。 功能概述 统一注解支持 可以设置缓存定时自动更新时间 可以缓存预热 可以设置缓存依赖消除 可以添...

uncode
2017/06/29
0
0
cached-query 将缓存和查询数据库高速连接起来的轻类库

介绍 我们经常有这种需求:当我们把memcached增加到项目后我还还要写一个 cacheUtils 或者 cacheManager 之类的类来操作memcached。 而且一般的操作不外乎是这种操作: 拿到一段sql,先去mem...

技术mix呢
2017/12/06
0
0
Spring Boot 中使用 Redis

Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。 环境安装 ...

PengLei
2017/10/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部