首页
学习
活动
专区
工具
TVP
发布

若尘的技术专栏

一些教程
专栏作者
686
文章
1159799
阅读量
33
订阅数
Redis 缓存问题
缓存穿透缓存穿透指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库如果有恶意用户使用无数的线程并发访问不存在数据,这些请求都会到达数据库,很有可能会将数据库击垮解决方案缓存空对象思路:用户请求某一个 id 时,redis 和数据库中都不存在,我们直接将 id 对应空值缓存到 redis,这样下次用户重复请求这一 id 时,redis 中就可以命中(命中 null),就不会去请求数据库优点:实现简单,维护方便缺点:- 额外的内存消耗(可以通过添加 TTL 解决)图片-
ruochen
2022-09-07
1.7K0
Redis 缓存主动更新策略
Cache Aside Pattern:由缓存的调用者,在更新数据库的同时更新缓存Read/Write Through Pattern:缓存与数据库整合为一个服务,由服务来维护一致性。调用者调用该服务,无需关心缓存一致性问题Write Behind Caching Pattern:调用者只操作缓存,由其他线程异步的将缓存数据持久化到数据库,保证最终一致相对来讲,Cache Aside Pattern 可靠性更高一点操作缓存和数据库时要考虑如下几个问题- 删除缓存还是更新缓存?- 更新缓存:每次更新数据库都更
ruochen
2022-08-09
4K0
基于 Session 短信验证码登录
基于 Session 短信验证码登录获取验证码正则工具类package com.hmdp.utils;public abstract class RegexPatterns { /** * 手机号正则 */ public static final String PHONE_REGEX = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$"; /** * 邮箱正则 */ publi
ruochen
2022-08-05
7K0
Redis 的 Java 客户端
Redis 的 Java 客户端客户端对比图片Jedis引入依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.2.0</version></dependency>编码测试package com.ruochen.test;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.Befo
ruochen
2022-08-04
3.7K0
Redis 入门
Redis 安装安装依赖yum install -y gcc tcl上传安装包并解压tar -zxvf redis-6.2.6.tar.gz链接: https://pan.baidu.com/s/1uBw8qC2JMcbagrX7U9mlOA 提取码: wbs6编译make && make installRedis 启动前台启动redis-server指定配置文件启动- 备份```shellcp redis.conf redis.conf.bck```- 修改配置文件```shell# 允许访问地址bind
ruochen
2022-07-25
2.9K0
Spring 入门
Spring 快速入门 Spring 程序开发步骤 传统方式:service层 要调用 dao层,为了解耦使用 xml 配置文件,简单地说 spring 就是读取配置文件的,通过 spring客户端的 getBean 方法传入 id 标识就可以获得对象,这样就实现了解耦 [653df2afe72d4343b814aa31796a584d.png] 导入 Spring 开发的基本包坐标 ```xml <dependency> <groupId>org.springframework</group
ruochen
2022-03-17
2.7K0
SSM 框架整合
原始整合方式 数据表 ```sql create database ssm character set utf8; use ssm; create table account( id in
ruochen
2022-03-17
4K0
Leetcode 题目解析之 Gray Code
The gray code is a binary numeral system where two successive values differ in only one bit.
ruochen
2022-03-08
1.4K0
彻底卸载MySQL
使用 rpm -qa | grep -i mysql 查看是否装有 MySQL rpm -ev xxx 删除 MySQL 如果提示依赖包错误,则使用以下命令尝试 rpm -ev xxx --nodeps 如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1,则用以下命令尝试: rpm -e --noscripts xxxx 查找之前老版本 MySQL 的目录、并且删除老版本 MySQL 的文件和库:find / -name mysql 删除
ruochen
2022-03-08
2.7K0
Javaweb 自定义 Servlet 实现按照访问路径转发
前言 HttpServlet Service方法 提供的 doGet() 和 doPost() 方法只能根据请求方式进行分发,假设我们现在有多个服务(添加、删除、查询...),每个服务都要对应一个 Servlet(AddServlet、DeleteServlet、SelectServlet),这样管理起来是很不方便的,我们希望使用一个 Servlet 一个实体来处理其业务,比如 BrandServlet 处理 Brand 相关的业务(增删改查),UserServlet 处理 User 相关的业务 [5c2
ruochen
2022-03-08
1.7K0
MyBatis 详细教程
MyBatis 目录树 [c2a2a099f5bc4982851a21b14b713195.png] tb_user.sql ```sql create database mybatis; use mybatis; drop table if exists tb_user; create table tb_user( id int primary key auto_increment, username varchar(20), password varchar(20), gender cha
ruochen
2022-03-08
2.1K0
fastjson +ajax 使用教程
JSON数据和Java对象转换 导入坐标 ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> ``` Java对象转JSON ```java String jsonStr = JSON.toJS
ruochen
2022-03-08
2.9K0
Git 常用指令大全
Git 常用指令 .bashrc 文件#用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前目录所有文件及基本信息 alias ll='ls -al' 创建分支:git branch dev 切换分支:git checkout dev 创建并切换:git checkout -b dev 分支合并:git merge dev 删除分支:git branch -d dev 强制删除分支
ruochen
2022-03-08
2.3K0
Axios 发送 json 数据报错 415 解决方案
<script src="js/axios-0.18.0.js"></script> <script> var userList = []; userList.push({username: "zhangsan", age: 18}); userList.push({username: "lisi", age: 28}); console.log(JSON.stringify(userList)); console.log(typeof JSON.stringify(
ruochen
2022-03-08
1.8K0
Element 入门教程
Element 入门 官网:https://element.eleme.cn/#/zh-CN 引入 Element 的 css、js文件和 Vue.js ```html <script src="js/vue.js"></script> <script src="element-ui/lib/index.js"></script> <link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css"> ``` 创建 Vue 核心对象 `
ruochen
2022-03-07
2.6K0
Vue 入门教程
vue 核心:MVVM(Model-View-ViewModel),实现数据的双向绑定,把编程的关注点放在数据上 [28188f3d52754384b9aea8c149ff9687.png] 入门 引入 js 文件 ```html <script src="js/vue.js"></script> ``` 在 JS 代码区域,创建 Vue 核心对象,进行数据绑定 ```js new Vue({ el: "#app", data(){ return { username: ""
ruochen
2022-03-07
1.9K0
Axios 入门教程
Axios 引入 axios 的 js 文件 ```html <script src="js/axios-0.18.0.js"></script> ``` 使用 axios 发送请求,并获取响应结果 ```js axios({ method: "get", url: "" }).then(function (resp){ alert(resp.data); }) ``` ```js axios({ method: "post", url: "", data: ""
ruochen
2022-03-07
1.4K0
Maven 入门教程
下载安装 官网:https://maven.apache.org/ 下载地址:https://maven.apache.org/download.cgi 环境变量配置 依赖 Java,需要配置 JAVA_HOME 配置 MAVEN_HOME 测试:mvn 配置 更改本地仓库位置 settings.xmlxml <localRepository>仓库位置</localRepository>-setting.xmlxml <mirror> <id>aliyunmaven</id>
ruochen
2022-03-07
1.6K0
maven+vue+servlet+element+MyBatis 前后端分离小项目
准备工作 需要的文件我已经打包好了: 链接:https://pan.baidu.com/s/1gTIi2nTHHv3bfcy5khKxgw 提取码:i2al 前端页面:可参考此篇文章 Element 入门教程 自行编写,也可以直接使用我准备好的模板 sql 文件 ```sql -- 创建数据库 create database db1 character set utf8; use db1; -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_
ruochen
2022-03-03
3K0
IDEA 新建 JavaWeb 项目(附:找不到 Web Application 解决方法)
由于 IDEA 版本更新,JavaWeb 项目的创建流程也会发生一些变化,这篇文件记录了新建一个 JavaWeb 项目的全流程,其中包括一些需要注意的细节以及可能发生问题的解决方法,希望能帮到大家。 IDEA 新建 JavaWeb 项目 新建 Java Project File -> New -> Project [在这里插入图片描述] 选择自己的 SDK,直接点击 Next [在这里插入图片描述] Next [在这里插入图片描述] 填写项目名称 -> Finish [在这里插入图片描述] 新建 We
ruochen
2022-03-03
3.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档