Redis

使用redis事物解决stringRedisTemplate.setIfAbsent()并设置过期时间遇到的问题

时间秒杀一切 提交于 2020-10-06 11:21:02
使用redis事物解决stringRedisTemplate.setIfAbsent()并设置过期时间遇到的问题 参考文章: (1)使用redis事物解决stringRedisTemplate.setIfAbsent()并设置过期时间遇到的问题 (2)https://www.cnblogs.com/exmyth/p/11324777.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4660513

二面快手,凉在 SpringBoot上!

若如初见. 提交于 2020-10-06 09:11:26
网上看到一求助帖说:“SpringBoot 配置一直不对,在线求助大佬”。下面有几位朋友的回复,“SpringBoot 太简单了,不适合学!” 这样的也是皮:做 Java 开发, 真敢小觑 Spring Boot? 现在出去面试,无论大小公司 or 项目,都要跟你扯一扯 Spring Boot、微服务,如果啃不下来,很可能直接说拜拜!像快手、美团、网易这些一线大厂都在用它来做敏捷开发,你敢说不适合学? 要知道,如果你能把 Spring Boot 的原理实现吃透的话,就能从中学习到不少前辈优秀的架构设计思想,总结出最优使用方案,绕过工作中遇到的很多坑,进而更好地突破职业和技能瓶颈。 近些年,技术更新迭代是相当快, SpringBoot、SringCloud、Dubbo、Redis 等各种分布式开源框架 。如果一直停滞不前,或者只是受限于只是会用的层次,对未来的职业发展会很不利。这里分享一个十分干货的技术分享 《 SpringBoot 技术整合秘籍》。 视频由开课吧资深讲师,廖雪峰团队实力专家深度调研 BAT、美团、快手等知名大厂业务需求,历时 3 个月精心录制而成,从工作刚需业务场景出发,内容专业且硬核,让你在实际案例中较快刷新Spring技术知识体系,非常适合做后端开发的朋友。 学完,你可以 梳理 SpringBoot 技术体系,查漏补缺 实战场景式学习,快速进阶

redis主从同步参数repl-backlog-size测算

浪子不回头ぞ 提交于 2020-10-06 08:04:14
一、背景 在不影响正常业务的情况下redis主从同步时总会出现timeout,部分同步失败的情况。需要评估一下repl-backlog-size的大小,来避免复制时出现异常 二、步骤 1、获取数据 借助redis-cli 、info replication..收集master_repl_offset每一分钟前后的数据,其中使用了sed 和awk命令对数据进行处理,为后期分析提供便利。 脚本如下 #!/bin/bash # @date: 2020-07-02 # @author: ninesun # @parm : null # @desc: save master_repl_offset by mins echo "start!" for((i=6379; i<6387; i++)) do redis-cli -p $i info replication|grep master_repl_offset|sed 's/:/|/g'|awk '{print strftime("%Y-%m-%d %H:%M:%S"),$0}'|sed 's/ /|/g'|sed 's/|/ /'|sed ' s/^/'$i\|'/' >> /home/scripts/redis/redisParm.csv echo "port $i save successful!" done echo "end!"

CGB2005-京淘12

六眼飞鱼酱① 提交于 2020-10-06 07:42:12
1. SpringBoot整合Redis 1.1 切换开发环境 1.1.1 数据源配置 1.1.2 修改properties配置文件 说明:修改图片配置路径的文件 image.properties文件. #properties的作用就是封装key = value 业务数据 image . dirPath = D : / JT - SOFT / images #image . dirPath = / usr / local / src / images image . urlPath = http : / / image . jt . com 1.1.3 修改hosts文件 1.1.4 修改nginx配置 1.2 整合Redis 1.2.1 引入jar包 < ! -- spring整合redis -- > < dependency > < groupId > redis . clients < / groupId > < artifactId > jedis < / artifactId > < / dependency > < dependency > < groupId > org . springframework . data < / groupId > < artifactId > spring - data - redis < / artifactId > < /

聊一聊高并发高可用那些事

只谈情不闲聊 提交于 2020-10-06 07:38:33
目录 为什么需要消息队列 1.异步 :一个下单流程,你需要扣积分,扣优惠卷,发短信等,有些耗时又不需要立即处理的事,可以丢到队列里异步处理。 2.削峰 :按平常的流量,服务器刚好可以正常负载。偶尔推出一个优惠活动时,请求量极速上升。由于服务器 Redis,MySQL 承受能力不一样,如果请求全部接收,服务器负载不了会导致宕机。加机器嘛,需要去调整配置,活动结束后用不到了,即麻烦又浪费。这时可以将请求放到队列里,按照服务器的能力去消费。 3.解耦 :一个订单流程,需要扣积分,优惠券,发短信等调用多个接口,出现问题时不好排查。像发短信有很多地方需要用到, 如果哪天修改了短信接口参数,用到的地方都得修改。这时可以将要发送的内容放到队列里,起一个服务去消费, 统一发送短信。 高吞吐、高可用 MQ 对比分析 看了几个招聘网站,提到较多的消息队列有:RabbitMQ、RocketMQ、Kafka 以及 Redis 的消息队列和发布订阅模式。 Redis 队列是用 List 数据结构模拟的,指定一端 Push,另一端 Pop,一条消息只能被一个程序所消费。如果要一对多消费的,可以用 Redis 的发布订阅模式。Redis 发布订阅是实时消费的,服务端不会保存生产的消息,也不会记录客户端消费到哪一条。在消费的时候如果客户端宕机了,消息就会丢失。这时就需要用到高级的消息队列,如 RocketMQ

看完这篇Redis缓存三大问题,保你面试能造火箭,工作能拧螺丝。

两盒软妹~` 提交于 2020-10-06 03:11:49
前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。 一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片 在这一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。 为了克服上述的问题,项目通常会引入NoSQL技术,这是一种基于内存的数据库,并且提供一定的持久化功能。 Redis 技术就是 NoSQL 技术中的一种。 Redis 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。 但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是,缓存穿透、缓存击穿和缓存雪崩。本篇文章从实际代码操作,来提出解决这三个缓存问题的方案,毕竟Redis的缓存问题是实际面试中高频问点,理论和实操要兼得。 缓存穿透 缓存穿透是指查询一条数据库和缓存都没有的一条数据,就会一直查询数据库,对数据库的访问压力就会增大,缓存穿透的解决方案,有以下两种:

都说今年工作难找,我不这么认为Java工作还是很好找的,面试前做好充足的准备,看我的计划,希望帮助大家

被刻印的时光 ゝ 提交于 2020-10-06 02:22:42
作为一个程序员来说,抠题是很重要的。就算抠不懂,有些面试题,背也要背下来。否则offer是不讲情面的 目前高频面试题最重要基本上包含这几类 redis相关面试题,Nginx,JVM调优 多线程与高并发 ,dubbo面试题 还有消息中间件 还有mysql优化等 一下这些文档都是我自己经常看,经常复习的资料。熟能生巧,面试肯定无压力 如果你们想要的话,请微我 mashibing88 送给大家 最后希望大家今年找工作更顺利,薪资更高! 我是群主qq 389779836 仅限学习交流,会不定时分享项目源码或者技术交流 做广告的别来! 来源: oschina 链接: https://my.oschina.net/u/4476808/blog/4295819

解决:redis.clients.jedis.exceptions.JedisDataExceptionERR This instance has cluster support disabled

a 夏天 提交于 2020-10-06 02:02:32
1. springCloud 项目启动工程,redis 集群连接报错: Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR This instance has cluster support disabled 2. 解决:在reids 安装服务器上找到配置文件:redis.conf。 放开一个被注释掉的配置,开启集群模式: 原来: # cluster-enabled yes 改为: cluster-enabled yes 3. 重启工程,一切正常。 来源: oschina 链接: https://my.oschina.net/u/4302796/blog/4281070

PHP实现多个关键词搜索查询功能示例

丶灬走出姿态 提交于 2020-10-06 01:51:37
本文实例讲述了PHP实现多个关键词搜索查询功能。分享给大家供大家参考,具体如下: PHP对于数据库的搜索主要通过使用SQL语句中的 like 子句来实现。如果同时搜索多个关键词,可以使用 union 子句来将搜索结果合并起来。以下代码实现了一个搜索页面 <?php require_once ( '' Connections / conn . php '' ); ?> <?php $colname_rs = $_GET [ '' key '' ]; //获得用户输入 $result = explode ( '' , '' , $_GET [ '' key '' ]); //分解用户输入的多个关键词,存入$result数组 mysql_select_db ( $database_conn , $conn ); //连接数据库 //根据多个关键词构建SQL语句 $query_rs = "SELECT * FROM (" ; for ( $i = 0 ; $i < count ( $result ); $i ++ ) //根据每个搜索关键词构建SQL语句 { if ( $i == 0 ) //对第一个关键词,不使用UNION $query_rs .= "SELECT * FROM searchtable WHERE title LIKE ''% $result[0] %'' OR

牛逼哄哄的布隆过滤器,到底有什么用?

与世无争的帅哥 提交于 2020-10-06 01:50:27
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。 不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。 我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒...经过“放弃,拿起,放弃,拿起”的无限轮回,应该算是了解了布隆过滤器的核心思想,所以想给大家分享下。 布隆过滤器的应用 我们先来看下布隆过滤器的应用场景,让大家知道神奇的布隆过滤器到底能做什么。 缓存穿透 我们经常会把一部分数据放在Redis等缓存,比如产品详情。这样有查询请求进来,我们可以根据产品Id直接去缓存中取数据,而不用读取数据库,这是提升性能最简单,最普遍,也是最有效的做法。面试常问,缓存三大问题及解决方案! 一般的查询请求流程是这样的:先查缓存,有缓存的话直接返回,如果缓存中没有,再去数据库查询,然后再把数据库取出来的数据放入缓存,一切看起来很美好。关注微信公众号:互联网架构师,在后台回复:2T,可以获取我整理的教程,都是干货。 但是如果现在有大量请求进来,而且都在请求一个不存在的产品Id,会发生什么