Redis
文章平均质量分 77
欧冶渃
这个作者很懒,什么都没留下…
展开
-
redis分布式锁
想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。上面的命令执行时,每个客户端在释放锁时,都是「无脑」操作,并没有检查这把锁是否还「归自己持有」,所以就会发生释放别人锁的风险,这样的解锁流程,很不「严谨」!如何解决这个问题呢?此时,加锁成功的客户端,就可以去操作「共享资源」,例如,修改 MySQL 的某一行数据,或者调用一个 API 请求。怎么解决这个问题呢?原创 2022-12-30 21:19:57 · 3794 阅读 · 3 评论 -
缓存穿透、缓存击穿、缓存雪崩
1.缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。2.缓存穿透描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓存取不到的数据,在数据库中也没有...转载 2021-10-19 19:01:30 · 109 阅读 · 0 评论 -
Redis分布式解决数据不一致问题
1.Service中缓存一致性分析当我们从数据库查询数据以后,假如将数据存入到了缓存,后续更新了数据库的数据,但假如没有更新缓存就会出现缓存数据与数据库数据不一致的这样的现象,对于这样问题,有时允许在一定时间范围之内存在。假如我们希望在更新了数据库数据以后要更新缓存,如何实现呢?接下来通过一个案例,来演示和解决一下这个问题.第一步:修改TagService接口,添加相关方法,例如:package com.jt.blog.service;import com.jt.blog.domain.Ta原创 2021-10-18 11:59:32 · 1882 阅读 · 0 评论 -
RedisTemplate-2设计性能以及自定义key
1.设计优化查询效率:需求:查询数据要先从本地缓存中查询,查询不到的话在从Redis中 查询,Redis查询不到在查询数据库package com.jt.reids.controller;import com.jt.reids.dao.Tag;import com.jt.reids.service.TagService;import org.springframework.beans.factory.annotation.Autowired;import org.springframew原创 2021-10-16 14:31:48 · 628 阅读 · 0 评论 -
RedisTemplate应用
简介RedisTemplate为SpringBoot工程中操作redis数据库的一个Java对象,此对象封装了对redis的一些基本操作。准备工作第一步:创建工程配置文件application.yml,其内容如下:spring: redis: host: 192.168.64.129 #写自己的ip port: 6379第二步:创建工程启动类,例如:...原创 2021-10-15 20:47:16 · 500 阅读 · 0 评论 -
Redis架构设计应用实践(Redis集群设置)
1.Redis主从复制基本架构redis主从架构如图所示:其中,master负责读写,并将数据同步到salve,从节点负责读操作.快速入门实践基于redis,设计一主从架构,一个Master,两个Slave,其中Master负责Redis读写操作,并将数据同步到Slave,Slave只负责读.,其步骤如下:第一:将redis01拷贝两份,例如:cp -r redis01/ redis02cp -r redis01/ redis03...原创 2021-10-13 20:15:53 · 161 阅读 · 0 评论 -
Readis 数据持久化(重点)
背景Redis是一种内存数据库,在断电时数据可能会丢失。比如你redis整个挂了,然后redis不可用了,如果没有持久化的话,redis就会丢失所有的数据,如果通过持久化将数据搞一份儿到磁盘上去,然后再定期同步到一些云存储服务上去,那么就可以保证一些数据不丢失,保证数据的可靠性。持久化方式Redis中为了保证在系统宕机(类似进程被杀死)情况下,能更快的进行故障恢复,设计了两种数据持久化方案,分别为rdb和aof方式Rdb方式持久化什么是RDB在指定时间间隔内,将内存中的数据集快.原创 2021-10-12 18:23:47 · 361 阅读 · 0 评论 -
Redis的5种数据类型-2
list数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储数据:一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型:保存多个数据,底层使用双向链表存储结构实现业务场景-最新消息的展示twitter、新浪微博、腾讯微博中个人用于的关注列表需要按照用户的关注顺序进行展示,粉丝列表需要将最近关注的粉丝列在前面list类型数据操作注意事项 list 中保存的数据都是string类型的,数据总容量式是有限的,最多232-1个元素...原创 2021-10-11 15:02:41 · 155 阅读 · 0 评论 -
redis的5种数据类型
redis的5种数据类型:1.1string 字符串(可以为整形、浮点型和字符串,统称为元素)1.2list 列表(实现队列,元素不唯一,先入先出原则)1.3set 集合(各不相同的元素)1.4hash hash散列值(hash的key必须是唯一的)1.5sort set 有序集合1.String类型1.1使用场景:场景一:“某某综艺”,启动海选投票,只能通过微信投票,每个微信号每4个小时只能投1票。场景二:电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维原创 2021-10-11 11:47:43 · 1316 阅读 · 0 评论