Redis缓存
文章平均质量分 68
Redis缓存
白鸽呀
这个作者很懒,什么都没留下…
展开
-
Sentinel源码剖析之常用限流算法原理实现
限流顾名思义,就是对请求或并发数进行限制;通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而停止服务。在限流中有两个概念需要了解。阈值:在一个单位时间内允许的请求量。如 QPS 限制为10,说明 1 秒内最多接受 10 次请求。拒绝策略:超过阈值的请求的拒绝策略,常见的拒绝策略有直接拒绝、排队等待等。限流的手段通常有计数器、漏桶、令牌桶。原创 2022-11-17 19:05:30 · 1599 阅读 · 2 评论 -
Redis为什么这么快?Redis的线程模型与Redis多线程
一、Redis有多快?Redis是基于内存运行的高性能 K-V 数据库,官方提供的测试报告是单机可以支持约10w/s的QPS二、Redis为什么这么快?(1)完全基于内存,数据存在内存中,绝大部分请求是纯粹的内存操作,非常快速,跟传统的磁盘文件数据存储相比,避免了通过磁盘IO读取到内存这部分的开销。(2)数据结构简单,对数据操作也简单。Redis中的数据结构是专门进行设计的,每种数据结构都有一种或多种数据结构来支持。Redis正是依赖这些灵活的数据结构,来提升读取和写入的性能。(3)采用单线程,转载 2021-08-13 15:27:41 · 102 阅读 · 0 评论 -
MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
这个问题可以从内存淘汰策略,Redis内存大小,设置key过期时间出发为每一个key设置过期时间,设置redis占用内存大小(一般为百分之50%),一旦达到maxmemory阀值,触发Redis内存淘汰策略1、Redis内存淘汰策略默认8种:(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。(4原创 2021-08-13 15:05:23 · 508 阅读 · 0 评论 -
Redis面试题
概述什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另转载 2021-08-13 11:46:56 · 473 阅读 · 0 评论 -
Redis 入门到熟练
Redis官网 http://www.redis.cn/1、安装linux服务器直接输入以下命令 ( 下载,安装,编译)注意:我是直接opt目录下解压的 wget http://download.redis.io/releases/redis-6.0.6.tar.gz ## wget获取指定位置的包 tar xzf redis-6.0.6.tar.gz ## 解压.gz包,x解压抽取的意思,f指定文件 cd redis-6.0.6进入到redis目录下 编译文件 make注意:如果原创 2021-08-07 09:47:15 · 336 阅读 · 0 评论 -
Redis 配置日志
redis 日志redis在默认情况下,是不会生成日志文件的,所以需要配置配置方法:1、首先找到redis的配置文件2、打开配置文件,找到logfile(可能有多个logfile,认准旁边有loglevel的那个),或者直接搜logfile “”3、将路径填入logfile后面的引号内,例如:logfile “d:/redislog/redis.log” (注意斜杆的方向,这个和windows cmd中的斜杆方向是反的)4、根据自己写的路径,手动将日志文件夹建好,日志文件不用建,建到文件夹即可原创 2021-08-07 09:46:44 · 6577 阅读 · 0 评论 -
Redis运行时突然不能读取数据了
redis运行时突然不能读取数据了MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting原创 2021-08-07 09:46:26 · 1580 阅读 · 0 评论 -
Redis @Cacheable/@CacheEvict注意事项
redis @Cacheable/@CacheEvict注意事项1、一个类中,方法A调用 标志了@Cahcheable的方法B,缓存会失效,好像是Spring AOP动态代理的问题,对内部方法不进行代理,因此如果使用缓存redis注解不要使用this调用 标注了@Cahcheable的本类方法B。2、@Cacheable方法中发生异常,缓存保存失败3、一个标志@Cacheable方法,常常会调用其它类中的@Cacheable方法。例如:article类 方法A,调用comment类 方法B,A(a原创 2021-08-07 09:46:08 · 697 阅读 · 0 评论 -
window下后台运行redis
window下后台运行redis在进入redis的安装目录输入:redis-server --service-install redis.windows.conf --loglevel verbose ( 安装redis服务 )输入:redis-server --service-start ( 启动服务 )输入:redis-server --service-stop (停止服务)...原创 2021-08-07 09:45:29 · 213 阅读 · 0 评论 -
Springboot集成redis (使用注解)
springboot集成redis (使用注解)注意:一般开发中小型快速应用,适合redis注解开发。但是想要合理点的设置缓存,建议还是手动配置为什么要使用注解版?注解版使用方便注解版功能多样化,适合多种环境哪种不适合缓存insert插入数据库后,返回一个int值,这个值有必要缓存???没必要。因为一般情况下我不会从缓存中取出int值,例如我插入了一个数据,缓存一个int值,在再插入一个数据,这种缓存一般不会被使用。而且插入一条数据后,就应该让该命名空间下的所有key全部移除原创 2021-08-07 09:45:43 · 2701 阅读 · 0 评论 -
Redis缓存穿透,缓存击穿,缓存雪崩原因和对应解决方案
缓存穿透,缓存击穿,缓存雪崩(有待补充和实验)缓存穿透(对于key,缓存,数据库都没有):key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿(key过期,绕过缓存直接访问数据库):key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的原创 2021-08-06 16:01:28 · 182 阅读 · 0 评论 -
Redis发布订阅
redis发布订阅1、 发布订阅是什么?发布订阅是一种通信模式。分为发布者(publish) 频道(channel) 订阅者(subscribe)发布者需要往指定的频道发送数据消息,如果这一频道存在多个订阅者,那么频道会把消息发送给订阅者。2、测试实例两个订阅者,一个发布者,一个频道...原创 2021-08-06 15:42:06 · 77 阅读 · 0 评论 -
Redis三种集群方式
redis三种集群方式主从复制1、 什么是主从复制? 主从复制就是存在多个服务器,一台作为主服务器(master),多台作为从服务器(slave)master服务器数据,会全部发送给slave服务器,上述称为主从复制2、为什么要进行主从复制?我们知道一个网站大部分的时候,服务器收到的都是请求读的操作,写的操作相对来说会少很多。如果我们用一台服务器 即支持读,又支持写,一旦出现高并发的情况,服务器很可能就凉凉。于是要进行读写分离。进行主从复制,将多台服务器作为读的服务器,一台作为写的服原创 2021-08-06 15:38:31 · 1350 阅读 · 0 评论 -
Redis持久化 RDB(Redis DataBase)和AOF(Append Only File)
redis持久化(RDB和AOF)问题:为什么要持久化呢? redis是缓存/内存数据库,断电数据即失。我们有必要对数据进行定期的持久化,防止数据丢失RDB机制RDB本质RDB其实就是把数据以快照的形式保存在磁盘上。什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。既然RDB机制是通过把某个时刻的所有数据生成一个快照来保存,那么就应该有一种触发机制,是实现这个过程。对于RDB来说,提供了三种机制:save、bgsave、自动化。会将数据持久化的dump.rdb中,重启服务器的时原创 2021-08-06 15:21:18 · 238 阅读 · 0 评论 -
Springboot集成redis和解决redis key乱码问题
springboot集成redis1、 导包<!--springboot中的redis依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- lettuce pool 缓存连接池--原创 2021-08-06 11:29:03 · 2267 阅读 · 0 评论 -
Redis事务,Redis实现悲观锁,乐观锁
Redis 事务redis 事务可以一次执行多个命令,并带有三个保证exec命令执行前,多个命令被放入队列缓存exec命令执行后,缓存队列中的命令顺序执行,一旦有一个有误,不影响其它命令的执行在事务执行过程中,其它客户端提交的命令请求不会插入到当前的缓存命令队列redis事务执行的三个阶段开启事务(multi)命令入队(queue)执行事务(exec)redis事务和mysql事务是有区别的redis 事务并不具有原子性,一旦事务中(命令队列中)有一命令执行失败,并不影响整个原创 2021-08-06 11:16:38 · 1396 阅读 · 2 评论 -
Redis八种数据类型详解
4、基本使用通过set 设key value 。通过get key 取对应的key 取value ,使用dbsize 查看当前数据库 数据个数。通过 del key … 可以删除多个key对应的value ,integer表示 删除成功数exists key 判断对应的key是否存在,nil表示nullexpire key second 设置对应key的过期时间,ttl key 查看key过期没有,如果过期时间到了redis会移除过期key**原创 2021-08-06 11:02:49 · 2168 阅读 · 0 评论 -
Redis安装和相关配置
http://www.redis.cn/1、安装linux服务器直接输入以下命令 ( 下载,安装,编译)注意:我是直接opt目录下解压的 wget http://download.redis.io/releases/redis-6.0.6.tar.gz ## wget获取指定位置的包 tar xzf redis-6.0.6.tar.gz ## 解压.gz包,x解压抽取的意思,f指定文件 cd redis-6.0.6进入到redis目录下 编译文件 make注意:如果编译过程中出现问原创 2021-08-06 09:51:40 · 96 阅读 · 0 评论 -
redis工具类(仅供参考)
17、redis工具类@Componentpublic class RedisUtil { @Autowired private RedisTemplate<String, Object> redisTemplate; public RedisUtil(RedisTemplate<String, Object> redisTemplate) { this.redisTemplate = redisTemplate; }原创 2021-03-03 22:38:07 · 417 阅读 · 1 评论