![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
redis
文章平均质量分 68
redis 学习
赵成默
总结就是提升的过程
展开
-
分布式缓存:redis
前言微服务时代,分布式缓存的应用就是必然的redis集群目前可以知道的redis实现的集群方式是有两种的,一种是主从复制,一种是分片主从复制这种模式的特点是:读写分离 主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。每个主机和从机都拥有相同的数据分片这种方式实现的集群就是每个机器都是主机在分布式存储系统中,数据需要分散原创 2022-05-05 16:48:15 · 825 阅读 · 0 评论 -
来了解一下---JSR107缓存规范(Java 规范提案)
前言这个还是有需要了解的,记得有次面试官问到redis的时候,突然问你了解过缓存规范吗?我懵了,这是啥?我还以为有是使用redis的管理工具,就跟她扯了Jedis和redisTemplate的内容,然后我他说我想要了解的不是这个,它说道我想要了解的是JSR管理规范,但是那时候我根本不知道这个是什么,只能说有空会在去了解的。不过说实在这个东西也只要了解一下就行了核心内容Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Ent原创 2020-11-04 14:24:21 · 263 阅读 · 0 评论 -
Redis学习(十二)---缓存穿透、击穿和雪崩
前言缓存问题也是服务器的高可用问题缓存穿透概念缓存穿透指的是去查询一个根本不存在的数据,缓存中没有,持久化数据源中也没有。这将导致不存在的数据每次请求都要到持久层去查询,失去了缓存保护后端持久的意义,也是数据库宕机的可能性大大增加。解决方案1、缓存空对象持久化数据源中也没有的时候回返回一个null值,此时将空值也进行缓存,然后将该key设置一个较短的过期时间不足:null值意味着浪费空间 ,一个有key没有value的存在毫无意义。解决这个问题较好的方法就是设置一个较短的过期时间原创 2020-07-30 21:01:07 · 126 阅读 · 0 评论 -
Redis学习(十一)---哨兵(Sentinel)模式
前言前面的第十章学习(主从复制、集群)就是为了学习哨兵模式的铺垫为什么要使用哨兵模式上一篇讲解比较详细1、解决从机宕机问题:在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据2、解决主机宕机问题:这个才是哨兵模式解决的主要问题。在 之前的模式中,如果主机宕机的话,只能通过salveof no one 命令手动的将其他从机变成主机如果主机修复后,还必须将原来的从机重新salveof哨兵(sentinel)定义哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命原创 2020-07-29 15:43:59 · 208 阅读 · 0 评论 -
Redis学习(十)---主从复制、集群搭建(伪)
概念是指将一台redis服务器的数据,复制到其他redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)数据的复制是单向的,只能从主节点到从节点Master一写为主,Salve以读为主默认一个主节点可以有多个从节点(或者没有),但是一个从节点只能有一个主节点为什么要使用主从复制单机服务器的限制:出现单点故障,会导致服务器不可用在存在高使用的情况下,一个服务器压力大容量瓶颈。redis本身是有容量限制的(256G,一般可用内存20G原创 2020-07-28 20:55:03 · 154 阅读 · 0 评论 -
Redis学习(九)---发布(publish)/ 订阅(subscribe)
前言redis它也有自己的消息发布和订阅功能,这是一个比较轻量级的功能,毕竟他不是专门做这个的。如果你只是需要一个基础的发布订阅功能个而且有redis,那么你就可以使用它,比较我们可以不需要再去配置RabbitMQ这些专门的消息中间件命令命令描述PSUBSCRIBE pattern [pattern …]订阅一个或多个符合给定模式的频道PUBSUB SUBcommand [argument [argument …]]查看订阅与发布的系统状态PUBLSH channe原创 2020-07-28 16:45:40 · 962 阅读 · 0 评论 -
redis学习(八)---持久化(RDB和AOF)
前言redis是内存数据库,如果不将内存中美好的数据库状态保存到磁盘中华,一旦你退出redis,n那么他的数据就会丢失,这也是它和MySql不一样的地方其中的配置操作请参考前面那一篇文章1、RDBrdb操作就是在redis的快照(SNAPSHOTTING)设置中rdb默认保存的文件名是dump.rdbsave num1 num2: 在num1秒内修改了num2个key,那么他就出触发rdb的保存机制运行过程:1、redis调用系统函数fork() ,创建一个子进程,现在就有了父进程和子原创 2020-07-27 10:36:09 · 159 阅读 · 0 评论 -
Redis学习(七)---配置文件(redis.conf)详解
前言redis的使用肯定离不开他的配置,一个工具的使用,首先要学会配置它,name这个工具才能更有效的发挥它的作用配置信息网络配置(NETWORK)通用配置(GENERAL)快照(SNAPSHOTTING)持久化操作主从复制(REPLICATION)安全(SECURITY)设置密码:除了下面这种方式我们还可以直接在客户端用命令设置config get requirepass 获取密码config set requirepass 【密码】设置密码密码auth 【密原创 2020-07-26 21:01:41 · 296 阅读 · 0 评论 -
Redis学习(六)---RedisTemplate序列化、自定义RedisTemplate,RedisTemplate工具
前言本来这个学习也想写在SpringBoot整合Redis但是考虑到篇幅有点多,我还是写在新的一篇博客RedisTemplate序列化前面说到,我们在java中写入数据之后,在redis客户端查看发现一堆乱码?这个原因是因为redis对象需要序列化点击进入RedisTemplate的源码,查看它的序列化,发现默认的RedisTemplate它所使用的是jdk自己的序列化方式Redis写入对象首先我们写一个User对象1、直接传递对象通过下面的的测试,我发现redis是不能直接写入对原创 2020-07-26 16:49:43 · 1229 阅读 · 0 评论 -
Redis学习(五)---SpringBoot整合Redis
创建项目创建一个SpringBoot项目,我就用快速方法建的主要要注意一个点:记得勾选NoSql中的Spring Data Redis简单看一下pom文件Redis主要需要下面的这依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</arti原创 2020-07-25 21:08:10 · 882 阅读 · 0 评论 -
Redis学习(四)---Jedis
Jedis定义Jedis就是Redis官方推荐的Java连接开发工具,相当是数据库在java中的JDBC,里面封装了对Redis操作的方法使用前提下载Jedis工具包,可以去maven官网上找最新的版本 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupI原创 2020-07-25 17:10:48 · 107 阅读 · 0 评论 -
Redis学习(三)---事务、监视
Redis事务本质Redis事务的本质是一组命令的集合事务支持一次性执行多个命令一个事务中的所有概念都会被 序列化在执行过程中,事务会顺序的执行命令,并且不让其他命令影响事务总结:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令特点1、Redis没有事务隔离级别批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。2、Redis事务不保证原子性Redis中,单条命令是原子性执行的,但事原创 2020-07-24 20:40:50 · 118 阅读 · 0 评论 -
Redis学习(一)---了解什么是NoSQL?什么是Redis?为什么需要它?
前言学习之初,首先要认识一个技术的优点,明白他是什么?他能干什么?NoSQLNoSQL最常见的解释是“non-relational”,Not Only SQL也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID。特性易扩展数据之间无关系,这样就非常容易扩展。大数据量、高性能一般MySQL使用Query Cache。NoSQL的Cache是记录级的。性能更优秀。灵活的数据类型NoSQL无须事先为要存储的数据建立字段,随时可以存储原创 2020-07-20 21:31:51 · 283 阅读 · 0 评论 -
Redis学习(二)---常用命令、数据类型
set 【key】【value】设置键值get 【key】获取键对应的值dbsize 获取当前数据库已存储的长度(注:Redis有16个数据库,从0开始)select 【index】选择数据库key * 获取当前数据库的所有键keyflushdb 清空当前数据库fiushall 清空所有数据库...原创 2020-07-22 10:51:00 · 320 阅读 · 0 评论