在平时的开发中会经常用到缓存,比如locache.redis等,但一直没有对缓存有过比较全面的总结.下面从什么是缓存.为什么使用缓存.缓存的分类以及对每种缓存的使用分别进行分析,从而对缓存有更深入的了解. 1.什么是缓存 在使用缓存前我们应该了解什么是缓存,下面是维基百科上面对于缓存的定义: 缓存是在计算机上的一个原始数据的复制集,以便于访问 缓存在计算机系统中被广泛应用,从缓存的定义来看,缓存是计算机上的原始数据的复制集,因此对于缓存的使用与应用场景密切相关,在不同的场景上会有不同的意义. 2…
文章目录 使用HashMap 使用ConcurrentHashMap FutureTask 在java中构建高效的结果缓存 缓存是现代应用服务器中非常常用的组件.除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存.那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘. 使用HashMap 缓存通常的用法就是构建一个内存中使用的Map,在做一个长时间的操作比如计算之前,先在Map中查询一下计算的结果是否存在,如果不存在的话再执行计算操作. 我们定义了一个代表计算的接口: pu…
  Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1.在Java中声明native()方法,然后编译: 2.用javah产生一个.h文件: 3.写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件): 4.将第三步的.…
java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(bool on):true 则把该线程设置为守护线程,反之则为用户线程.Thread.setDaemon() 必须在 Thread.start()之前调用,否则运行时会抛出异常. 两者的区别: 唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果 全部的 User Thread 已经撤离,Daemon 没有…
基本功能测试 1.程序基本结构 2.主要类 1)功能类 package com.redis; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.Jedi…
说到内存缓存MemoryCache不由的让我想起.Net Framework中的MemoryCache,它位于 System.Runtime.Caching 程序集中. 接下来我们来看看.net core中的MemoryCache又有什么与众不同的地方吧. 一.基本实现 1.打开NuGet包管理器搜索并安装 Microsoft.Extensions.Caching.Memory 包,或者从程序包管理控制台执行 Install-Package Microsoft.Extensions.Cachin…
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis 有三个主要使其有别于其它很多竞争对手的特点: Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的:  Redis相比许多键值数据存储系统有相对丰富的数据类型:  Redis可以将数据复制到任意数量的从服务器中:  Redis优点 异常快速 : Redis是非常快的,每秒可以执行大约…
前言 最近在一个项目中需要用到本地缓存,在网上调研后,发现谷歌的Guva提供的cache模块非常的不错.简单易上手的api:灵活强大的功能,再加上谷歌这块金字招牌,让我毫不犹豫的选择了它.仅以此博客记录我在使用过程中的点滴. 什么是本地缓存 在我们的应用中,大部分的计算是昂贵的,而且是可复用的,并且计算结果不会经常发生改变.这时候我们就可以将这些昂贵的计算结果缓存到内存中,下次使用的时候直接取出即可,而不用重新计算.这样可以节省大量的cpu和内存资源,提高系统的吞吐量. 本地缓存作用就是提高系统…
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis 有三个主要使其有别于其它很多竞争对手的特点: Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的: Redis相比许多键值数据存储系统有相对丰富的数据类型: Redis可以将数据复制到任意数量的从服务器中: Redis优点 异常快速 : Redis是非常快的,每秒可以执行大约110…
系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执行本地命令或脚本等工作 以下是一个简单的使用java调用本地python脚本的例子 List<String> commands=new ArrayList(); commands.add("python"); commands.add(pkg); commands.add(&q…