缓存技术
文章平均质量分 93
MayMatrix
J2EE .
展开
-
缓存穿透、缓存击穿和缓存雪崩原因+解决方案
REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫转载 2021-06-16 17:29:13 · 425 阅读 · 0 评论 -
redis set NX EX 命令
Redis 命令参考»SETSET key value [EX seconds] [PX milliseconds] [NX|XX]将字符串值value关联到key。如果key已经持有其他值,SET就覆写旧值,无视类型。对于某个原本带有生存时间(TTL)的键来说, 当SET命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。可选参数从 Redis 2.6.12 版本开始,SET命令的行为可以通过一系列参数来修改:EXsecond:设置键的过...转载 2021-03-30 17:27:39 · 36978 阅读 · 0 评论 -
分布式高性能缓存Hazelcast 概览
一. Hazelcast1. Hazelcast简介Hazelcast 是由Hazelcast公司开发的一款开源的分布式内存级别的缓存数据库,可以为基于JVM环境运行的各种应用提供分布式集群和分布式缓存服务。利用Hazelcast可以满足“分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”等的要求。2. Hazelcast的应用Hazelcast提供了对很多 Java 接口的分布式实现,如Map, Queue, ExecutorService, Lock.转载 2021-03-22 19:46:07 · 1319 阅读 · 0 评论 -
现代化的缓存设计方案:Caffeine Cache
原文地址 译者:简直缓存是提升性能的通用方法,现在大多数的缓存实现都使用了经典的技术。这篇文章中,我们会发掘Caffeine中的现代化的实现方法。Caffeine 是一个开源的 Java 缓存库,它能提供高命中率和出色的并发能力。期望读者们能被这些想法激发,进而将它们应用到任何你喜欢的编程语言中。驱逐策略缓存的驱逐策略是为了预测哪些数据在短期内最可能被再次用到,从而提升缓存的命中率。由于简洁的实现、高效的运行时表现,以及在常规的使用场景下有不错的命中率,LRU(Least Rec...转载 2020-09-08 09:42:35 · 500 阅读 · 0 评论 -
redis原理(2)全面了解
redis单点吞吐量单点TPS达到8万/秒,QPS达到10万/秒。redis的5中存储类型string、list、set、map(hash)、stored-setredis的string类型能表达3中类型:字符串、整数和浮点数。根据场景相互间自动转型,并且根据需要选取底层的承载方式 value内部以int、sds作为结构存储。int存放整型数据,sds存放字节/字符串和浮点型数据 sds内部结构:用buf数组存储字符串的内容,但数组的长度会大于所存储内容的长度。会有一格专门存放”\转载 2020-06-08 16:53:04 · 140 阅读 · 0 评论 -
redis原理(1)常见面试问题
1 什么是redisredis是nosql(也是个巨大的map) 单线程,但是可处理1秒10w的并发(数据都在内存中)使用java对redis进行操作类似jdbc接口标准对mysql,有各类实现他的实现类,我们常用的是druid其中对redis,我们通常用Jedis(也为我们提供了连接池JedisPool)在redis中,key就是byte[](string)redis的数据结构(value):String,list,set,orderset,hash2 redis的使用先安装好re转载 2020-06-08 16:43:18 · 169 阅读 · 0 评论 -
Redis的并发竞争问题的解决方案总结【参考】
什么是Redis的并发竞争问题Redis的并发竞争问题,主要是发生在并发写竞争。考虑到redis没有像db中的sql语句,update val = val + 10 where ...,无法使用这种方式进行对数据的更新。假如有某个key = "price", value值为10,现在想把value值进行+10操作。正常逻辑下,就是先把数据key为price的值读回来,加上10,再把值给设置回去。如果只有一个连接的情况下,这种方式没有问题,可以工作得很好,但如果有两个连接时,两个连接同时想对还p.转载 2020-05-29 13:43:22 · 281 阅读 · 0 评论 -
如何使用Shiro(快速了解Shiro)
本篇内容大多总结自张开涛的《跟我学Shiro》原文地址:http://jinnianshilongnian.iteye.com/blog/2018936我并没有全部看完,只是选择了一部分对我来说急需在项目中使用的知识加以学习。并且对于大多数第一次接触Shiro的同学来说,掌握这些也应该足够了。一、架构要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的转载 2017-10-25 16:29:26 · 787 阅读 · 0 评论 -
Spring+SpringMVC做Redis集群(Sentinel模式)
研究Redis也有一段时间了,在前面的Redis系列文章中,介绍了Redis的安装,集群配置,及节点的增加和删除,但是并未实际的使用到项目中,趁这周末时间,参照项目中实际的使用场景,做了一个Redis集群Spring整合的案例,在介绍案例之前,先简单介绍下Redis集群的方式有哪些 1、单机版 不解释 2、Sentinel 哨兵模式 3、Redis Cluster Redis官方集群方案 4、Re...转载 2018-03-19 14:48:57 · 1380 阅读 · 0 评论 -
redis sentinel 哨兵原理,配置和使用
一、Sentinel介绍Sentinel是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。Redis提供的sentinel(哨兵)机制,通过s...转载 2018-03-19 15:16:11 · 415 阅读 · 0 评论 -
全面剖析Redis Cluster原理和应用
转自:http://blog.csdn.net/dc_726/article/details/485525311.Redis Cluster总览1.1 设计原则和初衷在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个:性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy...转载 2018-03-19 15:43:00 · 1514 阅读 · 0 评论 -
Redis cluster集群:介绍
写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning 官方文档: 集群教程:http://www.redis.cn/topics/cluster-tutorial.html 集群规范:http://www.redis.cn/topics/cluster-spec.html jedis客户端操作re...转载 2018-03-19 15:54:28 · 366 阅读 · 0 评论 -
Redis cluster集群:原理及搭建
1.为什么使用redis?redis是一种典型的no-sql 即非关系数据库 像python的字典一样 存储key-value键值对 工作在memory中所以很适合用来充当整个互联网架构中各级之间的cache 比如lvs的4层转发层 nginx的7层代理层尤其是lnmp架构应用层如php-fpm或者是Tomcat到mysql之间 做一个cache 以减轻db的压力因为有相当一部分的数据 只是简单的...转载 2018-03-19 16:00:55 · 93916 阅读 · 8 评论 -
redis-cluster3.0研究和使用
转自:http://hot66hot.iteye.com/blog/2050676最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到redis3 release出来后,换掉memCache 集群. 转载请注明出处哈:http://hot66hot.iteye.com/admin/blogs/2050676一:关于redis cluster1:redis clu...转载 2018-03-19 16:10:33 · 823 阅读 · 0 评论 -
Redis使用三、redis的配置与使用
srping的application-context.xml引入redis.xmlredis.xml:xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"转载 2017-10-25 15:39:10 · 385 阅读 · 0 评论 -
Redis使用二、redis整合spring(redisTemplate工具类)
原文地址,转载请注明出处:http://blog.csdn.net/qq_34021712/article/details/75949706 ©王赛超前言关于哨兵模式的配置,我是参考网上的,只是把配置拿到了这里,本人并没有亲测是否有效,代码是注释掉的,需要配置哨兵模式的,可以参考一下。完整项目下载:在测试包下有一个TestRedis.java这个类,可以使用这个转载 2017-10-25 15:35:51 · 966 阅读 · 0 评论 -
Redis简介 对比Memcache 应用场景
1. MySql+Memcached架构的问题Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同转载 2015-10-16 17:44:39 · 1879 阅读 · 0 评论 -
分布式缓存-Memcached
分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由。原文:http://wenku.baidu.com/view/8686d46c7e21af45b307a8c转载 2015-10-16 17:54:34 · 356 阅读 · 0 评论 -
memcached基本配置与使用
一、概念Memcached是danga.com开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。二、原理Memcached有两个核心组件组成:服务端(ms)和客户端(mc)。首先mc拿到ms列表,并对key做hash转化,根据hash值确定kv对所存的ms位置。然后在一个memcached的查询中,mc先通过计算key的hash值来确定转载 2017-03-10 20:23:00 · 303 阅读 · 0 评论 -
memcached真实项目中的应用
上一篇memcached基本配置与使用http://blog.csdn.net/sup_heaven/article/details/32337711介绍了memcached的一些基本概念和一个范例。这一篇将以介绍一个memcached在项目中的应用。假设我们有一个web应用,里面有商品信息,文章信息,评论信息,其他信息,我们希望对其做缓存,那么我们在ServiceImpl层就不在调用DA转载 2017-03-10 20:24:33 · 318 阅读 · 0 评论 -
Redis实战
大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满且不释放。印象中,Redis 2.4.8以下的版本由于设计上的主从库同步问题,就会导致整个问题,不知是否确为这个Bug所致。但从那以后,我就很少敢去尝试使用Redis。曾想转投MongoDB,但公司同事给我的回复是,由于MongoDB宕机,数据丢失,公司损失惨重。于是,我一直停留在转载 2017-03-10 21:09:33 · 381 阅读 · 0 评论 -
redis实战(java项目应用)
首先,简单介绍下Redis,redis是一个key-value存储系统,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。更详细的介绍可以参照官网(点击打开链接),本文主要介绍redis在工程项目中的具体应用(Redis的Java客转载 2017-03-10 21:11:23 · 12208 阅读 · 2 评论 -
Redis实战之Redis + Jedis
用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET等。基于这些限制,有必要考虑Redis!相关链接:Redis实战Redis实战之Redis + JedisRedis实战之征服 Redis + Jedis + Spring (一)Redis实战之征服 Redis + Jedis + Spring转载 2017-03-10 21:18:17 · 483 阅读 · 0 评论 -
Redis实战之征服 Redis + Jedis + Spring (一)
Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)接着需要快速的调研下基于spring框架下的Redis操作。相关链接:Redis实战Redis实战之Redis + JedisRedis实战之征服 Redis + Jedis + Spring (一)Redis实战之征服 Redis + Jedis + Spri转载 2017-03-10 21:19:22 · 324 阅读 · 0 评论 -
(精)数据库分库分表
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案数据库分库分表(sharding)系列(四) 多数据源的事务处理数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量数据库分库分表(sharding)系列(二) 全局转载 2017-03-10 21:24:42 · 430 阅读 · 0 评论 -
事务和两阶段提交,三阶段提交协议(有限状态自动机)
转自:http://blog.csdn.net/it_man/article/details/9730559事务和两阶段提交,三阶段提交协议(有限状态自动机)•1 事务的ACID 事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。 A是Atomicity,原子性。一个事务往往涉及到许多的子操作,转载 2017-03-10 21:27:39 · 379 阅读 · 0 评论 -
用消息队列和消息应用状态表来消除分布式事务
由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的转载 2017-03-10 21:31:19 · 463 阅读 · 0 评论 -
Redis 安装
Redis 安装Window 下安装下载地址:https://github.com/MSOpenTech/redis/releases。Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。打开一个 cmd 窗口 使用cd命令切换转载 2017-06-07 16:18:00 · 421 阅读 · 0 评论 -
Redis使用一、Redis哨兵模式
Redis-Sentinel redis的哨兵模式Redis Sentinel 模式简介Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而redis-sentinel本身也是独立运行的进程,可以部署在其他与redis集群可通讯的机器中转载 2017-10-25 15:34:15 · 543 阅读 · 0 评论 -
数据库缓存技术——Memcached入门
Memcached入门Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。转载 2015-07-29 09:23:32 · 504 阅读 · 0 评论