草庐IT

redis-sharp

全部标签

探索Redis与MySQL的双写问题

本文已收录至GitHub,推荐阅读👉Java随想录微信公众号:Java随想录原创不易,注重版权。转载请注明原作者和原文链接目录双写一致问题缓存读写策略Cache-AsidePattern(旁路缓存模式)Read/WriteThroughPattern(读写穿透模式)WriteBehindPattern(异步缓存写入模式)旁路缓存模式解析CacheAsidePattern的一些疑问CacheAsidePattern的缺陷延时双删在日常的应用开发中,我们经常会遇到需要使用多种不同类型的数据库管理系统来满足各种业务需求。其中最典型的就是Redis和MySQL的组合使用。这两者拥有各自的优点,例如Re

一文拿捏基于redis的分布式锁、lua、分布式性能提升

1.分布式锁jdk的锁:1、显示锁:Lock2、隐式锁:synchronized使用jdk锁保证线程的安全性要求:要求多个线程必须运行在同一个jvm中但现在的系统基本都是分布式部署的,一个应用会被部署到多台服务器上,synchronized只能控制当前服务器自身的线程安全,并不能跨服务器控制并发安全。所以在分布式环境下要解决线程安全问题就需要使用分布式锁思想:需要在我们分布式应用的外面使用一个第三方组件(可以是数据库、Redis、Zookeeper等)进行全局锁的监控,由这个组件决定什么时候加锁,什么时候释放锁原理:在获取锁的时候插入数据,如何数据可以存储成功那么就获取获取到了锁,如果数据插入

Redis实战之Redisson使用技巧详解

一、摘要什么是Redisson?来自于官网上的描述内容如下!Redisson是一个在Redis的基础上实现的Java驻内存数据网格客户端(In-MemoryDataGrid)。它不仅提供了一系列的redis常用数据结构命令服务,还提供了许多分布式服务,例如分布式锁、分布式对象、分布式集合、分布式远程服务、分布式调度任务服务等等。相比于Jedis、Lettuce等基于redis命令封装的客户端,Redisson提供的功能更加高端和抽象,逼格高!更多功能特性和开发文档说明,可用移步github进行获取,访问地址如下:https://github.com/redisson/redisson/wiki

redis 哨兵 sentinel(一)配置

sentinel巡查监控后台master主机是否故障,如果故障根据投票数自动将某一个从库转换为新主库,继续对外服务sentinel哨兵的功能监控监控主从redis库运行是否正常消息通知哨兵可以将故障转移的结果发送给客户端故障转移如果master异常,则会进行主从切换,将其中一个slave作为新Master配置中心客户端通过连接哨兵来获得当前redis服务的主节点地址sentinel.conf在Ubuntu上我使用的是APT命令安装Redis:sudoaptinstallredis,安装完成之后redis.conf文件的默认路径是:/etc/redis/redis.conf,redis-serv

Redis性能优化:理解与使用Redis Pipeline

本文已收录至GitHub,推荐阅读👉Java随想录微信公众号:Java随想录原创不易,注重版权。转载请注明原作者和原文链接目录Pipeline介绍原生批命令(MSET,MGET)VSPipelinePipeline的优缺点一些疑问Pipeline代码实现当我们谈论Redis数据处理和存储的优化方法时,「RedisPipeline」无疑是一个不能忽视的重要技术。在使用Redis的过程中,频繁的网络往返操作可能会引发严重的性能问题,尤其是当大量并发操作需要快速响应的时候。这就是我们需要使用RedisPipeline的原因。RedisPipeline是Redis提供的一种功能,主要用于优化大量命令的

企业部署,springboot+vue+vue,Linux上部署mysql与redis,docker中部署nginx,jenkins。完整详细。

企业项目部署全流程笔记前言涉及:Linux服务器,docker,Jenkins,nginx,springoot,vue,mysql,redis,git,docker生成容器类型:MySql,Redis,Jenkins,Nginx,项目存放的容器。注:!!!!!!!!!!!数据库不要存放在Docker中,而且存放会在使用时会有问题。!!!!!!!!!!存放mysql时、发现其账号密码只能是root和123456其余的密码会出现问题,显示登陆出错。项目共用MySql,Redis。使用Jenkins进行自动化部署项目。前端项目全部存放到Nginx中,设置动静分离,子域名映射。容器间使用自定义网络进行

记一次Redis Cluster Pipeline导致的死锁问题

一、背景介绍RedisPipeline是一种高效的命令批量处理机制,可以在Redis中大幅度降低网络延迟,提高读写能力。RedisClusterPipeline是基于RedisCluster的pipeline,通过将多个操作打包成一组操作,一次性发送到RedisCluster中的多个节点,减少了通信延迟,提高了整个系统的读写吞吐量和性能,适用于需要高效处理RedisCluster命令的场景。本次使用到pipeline的场景是批量从RedisCluster批量查询预约游戏信息,项目内使用的RedisClusterPipeline的流程如下,其中的JedisClusterPipeline是我们内部

go-redis的基本使用

Golang操作Redis安装go-redis//redis6gogetgithub.com/go-redis/redis/v8//redis7gogetgithub.com/go-redis/redis/v9golang连接redisimport"github.com/go-redis/redis/v8"varrdb*redis.Clientfuncinit(){rdb:=redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password:"",//nopasswordset DB: 0,//usedefaultDB})}通过g

Java面试之Redis篇(offer 拿来吧你)

现在关于Java面试的资料是层出不穷,对于选择困难症的同学来说,无疑是陷入了一次次的抉择与不安中,担心错过了关键内容,现在小曾哥秉持着"融百家之所长,汇精辟之文档"的思想,整理一下目前主流的一些八股文,以达到1+1>2的效果!文章目录1、谈下你对Redis的了解?2、Redis和传统的关系型数据库有什么不同?3、Redis为什么这么快?4、缓存穿透、缓存击穿、缓存雪崩有什么区别,该如何解决?4.1、缓存穿透4.2、缓存击穿4.3、缓存雪崩5、如何保证缓存与数据库的双写一致性?5.1、四种同步策略5.2、考虑问题5.2.1、更新缓存还是删除缓存5.2.2、操作数据库还是缓存最终结论6、说一说

Redis——集群搭建

一、开启redis我们日常不使用docker来部署redis集群,基本上都是直接使用redis启动,是在redis的文件里面进行 但是,如果像在任意位置能执行redis-server的话,需要配置环境变量。 回归正题,我们需要搭建一个集群,我们先在虚拟机上面进行。这个前提里面我们已经把redis.conf复制了三份数据分别放在7001,7002,7003里面去.首先我们在虚拟机上三个redis的开启。分别对应的端口号为7001,7002,7003。其次,我们需要在redis.conf文件里面添加replica-announce-ip参数.作用其实就是为了确保在这些redis从节点能在集群里面进