Redis
文章平均质量分 66
爱笑的tiger
学无止境,享受生活
展开
-
Redis事务
1.事务简介mysql中事务四大特性,原子性,隔离性,持久性,一致性。可以一次执行多个命令,本质是一组命令的集合。一个事务中的 所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞单独的隔离的操作。MULTI、EXEC、DISCARD、WATCH。这四个指令构成了 redis 事务处理的基础。2.Redis事务处理流程1.MULTI 用来组装一个事务;将命令存放到一个队列里面2.EXEC 用来执行一个事务;//commit3.DISCARD 用来取消一个事.原创 2022-01-16 21:06:31 · 389 阅读 · 0 评论 -
Redis缓存穿透&缓存击穿&缓存雪崩
1.缓存穿透缓存穿透是指缓存和数据库中都没有的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。问题描述:key对应的数据在数据库并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据库,从而可能压垮数据库。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决方法:一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不.原创 2022-01-16 20:35:18 · 131 阅读 · 0 评论 -
Redis集群的搭建
1.应用场景当主备复制场景,无法满足主机的单点故障时,需要引入集群配置。2.基本原理redis为了提高网站响应速度,总是把热点数据保存在缓存中而不是直接从后端数据库中读取。一般大型网站有28定律 80%访问量集中在20%的业务上。大型网站应用,热点数据量往往巨大,使用一台 Redis 实例无满足需求,这时就需要使用 多台 Redis (集群)作为缓存数据库。才能在用户请求时快速的进行响应。优点:1,高可用,防止单点故障2,高性能,集群每一台主机读写能力与单节点同级别,写压力多原创 2022-01-15 14:22:50 · 167 阅读 · 0 评论 -
spring开启redis缓存(Linux服务器)
1.使用Service层来实现缓存从软件设计的角度分析,service层是业务逻辑层,dao层是数据接入层,dao层的功能比较单一,在service层中出现复杂业务的时候(调用多个dao层方法时),此时dao缓存就无法满足系统要求,需在将缓存提升到service层,可以获取更加丰富的缓存数据。2.spring实现缓存步骤2.1 实现springcachemybatis的cache接口,需要自己实现spring的cache接口,不需要自己实现,因为springboot中...原创 2022-01-15 13:56:56 · 540 阅读 · 0 评论 -
Redis开启mybatis二级缓存(Springboot)
1.缓存的概念(cache)cache缓存是高速缓冲寄存器,解决频繁操作(访问)数据的问题。两个应用软件或者是硬件之间速度差异较大,可以设置缓存协调两者之间的速度差异。2.缓存的分类浏览器缓存 nginx缓存 service层缓存 dao层缓存 数据库缓存 操作系统缓存3.实现dao层缓存步骤一,开启mybatis的二级缓存#开启mybatis的二级缓存,application.properties文件中添加mybatis.configuration.cache-enab原创 2022-01-15 12:30:41 · 824 阅读 · 0 评论 -
RedisTemplate实现排它锁
原理1、通过set命令设置锁 2、判断返回结果是否是OK 1)Nil,获取失败,结束或重试(自旋锁) 2)OK,获取锁成功 执行业务 释放锁,DEL 删除key即可 3、异常情况,服务宕机。超时时间EX结束,会自动释放锁简单实现:package com.yun;import lombok.extern.slf4j.Slf4j;import org.junit.jupiter.api.Test;import org.springframework.b...原创 2022-01-15 12:16:39 · 639 阅读 · 0 评论 -
Jackson和redisTemplate操作Redis数据库
1.jackson使用//使用jackson保存所有的测试题到question.json文件中。@Testpublic void questionToJson() throws IOException { List<Question> list = questionService.queryAll(); ObjectMapper objectMapper=new ObjectMapper(); objectMapper.writeValue(new File("原创 2022-01-15 11:48:49 · 1310 阅读 · 0 评论 -
使用Jedis操作redis数据库(SpringBootTest)
1.引入依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.7.1</version></dependency>2.编写测试代码public class MyJedis { public static void main(String[原创 2022-01-15 11:35:33 · 326 阅读 · 0 评论 -
Redis常见数据结构以及使用场景
1.Redis常用命令进入redis的命令行redis-cli -h 127.0.0.1 -p 6379 -h ip地址-p 端口号,默认是6379修改redis的配置文件,允许其他机器访问。修改/etc/redis.conf 的第61行修改/etc/redis.conf222行,daemonize yes // 222行set key value 设值get key 获取redis的key值dbsize 查看当前redis有多少个keykeys * 查看所有的key原创 2022-01-15 11:30:22 · 903 阅读 · 0 评论 -
Linux配置Redis
1.Redis简介Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message b原创 2022-01-15 11:15:49 · 775 阅读 · 0 评论