Redis
文章平均质量分 57
Redis
萝卜阿咕咕
这个作者很懒,什么都没留下…
展开
-
分布式与集群的差别
分布式: 通俗意义上来讲,分布式是将一个整体按照分布到不同地方,只要一个节点出现问题,则会导致系统出现问题分布式就是将多台服务器集中在一起,每台服务器都实现总体中的不同业务。每台服务器都缺一不可,如果某台服务器发生宕机了,则部分功能缺失,将导致整体无法运行。分布式存在的作用主要是将应用程序的多个功能分配到多个服务器上去处理,细化了应用程序的功能模块,能够减缓服务器的压力,大幅度的提高效率。集群: 各个集群上内容都是一致,如果一个集群出现问题无法使用,则其他...原创 2022-04-11 15:59:28 · 4162 阅读 · 0 评论 -
Redis之分布式锁
# 基于 Redis 实现分布式锁的三种方案用 Redis 实现分布式锁的正确姿势(实现一) 用 Redisson 实现分布式可重入锁(RedissonLock)(实现二) 用 Redisson 实现分布式锁(红锁 RedissonRedLock)(实现三)# 分布式锁需满足四个条件首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。(也就是他的一个唯一性) 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也转载 2022-03-23 10:57:35 · 443 阅读 · 0 评论 -
redis中数据存取
1、首先我们需要先引入redis的star后续的话,才能够使用redis的存取的相关方法pom.xml引入对应star,并且还要引入对应的序列化:用的是alibaba的fastjson;<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version原创 2022-03-22 18:37:35 · 5349 阅读 · 1 评论 -
redis之主从、哨兵、集群
redis之主从、哨兵、集群 Redis高可用性,因为redis的存储方式是存储于内存中,所以redis在进行数据查询操作时,效率非常的快;因为是存储于内存,为了使数据不丢失,通过RDB或是AOF的方式进行持久化存储; 但是这边还有一个问题如果说这个主机突然间炸掉,数据全部丢失,那这个时候,可能存储于数据库、redis中的数据就都完全都丢;为了说解决这个问题,所以我们可能衍生出以下的一些解决方式;一、主从:redis多机器部署时,这些机器节点会被分成两类,一类...原创 2022-03-21 15:09:14 · 972 阅读 · 0 评论 -
redis中配置序列化与反序列话bean配置
因为redis在存储数据时,是将value的值进行序列化后存储,后续需要取出数据时,再反序列化为对应的对象内容输出;因为springBoot配置的自动装配机制,虽然有配置了redis的star,但是因为反序列化的方式有很多种,所以这边单独将redis的序列化方式单独进行了配置; 我们将RedisTemplateConfig单独进行配置:package com.cmj.config;import org.slf4j.Logger;import org.slf4j.Logger...原创 2022-03-21 14:05:00 · 1884 阅读 · 0 评论 -
Redis之雪崩、击穿、穿透
1、什么是雪崩·在同一个时间中,redis中的key全部都过期,这个时候这些请求全部都打到了数据库中去,导致数据库无法承受这么多的请求,崩溃了;这就是雪崩我们可以用一个简单的例子来进行说明:如果所有首页的Key失效时间都是12小时,中午12点刷新的,我零点有个秒杀活动大量用户涌入,假设当时每秒 6000 个请求,本来缓存在可以扛住每秒 5000 个请求,但是缓存当时所有的Key都失效了。此时 1 秒 6000 个请求全部落数据库,数据库必然扛不住,它会报一下警,真实情况可能DBA都没反应过来就直原创 2022-03-21 11:35:25 · 1072 阅读 · 0 评论 -
redis数据类型及使用场景
redis是单线程,(不适合存储比较大的数据)Redis存储方式以key和value的形式进行存储,也就是他不依赖于SQL存储的数据结构;因为redis的存储结构,所以一般他的key是以String的格式;redis 有5种基础的数据结构,分别为:String(字符串)、list(列表)、hash(字典)、set(集合)和zset(有序集合),redis的所有的数据结构都是以唯一的key字符串作为名称的,然后通过这个唯一的key值来获取相应的val...转载 2022-03-21 10:34:08 · 6892 阅读 · 0 评论 -
redis的线程模型
redis对客户端发过来的增删改命令都会进行串行化(就是排队进行);一个命令执行完成后,才会进行下一个命令的执行;不会出现两个命令同时处理;保证命令的有序性与串行化; 这样子会导致进程的堵塞,所以这个时候会生一个新的线程;ROD进行快照的生成;AOF的压缩(就是AOF到达最大时,会对可以合并的命令进行合并压缩)(只有一个进程,但是有多个线程)...原创 2021-12-24 22:41:29 · 763 阅读 · 0 评论 -
过期策略(TTL)与淘汰策略
过期策略指的是ttl到期时的处理策略,淘汰策略指的是内存满了的情况下的策略1、过期策略(TTL)定期删除,Redis默认每隔100ms会从设置了过期时间的key中随机抽取一部分来检查是否过期,如果过期就删除。 惰性删除(有点像是懒加载),定期删除可能会导致很多设置了过期时间的key没有被及时删除,所以就有了惰性删除,即在查询这个key时,检查一下是否过期,如果过期就删除。2、淘汰策略内存满后有什么策略,默认的:当内存不足以容纳新写入数据时,新写入操作会报错。结合定期...原创 2021-12-24 22:31:16 · 1995 阅读 · 0 评论 -
Redis面试常考
1、redis与SQL之间有什么区别 SQL一般是存储在硬盘中; redis一般是会存储在内存中,所以相比较SQL来说,在于一些数据查询时,会比较快速2、redis是存储在内存中,宕机后,数据丢失怎么办--------持久化 因为redis中的数据是存储在内存中,所以在系统宕机后,会导致内存中的数据出现丢失,所以这边就会使用到我们的持久化RDB与AOF3、redis的淘汰机制与过期机制4、redis整合SpringBoot5、redis在...原创 2021-12-22 18:01:20 · 884 阅读 · 0 评论 -
Redis整合SpringBoot
1、Starter配置首先我们需要配置对应的pom.xml文件内容<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.3.2.RELEASE</version> </dependency> &l原创 2021-12-22 17:42:43 · 832 阅读 · 0 评论 -
Redis的持久化
redis作为一个键值对内存数据库,数据都是存储在内存中,当程序发起请求时,查询等信息都是在缓存中,这样查询起来相比较直接从硬盘中进行查询,效率更快一些; 但是,我们都知道,当数据存储在内存中时,只要服务器出现宕机等情况时,内存中的数据就会消失,不仅服务器宕机会造成数据消失,redis服务器进程退出后,内存中的数据也会消失 所以如果说项目中一些数据存储在redis中时,如果出现数据丢失情况时,可能会对项目带来非常大的影响;所以针对这个情...原创 2021-12-20 18:12:06 · 314 阅读 · 0 评论 -
Redis与mySQL之间差别
MySql数据库再进行数据写入时,他是写在硬盘上,并且在写入时,数据库中必须创建了该表,定义了表字段等等;并且写入时,必须按照表结构的数据进行写入;Redis是一个缓存数据库,是对数据进行缓存;进行存储时,数据是通过KEY和VALUE 的方式进行存储;VALUE中可以是一个对象内容 而这个Redis的存储方式,又很像我们之前所用的HashMap,也是对应的key和value的格式;但是之前的HashMap的存储方式是,一个进程是存储在一个地方的数据,两个进程(jvm)之间的数据是不能公...原创 2021-12-17 14:14:55 · 810 阅读 · 0 评论