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

答案

让你的KeywordDocument类实现java.io.Serializable

您尝试序列化的所有内容都应该实现java.io.SerializableHashMapString默认是可序列化的,因此您无需为它们做任何事情。

请阅读this

另一答案

尝试使关键字实现java.io.Serializable

以上是关于Java如何获取Redis中存储的大量内容?的主要内容,如果未能解决你的问题,请参考以下文章

您如何混合 SQL DB 与键值存储(即 Redis)

java 如何获得磁盘名称

如何查看Celery存储在redis里面的结果

如何高效地向Redis写入大量的数据

如何高效地向Redis写入大量的数据

如何查看Celery存储在redis里面的结果