![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
北纬@叶枫
这个作者很懒,什么都没留下…
展开
-
Redis缓存穿透、缓存击穿、缓存雪崩
在Redis缓存中有三个必须要知道概念:缓存穿透、缓存击穿和缓存雪崩。 缓存穿透 那什么是缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,是会一直查询数据库,这样会对数据库的访问造成很大的压力。 如:用户查询一个 id = -1 的商品信息,一般数据库 id 值都是从 1 开始自增,很明显这条信息是不在数据库中,当没有信息返回时,会一直向数据库查询,给当前数据库的造成很大的访问压力。 这时原创 2020-10-29 16:08:51 · 162 阅读 · 0 评论 -
springboot整合redis
一、简介 Redis 的数据库的整合在 java 里面提供的官方工具包:jedis,所以即便你现在使用的是 SpringBoot,那么也继续使用此开发包。 回到顶部 二、redidTemplate操作 在 Spring 支持的 Redis 操作之中提供有一个 RedisTemplate 处理程序类,利用这个类可以非常方便的实现 Redis 的各种基本数 据操作。 1、引入依赖 <dependency> <groupId>org.springframework原创 2020-07-02 15:55:00 · 186 阅读 · 0 评论 -
springboot集成RestTemplate及常见用法
一、背景介绍 在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client, Spring的RestTemplate。这里介绍的是RestTemplate。RestTemplate底层用还是HttpClient,对其做了封装,使用起来更简单。 1、什么是RestTemplate? RestTemplate是Spring提供的用于访问R原创 2020-07-02 15:51:28 · 1206 阅读 · 1 评论 -
redisTemplate和stringRedisTemplate对比、redisTemplate几种序列化方式比较
一、redisTemplate和stringRedisTemplate对比 RedisTemplate看这个类的名字后缀是Template,如果了解过Spring如何连接关系型数据库的,大概不会难猜出这个类是做什么的 ,它跟JdbcTemplate一样封装了对Redis的一些常用的操作,当然StringRedisTemplate跟RedisTemplate功能类似那么肯定就会有人问,为什么会需要两个Template呢,一个不就够了吗?其实他们两者之间的区别主要在于他们使用的序列化类。 Redis原创 2020-07-02 15:45:35 · 1639 阅读 · 0 评论 -
对于Redis中设置了过期时间的Key,你需要知道这些内容
上一篇文章我们讲到了Redis的内存淘汰策略(传送门),这次跟我一起看一下Redis的过期策略。 熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除。 在为key设置过期时间需要注意的事项 1、 DEL/SET/GETSET等命令会清除过期时间 在使用DEL、SET、GETSET等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除。 //设置mykey的过期时间为300s 127.0转载 2020-06-08 14:46:58 · 267 阅读 · 0 评论 -
阿里云Redis开发规范
摘要: 本文介绍了在使用阿里云Redis的开发规范,从键值设计、命令使用、客户端使用、相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题。 一、键值设计 1. key名设计 (1)【建议】: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)【建议】:简洁性 保证语义的前提下,控制key...转载 2020-06-08 14:44:02 · 177 阅读 · 0 评论 -
Redis的开发规范和建议
1. 冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 2. 不同的业务数据要分开存储 不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立原创 2020-06-08 14:39:28 · 145 阅读 · 0 评论 -
Redis的过期策略和内存淘汰策略
Redis的过期策略 过期策略通常有以下三种: 定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。 惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。 定期过期:每隔一定的时间,会扫描一定数量的数据原创 2020-06-08 14:34:37 · 140 阅读 · 0 评论 -
Redis 缓存更新一致性
当执行写操作后,需要保证从缓存读取到的数据与数据库中持久化的数据是一致的,因此需要对缓存进行更新。 因为涉及到数据库和缓存两步操作,难以保证更新的原子性。 在设计更新策略时,我们需要考虑多个方面的问题: 对系统吞吐量的影响:比如更新缓存策略产生的数据库负载小于删除缓存策略的负载 并发安全性:并发读写时某些异常操作顺序可能造成数据不一致,如缓存中长期保存过时数据 更新失败的影响:若某个操作失败,如何对业务影响降到最小 检测和修复故障的难度: 操作失败导致的错误会在日志留原创 2020-05-14 10:08:46 · 229 阅读 · 0 评论 -
Redis之RDB和AOF持久化机制
什么是Redis持久化? Redis作为一个键值对内存数据库(NoSql),数据存储在内存中,在处理客户端请求时,所有操作都在内存中进行,如下图所示: 这样做有什么问题? 存储在内存中的数据,只要服务器关机(各种原因引起的),内存中的数据就会丢失,不仅服务器关机会造成数据丢失,Redis服务器守护进程退出,内存中的数据也一样会丢失。如下图所示: 对于只把redis当做缓存来用的项目来说,数据丢失或许问题不大,只需要重新将数据从数据源加载进来即可,但如果把用户提交的业务数据存储在redis中,原创 2020-05-09 11:53:21 · 212 阅读 · 0 评论 -
Redis 6.0多线程
前言 相信你一定不止一次见过Redis是单线程模式,不过说实话那只是个老版本,Redis 6.0在2019年底发布,其中引入的最重大的改变就是多线程IO。 问题概述 Redis 6.0之后的版本抛弃了单线程模型这一设计,原本使用单线程运行的Redis也开始选择性的使用多线程模型。 仔细想想这个问题,大致可以拆分为两个主要问题: 为什么Redis一开始选择单线程模型(单线程的好处)? 为...原创 2020-05-08 16:41:14 · 1817 阅读 · 2 评论 -
Redis 内存满了怎么办?
Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 1、通过配置文件配置 通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小 //设置Redis最大占用内存大小为100M maxmemory100mb redis的配置文件不...原创 2019-12-12 11:14:33 · 282 阅读 · 0 评论 -
除了缓存,Redis 都解决了哪些问题?
目录 1 从零开始 2 基于本机内存的缓存 3 服务端的Redis 4 客户端的Redis 总结 参考 先看一下Redis是一个什么东西。官方简介解释到: Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmap...原创 2019-12-07 17:01:45 · 144 阅读 · 0 评论 -
Redis常见问题
目录 1、什么是Redis? 2、Redis的特点 3、使用Redis有哪些好处? 1) String 2) Hash 3) List 4) Set 5) Sorted set 4、Redis相比memcached有哪些优势? 5、Memcache与Redis的区别都有哪些? 6、redis适用于的场景? 7、redis的缓存失效策略和主键失效机制 8、为什么redis需...原创 2019-12-07 16:13:32 · 196 阅读 · 0 评论 -
Redis使用规范
目录 1、Key命名规范 2、value设计 3、命令使用 1、Key命名规范 可读性和可管理性 以业务名称(或者数据库名称)为前缀(防止key冲突),使用冒号进行分割,比如业务名:表名:id,例如 account:base:1 简洁性 保证语义的前提下,控制key的长度,当key较多时,内存占用不容忽视,例如 account:{accountId}:e...转载 2019-08-12 15:21:09 · 450 阅读 · 0 评论