关于SpringBoot整合redis使用Lettuce客户端超时问题

2021-08-02
参考的博客 问题起因 做毕设的时候,使用到Lettuce连接redis,一段时间后不操作,再去操作redis,会报连接超时错误,在其重连后又可使用. 原因是:Lettuce 自适应拓扑刷新(Adaptive updates)与定时拓扑刷新(Periodic updates) 是默认关闭的导致问题的出现 解决的方案 1.重写连接工厂实例,更改其LettuceClientConfiguration 为开启拓扑更新 @Configuration public class RedisConfig { @

SQL实现LeetCode(177.第N高薪水)

2021-08-02
[LeetCode] 177.Nth Highest Salary 第N高薪水 Write a SQL query to get the nth highest salary from the Employee table. +----+--------+ | Id | Salary | +----+--------+ | 1  | 100    | | 2  | 200    | | 3  | 300    | +----+--------+ For example, given the ab

一篇文章带你了解C语言:入门基础

2021-08-02
目录 C语言本身特点 数据类型 常量变量 变量分类 使用小建议 生命周期作用域 常量分类及其特点 字符串+转义字符+注释 字符串 转义字符 两种注释 选择循环语句 函数 数组 总结 闲话少说,先上思维导图. 如图所示,现在还是初识C语言的第一部分,本次只介绍了C语言本身特点,数据类型,常量变量,字符串转义字符注释,选择循环语句,函数,数组. 接下来请和我一起粗略地探讨其中内涵所在. C语言本身特点 这是C语言的定义: C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种

带你了解mybatis如何实现读写分离

2021-08-02
目录 1.spring aop实现 2.mybatis-plus的实现方式 总结 1.spring aop实现 首先application-test.yml增加如下数据源的配置 spring: datasource: master: jdbc-url: jdbc:mysql://master域名:3306/test username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver slave1: jdbc-url:

spring注解在自定义jar包中无法被扫描的解决方案

2021-08-02
spring注解在自定义jar包中无法被扫描 前两天,一朋友在开发的时候遇到了一个问题向我求助, service服务为第三方提供的服务里面有spring注解并将service 打成jar包中,使用maven引入. 使用new可以创建,但是使用autowire无法注入提示信息如下图 报错信息 这类问题在开发中一直是我们最不愿意看到的,乍一看,感觉挺对,还挺有道理.但是就是更想要的结果对不上. 我当时给出的判断autowire的类重名导致注入失败,建议用配合使用qualifier或者 使用resou

一篇文章带你了解C语言:入门基础(2)

2021-08-02
目录 操作符 算术操作符 移位操作符 位操作符 单目操作符 逻辑反操作! 操作符++,-- 逻辑操作符 条件操作符 逗号表达式 常见关键字 typedef extern static 修饰局部变量 修饰全局变量和函数 其它 #define定义常量和宏 定义常量 定义宏 指针 内存单元 指针变量 &取地址操作符,*解引用操作符 类型所占空间 结构体 定义结构体 使用结构体变量 总结 本节将结束对初识C语言的概述,只追求大概,不求精细. 本节包括的内容有操作符,常见关键字,#define定义常量和宏

一篇文章带你入门Java继承

2021-08-02
目录 Java中继承 什么是继承: 为什么要用继承: 学习总结: 继承关键字:extends 总结 Java中继承 什么是继承: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 为什么要用继承: 可以去掉重复代码,方便后期维护 举个列子,大家应该都玩过英雄联盟,每个英雄都是一个类,如果说不用继承的话每次都要重复定义每个英雄的成员属性,如下图我举了一个MF,一个EZ的列子 public class MissFortu

Redis之windows下主从复制案例讲解

2021-08-02
一般的主从复制功能最少是一主二从,我这里就以最低要求进行配置. 1.首先下去官网下载并安装redis 若安装成功点击redis-server  如此是成功 2.点击客户端redis-cli 连接客户端即可使用 3.新建7000.7001两个从redis  4.修改redis-windows.conf   (1)把端口修改成7000 (2)修改cluster-config-file的名字 以免和6379端口的名字重复其他配置默认即可,我个人认为我们都重新建了一个文件夹也不可能出现和6379重复的错

RedisTemplate中opsForValue和opsForList方法的使用详解

2021-08-02
一.opsForValue用法 key:字符串,value:可以是任意对象Object(例如String.具体对象如自定义类Student等),一个key只能对应一个value. 1)value为String类型示例: //赋值方法 redisTemplate.opsForValue().set("username1","wangxinli"); redisTemplate.opsForValue().set("username2","

SQL实现LeetCode(183.从未下单订购的顾客)

2021-08-02
[LeetCode] 183.Customers Who Never Order 从未下单订购的顾客 Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything. Table: Customers. +----+-------+ | Id | Name  |

Mysql纵表转换为横表的方法及优化教程

2021-08-02
1.纵表与横表 纵表:表中字段与字段的值采用key-value形式,即表中定义两个字段,其中一个字段里存放的是字段名称,另一个字段中存放的是这个字段名称代表的字段的值. 例如,下面这张ats_item_record表,其中field_code表示字段,后面的record_value表示这个字段的值 优缺点: 横表:表结构更加的清晰明了,关联查询的一些sql语句也更容易,方便易于后续开发人员的接手,但是如果字段不够,需要新增字段,会改动表结构. 纵表:扩展性更高,如果要增加一个字段,不需要改变表结

一篇文章带你了解JAVA面对对象应用

2021-08-02
目录 常用API String类 关于String为啥不可改变 StringBuilder类 String.StringBuffer 和 StringBuilder 的区别: ArrayList 1.1ArrayList类概述 1.2ArrayList类常用方法 学生管理系统 总结 常用API API理解 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将

Python进度条tqdm的用法详解

2021-08-02
前言 有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事. tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持windows.Linux.mac等系统,支持循环处理.多进程.递归处理.还可以结合linux的命令来查看处理情况,等进度展示. 大家先看看tqdm的进度条效果: tqdm安装:

SQL实现LeetCode(178.分数排行)

2021-08-02
[LeetCode] 178.Rank Scores 分数排行 Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. In other words, th

C++索引越界的解决方法

2021-08-02
目录 1. 动态数组 2.静态数组 避免"索引越界"错误的规则如下(针对C++): 不要使用静态或动态分配的数组,改用array或vector模板 不要使用带方括号的new和delete操作符,让vector模板为多个元素分配内存 使用scpp::vector代替std::vector,使用scpp::array代替静态数组,并打开安全检查(自动在使用下标访问提供了索引边界检查) C++中创建类型T的对象的数组方式如下: #define N 10 T static_arr[N]; //

C语言简单实现三子棋游戏

2021-08-02
本文实例为大家分享了C语言简单实现三子棋游戏的具体代码,供大家参考,具体内容如下 设计思路 1. 二维数组实现棋盘 2. 设计并打印出棋盘 3. 玩家先手 4. 每一次下棋后判断输赢 首先我们写出游戏的主函数,让玩家能自由选择开始游戏或者退出游戏. int main() { int input = 0; srand((unsigned int)time(NULL));//生成随机数用于电脑下棋 do { menu();//打印菜单 printf("请选择 >"); scanf(&

php之Aes加密案例讲解

2021-08-02
在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id ​                                       ​ 但是这里存在很大的弊端,那就是这个值可以修改,假如说把我这个值一修改,我就可以获取到修改的用户的所有信息,可怕吧! 那么今天就使用aes进行加密处理一下 <?php namespace app\api\controller; /** * aes 加密 解密类库 * Class Aes * @pac

Vue插件实现过程中遇到的问题总结

2021-08-02
目录 场景介绍 插件实现 问题一.重复的头部组件 问题二.另一种实现思路 问题三.是否可以不使用Vue.extend 总结 场景介绍 最近做H5遇到了一个场景:每个页面需要展示一个带有标题的头部.一个实现思路是使用全局组件.假设我们创建一个名为TheHeader.vue的全局组件,伪代码如下: <template> <h2>{{ title }}</h2> </template> <script> export default { props:

Vue鼠标滚轮滚动切换路由效果的实现方法

2021-08-02
一个根路由组件(app下的根路由组件, 需要滚动切换的作为其子组件) 在根路由组件添加鼠标滚动时间监听, 在mounted中调用监听 当跳转到其他路由(跳出这个根路由时), 根路由组件会被销毁, 因此在根路由的destroed钩子函数中清除掉事件监听 Vue路由切换过渡 vue的过渡 <transition :name="transitionName"> <div></div> </transition> 使用transition 包裹需

解析redis hash应用场景和常用命令

2021-08-02
存储对象类数据 hmset user name huyongjian age 23 height 170 常用命令 将多个 field-value对设置到哈希表 key 中 hmset user name huyongjian age 23 height 170 将哈希表 key 中的字段 field 的值设为 value hset user weight 70 只有在字段 field 不存在时,设置哈希表字段的值 hsetnx user address china 获取存储在哈希表中指定字段的