本地cache简单代码实现

简介:


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

/**
 * 本地cache工具
 *
 * @author yanek
 *
 */
public class LocalCache {

 private static Map<String, Object> cacheMap = new ConcurrentHashMap<String, Object>();

 public static void destoryCacheMap() {
  cacheMap = null;
 }

 public static Map<String, Object> getCacheMap() {
  return cacheMap;
 }

 public static void set(String key, Object values) {
  cacheMap.put(key, values);
 }

 public static Object get(String key) {
  return cacheMap.get(key);
 }

 public static String getString(String key) {
  return (String) cacheMap.get(key);
 }

 public static Object getToEmpty(String key) {
  Object o = cacheMap.get(key);
  if (o == null)
   return "";
  else
   return o;
 }

 public static void remove(String key) {
  cacheMap.remove(key);
 }

 public static void clear() {
  cacheMap.clear();
 }

 public static void main(String[] args) {
  
  
  LocalCache.set("001","001");
  LocalCache.set("002","002");
  LocalCache.set("003","003");
  
  System.out.println(LocalCache.get("001"));
  System.out.println(LocalCache.get("002"));
  System.out.println(LocalCache.get("003"));
  
  

 }

}

目录
相关文章
|
2月前
|
缓存 Java
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
Java本地高性能缓存实践问题之使用Caffeine的Cache接口来查找一个缓存元素的问题如何解决
|
8天前
|
存储 算法 索引
HashMap底层数据结构及其增put删remove查get方法的代码实现原理
HashMap 是基于数组 + 链表 + 红黑树实现的高效键值对存储结构。默认初始容量为16,负载因子为0.75。当存储元素超过容量 * 负载因子时,会进行扩容。HashMap 使用哈希算法计算键的索引位置,通过链表或红黑树解决哈希冲突,确保高效存取。插入、获取和删除操作的时间复杂度接近 O(1)。
18 0
|
5月前
|
缓存 Python
如何使用`functools`模块中的`lru_cache`来进行函数结果缓存?
如何使用`functools`模块中的`lru_cache`来进行函数结果缓存?
86 0
|
5月前
|
存储 缓存 Java
java如何实现一个LRU(最近最少使用)缓存? 要求:设计一个LRU缓存,支持get和put操作。当缓存满时,需要淘汰最近最少使用的元素。要求使用双向链表+哈希表的数据结构来实现,并保证get和put操作的时间复杂度为O(1)。
java如何实现一个LRU(最近最少使用)缓存? 要求:设计一个LRU缓存,支持get和put操作。当缓存满时,需要淘汰最近最少使用的元素。要求使用双向链表+哈希表的数据结构来实现,并保证get和put操作的时间复杂度为O(1)。
59 1
|
5月前
|
存储 缓存 Java
146. LRU 缓存 --力扣 --JAVA
​ 请你设计并实现一个满足  LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。 函数 get
46 0
|
存储 缓存 Linux
入职后,我才明白什么叫Cache
入职后,我才明白什么叫Cache
|
内存技术
cache基础
cache
119 0
|
存储 缓存
cache_t结构分析
紧接着我们来分析类结构体中cache_t, 只从单词来看就能猜出来是与缓存有关. 下面我们先看cache_t的源码:
158 0
cache_t结构分析
|
缓存 监控 安全
Guava Cache缓存设计原理(下)
Guava Cache基于ConcurrentHashMap的设计,在高并发场景支持和线程安全上都有相应改进策略,使用Reference引用命令,提升高并发下的数据访问速度并保持了GC的可回收,有效节省空间。 write链和access链的设计,能更灵活、高效的实现多种类型的缓存清理策略,包括基于容量的清理、基于时间的清理、基于引用的清理等。 编程式的build生成器管理,让使用者有更多的自由度,能够根据不同场景设置合适的模式。 还可以显式清除、统计信息、移除事件的监听器、自动加载等功能。
266 0
Guava Cache缓存设计原理(下)
|
存储 缓存 安全
Guava Cache缓存设计原理(上)
Guava Cache基于ConcurrentHashMap的设计,在高并发场景支持和线程安全上都有相应改进策略,使用Reference引用命令,提升高并发下的数据访问速度并保持了GC的可回收,有效节省空间。 write链和access链的设计,能更灵活、高效的实现多种类型的缓存清理策略,包括基于容量的清理、基于时间的清理、基于引用的清理等。 编程式的build生成器管理,让使用者有更多的自由度,能够根据不同场景设置合适的模式。 还可以显式清除、统计信息、移除事件的监听器、自动加载等功能。
329 0
Guava Cache缓存设计原理(上)