新建一个 Maven 项目。 依赖 添加相关依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mave…
新建一个 Maven 项目。 依赖 添加相关依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mave…
附近店铺 GEO 对于地理坐标(经纬度),Redis 以 GEO 的方式存储,可以通过以下命令查看相关命令: 127.0.0.1:6379> help @geo 添加 GEO 的命令为: 示例,添加北京和南京两个地理位置: 127.0.0.1:6379> GEOADD geo1 116.4074 39.9042 beijing (integer) 1 127.0.0.1:6379> GEOADD geo1 118.7969 32.0603 nanjing (integer) 1 比较两个 GEO …
首先,在前文的基础上,于示例项目黑马点评完成达人探店部分功能。 达人探店 发布探店笔记 将上传图片的存储地址修改为当前启动的前端 Nginx 所在的存储目录: package com.hmdp.utils; public class SystemConstants { public static final String IMAGE_UPLOAD_DIR = "D:\\workspace\\learn-redis\\ch3\\nginx-1.18.0\\html\\hmdp\\imgs"; // .…
秒杀优化 之前的优惠券秒杀业务是存在并发访问下的性能瓶颈的,这是因为其完整过程都是顺序执行的: 并且扣减库存和创建订单的步骤都是数据库写操作,比较耗费时间。 可以用 JMeter 的测试脚本对其进行压力测试以说明性能问题。 模拟并发请求 编写一个测试用例来模拟1000个用户登录: /** * 模拟多个用户登录 */ @Test public void testMultiUsersLogin() throws IOException { // 清理已经登录的用户 Set<String…
在前文中学习了如何基于 Redis 创建一个简单的分布式锁。虽然在大多数情况下这个锁已经可以满足需要,但其依然存在以下缺陷: 事实上一般而言,我们可以直接使用 Redisson 提供的分布式锁而非自己创建。 Redisson 添加 Redisson 依赖: <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version&g…
本文基于前文的黑马点评项目进行学习。 Redis 生成全局唯一ID 整个全局唯一 ID 的结构如下: 这里的时间戳是当前时间基于某一个基准时间(项目开始前的某个时间点)的时间戳。序列号是依赖 Redis 生成的对于某个业务唯一的自增量。 先计算一个基准时间的时间戳: public static void main(String[] args) { // 计算时间戳基准时间戳 long baseTimestamp = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toEpoc…
准备工作 需要先导入项目相关资源: 数据库文件 hmdp.sql 后端代码 hm-dianping.zip 包括前端代码的 Nginx 启动后端代码和 Nginx。 短信登录 发送验证码 @PostMapping("code") public Result sendCode(@RequestParam("phone") String phone, HttpSession session) { // 发送短信验证码并保存验证码 return userService.sendCode(phone, sess…
常见的 Redis Java 客户端有三种: Jedis,优点是API 风格与 Redis 命令命名保持一致,容易上手,缺点是连接实例是线程不安全的,多线程场景需要用线程池来管理连接。 Redisson,在Redis基础上实现了分布式的可伸缩的java数据结构,例如Map、Queue等,而且支持跨进程的同步机制:Lock、Semaphore等待,比较适合用来实现特殊的功能需求。 lettuce,基于 Netty 实现,支持同步/异步和响应式编程,并且是线程安全的。支持 Redis 的哨兵模式、集群模式和管道模式。 …
安装 在 Linux 上安装 Redis 的详细步骤可以阅读这里。 命令行客户端 与服务端一同安装的还有命令行客户端redis-cli,可以通过以下方式用命令行客户端连接本机的 Redis 服务端: [root@192 redis-6.2.6]# redis-cli 如果设置了密码,这样的默认连接会提示缺少权限: 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 可以通过auth 密码的方式输入密码以获取权限: 127.0.0.1:637…
1.安装 大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本为CentOS 7. 1.1.依赖库 Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖: yum install -y gcc tcl 1.2.上传安装包并解压 然后将课前资料提供的Redis安装包上传到虚拟机的任意目录: 例如,我放到了/usr/local/src 目录: 解压缩: tar -xzf …
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang