
Redis
文章平均质量分 94
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊~~~
保暖大裤衩LeoLee
芜湖~~~
展开
-
springboot2.x 整合redis范例(Lettuce & Jedis)
前言在实际项目开发过程中,相信很多人都有用到过 redis 这个NoSQL,这篇文章就详细讲讲springboot如何整合 redisRedis 简介简单介绍下Redis:Redis是一个开源的使用 ANSI C语言编写,支持网络,可基于内存也可持久化的日志型,Key-Value数据库,并提供了多种语言的 API ,相比Memcached它支持存储的类型相对更多 (字符,哈希,集合,有序集合,列表等),同时Redis是线程安全的。Redis 连接池简介在后面 springbo..转载 2020-08-20 22:47:36 · 1453 阅读 · 0 评论 -
Redisson——分布式锁的基本应用
什么是Redisson以下是我在github上找到的介绍:Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet,Set,Multimap,SortedSet,Map,List,Queue,BlockingQueue,Deque,BlockingDeque,Semaphore,Lock,AtomicLong,CountDow...原创 2020-11-21 17:41:34 · 712 阅读 · 0 评论 -
分布式锁——redis实现分布式锁(手写redis分布式锁)
不适用分布式锁会怎样?以抢购商品的高并发场景为例,通常单体的应用可以通过同步代码来实现顺序对数据库的操作,保证程序是按照预想来执行扣减操作的,不发生超卖情况。但是在分布式系统中,同一个服务多实例部署,同步代码就不能解决该问题,简单来讲就是同步代码在多实例的情况下只能管好自己,管不了别人,而且因为synchronized的粗粒度,单线程执行造成请求挤压情况。使用redis实现分布式锁使用redis实现分布式锁主要是使用其SETNX操作:SETNX [key] [value],当key不存在时,原创 2020-11-20 21:26:54 · 1878 阅读 · 4 评论 -
Redis哨兵模式——弥补Redis主从模式的高可用缺失
一.什么是哨兵机制?答:Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover):当一个Master...转载 2020-10-28 13:19:01 · 330 阅读 · 0 评论 -
Redis主从数据同步原理以及主从配置
为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,主服务负责写数据,从服务负责读请求,Redis主从复制可以根据是否是全量分为全量同步和增量同步。主从数据同步全量同步当Slave启动时发生全量同步,该Slave会向Master发出全量数据同步请求:从服务器连接主服务器,发送SYNC命令 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件,并使用缓冲区记录此后执行的所有写命令 主服务器BGSAVE执行完后,向所有从服务器发送快照原创 2020-10-28 12:55:54 · 402 阅读 · 0 评论 -
Redis缓存穿透和缓存雪崩的分析与解决方案
一般情况下缓存和DB访问的关系缓存穿透指查询一个一定不存在的数据,由于缓存中没有该查询对象(缓存始终无法命中对应的数据),这时会去数据库查询数据,如果数据库中也没有对应的数据也无法写入缓存,在这种情况下,每一次查询不存在数据的请求都将去查询数据库,这就是缓存穿透。造成影响:当在高并发的情况下,缓存穿透可能会拖慢数据库,进而拖慢整个系统,甚至宕机。解决办法:当在缓存中无法命中对应数据时,且访问数据库也没有查询到目标数据,这时向缓存中存入空结果。这样的情况下,每一次查询首先判断red原创 2020-10-27 23:21:10 · 985 阅读 · 2 评论 -
Redis与数据库一致性问题常用解决方案
转载于:https://blog.youkuaiyun.com/diweikang/article/details/94406186缓存已经在项目中被广泛使用,在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。所以参考了网上一些资料对这块进行讲解。先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时转载 2020-10-27 22:28:16 · 248 阅读 · 0 评论 -
Redis的数据持久化
大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数据就会丢失不见了。这样的数据库并不是一个可靠的数据库。所以数据的持久化是内存型数据库的重中之重。它不仅提供数据保存硬盘的功能,还可以借此用硬盘容量扩展数据存储空间,使得Redis的可以存储超过机器本身内存大小的数据。Redis对于数据持久化提供了两种持久化的方案,RDB与AOF。它们的原理和使用场转载 2020-10-27 17:35:40 · 200 阅读 · 0 评论 -
Redis事务解析
基本概念Redis事务与其他关系型数据库的事务有很大的区别,Redis事务的本质是一组命令的集合,一次事务的执行实质上就是一组不可被打断、不可被插入的命令的顺序执行,不受其他客户端命令执行的影响。Redis事务没有隔离级别的概念,所有事务内的操作在事务执行的命令发送前,都被缓存在一个队列中等待,并没有真正的执行,也就不存在事务内的查询看到事务里的更新,事务外查询不能看到事务内的结果。Redis事务是非原子性的,我们都直到Redis单条命令由于Redis单线程的原因,都是满足原子性的,但是Redi原创 2020-10-27 15:50:15 · 158 阅读 · 0 评论 -
Redis的“第六种”数据类型HyperLogLog
HyperLogLog是什么HyperLogLog 是大数据基数统计中的常见方法,用于在一定的误差范围内,用最小的空间复杂度来估算一个数据流的基数,Redis,Spark 还是 Flink都提供与之相关的功能。什么是基数估算基数估算(Cardinality Estimation)在数学层面,基数估算描述的是:基数是指一个集合中,不同的数的个数。比如说一个集合{0, 1, 2, 2, 4, 5},其基数是5,而个数是6,因为1重复出现了两次,基数是个去重统计。 基数估算是估计一个集合中不转载 2020-10-27 12:57:23 · 353 阅读 · 0 评论 -
Redis的内存淘汰策略详解
Redis占用内存Redis作为内存型数据库,在业务量过大的情况下,会出现内存不够的情况(达到[maxmemory]设置值),当然机器内存足够强大,数据可承受范围会更大,但是这不是解决问题的方法。Redis提供了两种解决方法:设置key的超时时间 LRU算法设置数据的超时时间(TTL)关于设置数据的超时时间这个方法,是我们经常用到的,同时设置超时时间还可以在某些场景下满足我们的业务需要:验证码的失效时间 用户token的失效时间 ......但是有没有想过TTL的过期策略是什么原创 2020-10-26 13:18:52 · 289 阅读 · 0 评论