redis
文章平均质量分 52
啦啦啦咯咯咯
一个默默学习的小程序员
展开
-
Redis主从复制讲解
前提知识:当从服务器连接主服务器的时候,主服务会执行bgsave操作(bgsave就是执行rdb快照命令,会创建一个子进程执行执行快照操作)slaveof host port 和 slaveof no one 命令slaveof host port 开启复制slaveof no one 终止复制主从复制过程:注意:redis不支持主主复制主从链从服务也可以拥有自己的从服务器,因此形成了主从链。如果多个从服务器链接主服务器,主服务会无法快速的响应更新所有的从服务器,或者因为重新.原创 2021-02-03 16:07:44 · 115 阅读 · 0 评论 -
Redis持久化方式RDB和AOF方式
AOF方式:概念:配置文件appendonly yes打开aof配置appednfsync 同步频率选项推荐使用everysec这个选项aof缺点:解决:使用bgrewriteaof命令auto-aof-rewrite-percentage 100 和 auto-aof-rewrite-min-size 64mb 解释RDB方式概念:它可以将某一时刻的所有数据都写入硬盘里面。配置:rdbcompression yes 开始快照持久化save 60 1000原创 2021-02-03 15:43:13 · 100 阅读 · 0 评论 -
Redis中雪崩、击穿、穿透
穿透概念缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,我们数据库的 id 都是1开始自增上去的,如发起为id值为 -1 的数据或 id 为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大,严重会击垮数据库。解决缓存穿透我会在接口层增加校验,比如用户鉴权校验,参数做校验,不合法的参数直接代码Return,比如:id 做基础校验,id <=0的直接拦截等Redis还有一个高级用法布隆过滤器(Bloom Filter)这个也能很好的防止缓存穿透的发生,他的原理原创 2021-02-03 10:26:20 · 279 阅读 · 0 评论 -
redis互斥锁
redis互斥锁设计方式一: 使用 set(arg1,arg2,arg3,arg4,arg5)//如果不存在就设置,且设置成功60秒后key自动失效,成功会返回字符串"OK ", 如果存在就不设置该keyString ret = jedis.set(key, value, “NX”, “EX”, 60);flag = ret.equals(“OK”) ? true : false;jedis.del(key);方式二: 使用 setnx(arg1,arg2)String ret = jedis原创 2021-02-03 10:26:07 · 1010 阅读 · 0 评论 -
SpringBoot-操作RedisTemplate拿来即用
1. 引入pom:<!--redis依赖配置--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--连接池--><dependency> <groupId&原创 2021-01-28 14:40:47 · 177 阅读 · 0 评论 -
SpringCache操作Redis-@EnableCaching,@Cacheable,@CachePut,@CacheEvict使用
概念当Spring Boot 结合Redis来作为缓存使用时,最简单的方式就是使用Spring Cache了,使用它我们无需知道Spring中对Redis的各种操作,仅仅通过它提供的@Cacheable 、@CachePut 、@CacheEvict 、@EnableCaching等注解就可以实现缓存功能。常用注解@EnableCaching开启缓存功能,一般放在启动类上。@Cacheable使用该注解的方法当缓存存在时,会从缓存中获取数据而不执行方法,当缓存不存在时,会执行方法并把返回结果原创 2021-01-28 14:25:29 · 856 阅读 · 0 评论 -
Jedis的配置和使用-SpringBoot版本(ssm+jedis)
项目github地址:https://github.com/lalalallalala/SSMJedis对你有帮助的话点个star一.pom引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</ve.原创 2021-01-11 19:40:52 · 934 阅读 · 0 评论 -
Jedis的配置和使用-普通jdk版本
一 导入jedis jar包如果找不jar包,https://mvnrepository.com/从这个网站下载,搜索,找到需要的版本,下载。二 JedisUtil工具类注意:如果JedisPoolConfig.set报错,还得导入commons-pool这个jar包,因为高版本jedis没用集成进去。/** * JedisUtil(推荐存Byte数组,存Json字符串效率更慢) * @author hhc */public class JedisUtil { private原创 2021-01-11 14:55:32 · 1771 阅读 · 3 评论 -
Redis算法-手写Lru算法
题目来源:力扣146题思想问:查找快,删除快,且还需要先后排序,哪一种数据结构满足要求?hash+链表,哈希查找快,链表插入删除快。移动前,如图:移动后,如图:第一种算法java自带实现数据结构,LinkedHashMap,实现该类就可以使用:注意:父类的构造方法为false是一种情况import java.util.LinkedHashMap;import java.util.Map;public class LruCache<K,V> extends Li原创 2020-12-24 11:18:57 · 249 阅读 · 0 评论 -
Redis缓存过期淘汰策略
Redis默认内存?设置内存推荐最大物理内存*0.75修改文件方式如果在运行,动态的修改,就命令方式info memory也可以查看redis内存使用超出了设置的最大值?也会出现错误 缓存过期淘汰策略从配置文件中看有8种默认三种不同删除策略定时删除总结:惰性删除总结定期删除内存淘汰策略记忆图,第二种最长使用最近最少使用,频率最少使用配置文件设置:命令行配置...原创 2020-12-23 21:57:21 · 119 阅读 · 0 评论 -
Redis分布式锁-Redisson使用
Redisson使用redisConfig配置使用测试jemeter进行压测成功!完善finally 那样写有可能会报错! 推荐写法原创 2020-12-23 20:20:28 · 93 阅读 · 0 评论 -
Redis分布式锁-基础篇
前提知识:创建两台单机版,端口号不同的redis服务。主要代码如下:问题一:多线程,没加锁,有两种锁,synchronized和lock,lock会更加灵活,可以tryLock,如下:为了方便,使用synchronized,单机版下使用没用问题。但是分布式部署下,单机锁还是会出现超卖问题,因为不是在同一个jvm层面的锁,所有需要分布式锁。问题二 使用nginx进行负载均衡,轮询发送部署两台服务器,用Jemeter进行压测,就出现了超卖现象。解决:解锁:解决:单机版sy原创 2020-12-23 20:08:06 · 130 阅读 · 0 评论 -
Redis使用和应用场景
redis两个注意点String使用和场景Hash使用和应用场景List使用和应用场景Set使用和应用场景无序,无重复微博好友关注社交关系共同关注我关注的人也关注他QQ内推可能认识的人Zset使用和应用场景统计,排序销售数量排序热搜...原创 2020-12-23 15:26:26 · 79 阅读 · 0 评论