缓存/redis
文章平均质量分 92
wzz没bug
Hello World! Hello java!
展开
-
最近看到的缓存好文章(2):如何优雅的设计和使用缓存?
背景在之前的文章中你应该知道的缓存进化史介绍了爱奇艺的缓存架构和缓存的进化历史。俗话说得好,工欲善其事,必先利其器,有了好的工具肯定得知道如何用好这些工具,本篇将介绍如何利用好缓存。1.确认是否需要缓存在使用缓存之前,需要确认你的项目是否真的需要缓存。使用缓存会引入的一定的技术复杂度,后文也将会一一介绍这些复杂度。一般来说从两个方面来个是否需要使用缓存:CPU占用:如果你有某些应用需要消耗大量的cpu去计算,比如正则表达式,如果你使用正则表达式比较频繁,而其又占用了很多CPU的话,那你就应该转载 2021-05-25 16:47:29 · 280 阅读 · 0 评论 -
最近看到的缓存好文章(3):深入解密来自未来的缓存-Caffeine
1.前言读这篇文章之前希望你能好好的阅读: 你应该知道的缓存进化史 和 如何优雅的设计和使用缓存? 。这两篇文章主要从一些实战上面去介绍如何去使用缓存。在这两篇文章中我都比较推荐Caffeine这款本地缓存去代替你的Guava Cache。本篇文章我将介绍Caffeine缓存的具体有哪些功能,以及内部的实现原理,让大家知其然,也要知其所以然。有人会问:我不使用Caffeine这篇文章应该对我没啥用了,别着急,在Caffeine中的知识一定会对你在其他代码设计方面有很大的帮助。当然在介绍之前还是要贴一下他转载 2021-05-25 16:50:48 · 398 阅读 · 0 评论 -
最近看到的缓存好文章(1):你应该知道的缓存进化史
1.背景本文是上周去技术沙龙听了一下爱奇艺的Java缓存之路有感写出来的。先简单介绍一下爱奇艺的java缓存道路的发展吧。可以看见图中分为几个阶段:第一阶段:数据同步加redis通过消息队列进行数据同步至redis,然后Java应用直接去取缓存 这个阶段优点是:由于是使用的分布式缓存,所以数据更新快。缺点也比较明显:依赖Redis的稳定性,一旦redis挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到DB。第二,三阶段:JavaMap到Guava cache这个...转载 2021-05-25 16:44:43 · 180 阅读 · 0 评论 -
jetcache(3)优点与问题
优点注解式操作springboot支持多级缓存支持缓存细节封装缓存统计可以提供原生的操作对象,比如jedis,lettuce等可以配置多个redis实例,以及集群,哨兵等模式等等等等。。。。。。缺点computeIfAbsent方法load数据时没有提供锁功能,会造成缓存穿透tryLock方法提供的锁能够是不是很严格的锁,不能自定义在使用的时候,最好实现自己...原创 2018-09-03 11:15:00 · 5290 阅读 · 0 评论 -
jetcache(2)缓存策略
redis的支持jedis选用jedis访问redis,对应的maven artifact是jetcache-redis和jetcache-starter-redis(spring boot)。 部分配置:jetcache: areaInCacheName: false remote: default: type: redis key...原创 2018-09-03 11:03:38 · 4009 阅读 · 1 评论 -
详细介绍高性能Java缓存库Caffeine
本篇文章主要介绍了详细介绍高性能Java缓存库Caffeine,觉得挺不错的。1、介绍在本文中,我们来看看Caffeine — 一个高性能的 Java 缓存库。缓存和 Map 之间的一个根本区别在于缓存可以回收存储的 item。回收策略为在指定时间删除哪些对象。此策略直接影响缓存的命中率 — 缓存库的一个重要特征。Caffeine 因使用 Window TinyLfu 回收策略...转载 2018-09-04 14:07:43 · 7860 阅读 · 0 评论 -
缓存系统的设计和问题
参考文章:http://stor.51cto.com/art/201808/582218.htm选择合适的进程缓存ConcurrentHashMap, 比较适合缓存比较固定不变的元素,且缓存的数量较小的 jdk自带的,使用方便 可以用来缓存反射的Method, Field等 LRUMap 依赖common-collections包 淘汰算法淘汰数据 Ehcac...原创 2018-08-29 16:18:14 · 1666 阅读 · 0 评论 -
jetcache(1)基本使用
基本使用当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实现也是非常简单的。pom<dependency> <groupId>com.alicp.jetcache</group...原创 2018-08-31 14:23:32 · 4201 阅读 · 0 评论 -
redis的java客户端lettuce的使用
从官方文档翻译并整理的,有地方可能表述不准确文档地址:https://github.com/lettuce-io/lettuce-core/wiki/About-lettuce1. lettuce的介绍lettuce是一个线程安全的redis客户端。提供同步,异步和reactive(?)的APIs.。如果可以避开阻塞和事务型的操作比如BLPOP和MULTI/EXEC,多个线程可以分...原创 2018-08-28 17:28:12 · 27771 阅读 · 0 评论 -
redis详述
本文围绕以下几点进行阐述:· 为什么使用 Redis· 使用 Redis 有什么缺点· 单线程的 Redis 为什么这么快· Redis 的数据类型,以及每种数据类型的使用场景· Redis 的过期策略以及内存淘汰机制· Redis 和数据库双写一致性问题· 如何应对缓存穿透和缓存雪崩问题· 如何解决 Redis 的并发竞争 Key 问题为什么使用Redis我觉得在项目中使用 Redis,主要是从...原创 2018-06-28 18:04:09 · 325 阅读 · 0 评论 -
redis架构(4)-集群动态扩容
原文:https://www.cnblogs.com/PatrickLiu/p/8473135.html一、引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境。当然,大家可以使用 Cluster info 命令查看Cluster集群的状态,也可以使用Cluster Nodes 命令来详细了解Cluster集群每...转载 2018-06-29 16:53:18 · 2086 阅读 · 0 评论 -
redis架构(3)-集群搭建
原文:https://www.cnblogs.com/PatrickLiu/p/8458788.html一、引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的所涉及到的概念做深入的探讨。本文只是针对如何设置集群、测试和操作集群做了简述,并且从用户的角度描述了系统的行为,并不涉及Redis集群规范中所包含的细节。但是,本教程试图从最终用户的角度来解释有关R...转载 2018-06-29 16:52:08 · 273 阅读 · 0 评论 -
redis架构(2)-哨兵模式
原文:https://www.cnblogs.com/PatrickLiu/p/8444546.html一、引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一点,Master和Slave两个节点的持久化配置尽量保持一致,否则会有奇怪的问题出现。从今天开始...转载 2018-06-29 16:50:12 · 301 阅读 · 0 评论 -
redis架构(1)-主从复制
原文:https://www.cnblogs.com/PatrickLiu/p/8426610.html一、引言 Redis的基本数据类型,高级特性,与Lua脚本的整合等相关知识点都学完了,说是学完了,只是完成了当前的学习计划,在以后的时间还需继续深入研究和学习。从今天开始来讲一下有关Redis的集群模式,Redis有三种集群模式,第一个就是主从模式,第二种“哨兵”模式,第三种是...转载 2018-06-29 16:49:13 · 239 阅读 · 0 评论