Redis
文章平均质量分 95
码农参上
这个作者很懒,什么都没留下…
展开
-
实战派 | Java项目中玩转Redis6.0客户端缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。哈喽大家好啊,我是Hydra。在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过telnet连接模拟客户端,测试了三种客户端缓存的工作模式,这篇文章我们就来点硬核实战,看看客户端缓存在java项目中应该如何落地。铺垫首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端。多个线程可以共享同一个RedisConnection,利用nio框架Netty来高效地.原创 2022-05-17 08:54:02 · 851 阅读 · 1 评论 -
引入『客户端缓存』,Redis6算是把缓存玩明白了…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra。在前面介绍两级缓存的文章中,我们总共给出了4种实现方案,在项目中整合了本地缓存Caffeine和远程缓存Redis,将应用的性能从仅适用单独远程缓存的基础上,再次提高了一个层次。而今天Hydra要和大家分享的技术,在思想上和上面两级缓存有些类似,不过不需要借助其他本地缓存中间件,只使用Redis自身服务端和客户端就可以实现。这就是Redis6中的客户端缓存Client-side cachin.原创 2022-04-29 11:28:23 · 450 阅读 · 0 评论 -
Redis6通信协议升级至RESP3,一口气看完13种新数据类型
在前面的文章 Redis:我是如何与客户端进行通信的 中,我们介绍过RESP V2版本协议的规范,RESP的全程是Redis Serialization Protocol,基于这个实现简单且解析性能优秀的通信协议,Redis的服务端与客户端可以通过底层命令的方式进行数据的通信。随着Redis版本的不断更新以及功能迭代,RESP V2协议开始渐渐无法满足新的需求,为了适配在Redis6.0中出现的一些新功能,在它的基础上发展出了全新的下一代RESP.原创 2022-04-24 09:34:50 · 1206 阅读 · 0 评论 -
编译实战 | 手摸手教你在Windows环境下运行Redis6.x
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra。不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看只支持linux系统,无奈要么启动虚拟机、要么装在云服务器上。这不前几天又是这样,刚想用一下Redis 6.x版本来尝试一下新特性,打开官网一看,好家伙我直呼内行,果然不支持windows系统:不过虽然redis的官网上不提供windows版本下载,但是这也难不倒我这个面向百度编程的小能手,一番查找后.原创 2022-04-11 09:43:20 · 1536 阅读 · 0 评论 -
基于Spring接口,集成Caffeine+Redis两级缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。在上一篇文章Redis+Caffeine两级缓存,让访问速度纵享丝滑中,我们介绍了3种整合Caffeine和Redis作为两级缓存使用的方法,虽然说能够实现功能,但实现手法还是太粗糙了,并且遗留了一些问题没有处理。本文将在上一篇的基础上,围绕两个方面进行进一步的改造:JSR107定义了缓存使用规范,spring中提供了基于这个规范的接口,所以我们可以直接使用spring中的接口进行Caffeine和Redis两级缓存的整合改造在分布式环境下,.原创 2022-04-06 09:50:09 · 631 阅读 · 1 评论 -
面试官:Redis的事务满足原子性吗?
原创:码农参上(微信公众号ID:CODER_SANJYOU),欢迎分享,转载请保留出处。谈起数据库的事务来,估计很多同学的第一反应都是ACID,而排在ACID中首位的A原子性,要求一个事务中的所有操作,要么全部完成,要么全部不完成。熟悉redis的同学肯定知道,在redis中也存在事务,那么它的事务也满足原子性吗?下面我们就来一探究竟。什么是Redis事务?和数据库事务类似,redis事务也是用来一次性地执行多条命令。使用起来也很简单,可以用MULTI开启一个事务,然后将多个命令入队到事务的队列中.原创 2021-09-09 10:16:49 · 838 阅读 · 0 评论 -
Redis:我是如何与客户端进行通信的
江湖上说,天下武功,无坚不摧,唯快不破,这句话简直是为我量身定制。我是一个Redis服务,最引以为傲的就是我的速度,我的 QPS 能达到10万级别。在我的手下有数不清的小弟,他们会时不时到我这来存放或者取走一些数据,我管他们叫做客户端,还给他们起了英文名叫 Redis-client。有时候一个小弟会来的非常频繁,有时候一堆小弟会同时过来,但是,即使再多的小弟我也能管理的井井有条。有一天,小弟们问我。想当年,为了不让小弟们拖垮我傲人的速度,在设计和他们的通信协议时,我绞尽脑汁,制定了下原创 2021-06-22 09:59:14 · 244 阅读 · 0 评论 -
Redis扩展数据类型详解
在Redis中有5种基本数据类型,分别是String, List, Hash, Set, Zset。除此之外,Redis中还有一些实用性很高的扩展数据类型,下面来介绍一下这些扩展数据类型以及它们的使用场景。GeoGEO在Redis 3.2版本后被添加,可以说是针对LBS(Location-Based Service)产生的一种数据类型,主要用于存储地理位置信息,并可以对存储的信息进行一系列的计算操作。geoadd:存储指定的地理空间位置:# 语法格式:GEOADD key longitude l原创 2021-03-29 09:01:54 · 490 阅读 · 0 评论 -
Redis实现分布式锁
在之前并发系列的文章中,我们介绍了JVM中的锁。但是无论是synchronized还是Lock,都运行在线程级别上,必须运行在同一个JVM中。如果竞争资源的进程不在同一个JVM中时,这样线程锁就无法起到作用,必须使用分布式锁来控制多个进程对资源的访问。分布式锁的实现一般有三种方式,使用MySql数据库行锁,基于Redis的分布式锁,以及基于Zookeeper的分布式锁。本文中我们重点看一下Redis如何实现分布式锁。首先,看一下用于实现分布式锁的两个Redis基础命令:setnx key va原创 2020-08-17 15:04:17 · 790 阅读 · 0 评论 -
Redis缓存三大问题,一次解决
Redis是我们日常在工作中使用非常多的缓存解决手段,使用缓存,能够提升我们应用程序的性能,同时极大程度的降低数据库的压力。但如果使用不当,同样会造成许多问题,其中三大经典问题就包括了:1.缓存穿透2.缓存击穿3.缓存雪崩是不是听上去一脸懵逼?没关系,看完这篇就明白了。1、缓存穿透缓存穿透是指用户在查找一个数据时查找了一个根本不存在的数据。按照缓存设计流程,首先查询redi...原创 2020-04-07 19:56:49 · 1297 阅读 · 0 评论 -
Redis主从复制架构搭建
Redis虽然拥有非常高的性能,但是在实际的生产环境中,使用单机模式还是会产生不少问题的,比如说容易出现单机故障,容量瓶颈,以及QPS瓶颈等问题。通常环境下,主从复制、哨兵模式、Redis Cluster是3种比较常见的解决方案,本文将通过实例演示如何搭建Redis主从复制环境,并对其原理进行分析。一、搭建主从复制架构1、创建3个目录redis8000,redis8001,redis8002目录下。将默认配置文件redis.conf拷贝到redis8000下,将redis8000指定为主..原创 2020-07-24 15:47:44 · 668 阅读 · 0 评论 -
Redis哨兵搭建与原理分析
在Redis主从复制架构这篇文章中我们分析了主从复制的特点,其中一个问题就是主机宕机后需要手动调整,修改从机为主机,不仅不利于迅速恢复生产场景,还会增加人力成本。哨兵模式的出现是就是为了解决我们主从复制模式中需要我们人为操作的东西变为自动版,并且它比人为要更及时。这篇文章我们就来讲讲如何通过哨兵模式,迅速实现自动故障转移。一、哨兵主要功能监控(Monitoring):哨兵会不断地检查主节点和从节点是否运作正常。自动故障转移(Automatic Failover):当主节点不能正常工作时,哨.原创 2020-07-27 11:20:55 · 307 阅读 · 0 评论