Java如何获取Redis中存储的大量内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java如何获取Redis中存储的大量内容?相关的知识,希望对你有一定的参考价值。
第一,大量的数据是不会考虑放在JVM内存中;第二,如果需要缓存大量的dto,动态数据(又称过程数据)一般用的是redis;如果是静态,系统启动时就加载的大量配置,一般考虑放ehcache。
第三,由于redis用的是物理内存,不是JVM内存,一般情况下往redis里丢千万级别的记录数基本不影响性能, 参考技术A 1、如果key, field都是已知的,可以用hmget循环批量的获取hash的值,保证一次获取的数据不会太多而导致OOM;
2、使用HSCAN 迭代哈希键中的键值对;
最后,hash的HGETALL在生产环境一定要慎用啊!!
如何在java中序列化地图以存储在Redis上[重复]
这个问题在这里已有答案:
我有以下课程:
public class Document{
public String id;
public String date;
public Map<String, Keyword> keywords = new HashMap<>();
}
public class Keyword {
public String word;
public Map<String, Document> docs = new HashMap<>();
}
我想序列化keywords
hashmap以便将其保存在Redis上。
我试过this,但它有一个错误:java.io.NotSerializableException:keyword
答案
让你的Keyword
和Document
类实现java.io.Serializable
。
您尝试序列化的所有内容都应该实现java.io.Serializable
,HashMap
和String
默认是可序列化的,因此您无需为它们做任何事情。
请阅读this。
另一答案
尝试使关键字实现java.io.Serializable
以上是关于Java如何获取Redis中存储的大量内容?的主要内容,如果未能解决你的问题,请参考以下文章