java把数据以key-value形式放到内存中,以后匹配key值就可以读取数据。大概想法有,求详细代码!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java把数据以key-value形式放到内存中,以后匹配key值就可以读取数据。大概想法有,求详细代码!!相关的知识,希望对你有一定的参考价值。

伪代码:
select a,b from table

HashMap hashmap=new HashMap();
hashmap.set(a,b)

if(hashmap==null)
重新从数据库中初始化
else
String str=hashmap.get(a);

hashmap.containsKey(Object key);

用这个方法判断KEY是否存在,
存在即是匹配key追问

请问,如何知道这个hashmap是否为空呢?直接判断hashmap==null?

追答

你这样是判断,这个对象是不是一个空对象,也就是判断这个对象是不是一个有效的对象。

如果要是判断Map里是不是有值,用isEmpty()方法来判断。

追问

ok,谢谢!

参考技术A public static void main(String[] args)

Map<String, String> m=new HashMap<String, String>();
m.put("a", "aa");
m.put("b", "bb");
m.put("c", "cc");
//keyhset
for (String string : m.keySet())
System.out.print(string+"="+m.get(string)+" ");

参考技术B 就是键值对 嘛。。这个集合就可以了赛。。。追问

求具体代码,小弟新手,感谢!

参考技术C 先按住Shift,然后按F8

Memcached 简介

一、Memcached 简介

如下图,当我们去访问一个 Web 站点,这台 Web 服务器会从数据库上读取数据并呈现给用户,如果没有 Memcached,那么用户每访问一次,Web 服务器就需要从数据库上读取数据,如果用户量很大,显然效率很低;有了 Memcached 之后,会把读取的数据(也就是存放在物理内存中的数据)以 key-value 形式缓存到 Memcached 自身开辟的内存中,当用户再次访问的时候就直接返回 Memcached 内存中的数据了,因此,Memcached(Memory Cached,内存缓存) 是一个内存对象缓存系统,能够缓存内存中的数据,但跟物理内存一样,机器一重启,缓存的数据就会丢失,重启 Memcached 也会导致数据丢失。

 

二、Memcached 内存管理机制

Memcached 会把物理内存中的数据以 key-value 形式缓存到 Memcached 自身开辟的内存中,至于划分多少物理内存给 Memcached,需要我们在启动 Memcached 的时候进行分配。Memcached 使用 Slab Allocator 机制来管理我们分配给它的物理内存,如下,Memcached 将我们分配给它的物理内存以 Page 为单位,默认情况下一个 Page 是 1M,一个 Page 分割成各种尺寸的块(Chunk), 并把尺寸相同的块分成组(Slab Class),即一个 Slab Class 包含了多个 Page,可以看出每个 Slab Class 负责管理的内存大小是不一样的,每个 Slab Class 只存储大于其上一个 Slab Class 的 size 并小于或者等于自己最大 size 的数据,实现最优的存储。如果分配给 Memcached 的物理内存存满了,则会根据 LRU 算法来删除缓存中的数据,也就是最近最少使用原则,最近一段时间来,哪一个数据基本完成没有被使用过,则就清除掉这个数据,然后让新数据放到里面。当然,我们也可以手动指定数据存储到 Memcached 的过期时间。

 

 

 

 

 

      

以上是关于java把数据以key-value形式放到内存中,以后匹配key值就可以读取数据。大概想法有,求详细代码!!的主要内容,如果未能解决你的问题,请参考以下文章

[redis] Redis的介绍

Memcached 简介

redis知识汇总

c语言中字符型数据在内存中的存储形式是?

java for循环 怎样把一个list里相同的数据放到一起

Redis 的 4 大法宝,2019 必学中间件