高并发分布式缓存 Redis6.0(二)|学习笔记

简介: 快速学习高并发分布式缓存 Redis6.0(二)

开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课高并发分布式缓存 Redis6.0(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/903/detail/14342


高并发分布式缓存 Redis6.0(二)

 

九,实战演练

打开虚拟机进入命令行界面,输入以下指令:

>ls

>src/redis-server redis.conf   //配置文件,将 redis.conf改成自己的服务器地址

> src/redis-server redis.conf

//使用连接池时需要自行配置

>src/redis-cli -h 192.168.2.131

>get 1

>set 2 b

>get 2

>exit

> src/redis-cli -h 192.168.2.131

>get 2

注意:在微信里讲了敏感的话语,微信可以通过定位系统找到你,一般的大型软件都有此功能。

需掌握的重要依赖:

<dependency>

<groupld> org.springframework.boot</groupld><artifactld>spring-boot-starter-data-redis</artifactld></dependency>

<dependency>

<groupld>org.apache.commons</groupld><artifactld>commons-pool2</artifactld>

</dependency>

Config 下的 LettuceRedisConfig.java 代码展示:

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.connection.lettuce.LettuceConnectionFacimport org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.serializer.GenericJackson23sonRedisSeriimport org.springframework.data.redis.serializer.stringRedisSerializer;

//自定义 RedisTemplate,支持更多数据类型

@Configuration

public class LettuceRedisConfig {

@Bean

public RedisTemplate<String,Serializable> redisTemplate(LettuceConnectio

RedisTemplate<String,Serializable> redisTemplate = new RedisTemplateredisTemplate.setKeySerializer(new StringRedisserializer());

redisTemplate.setValueSerializer(new GenericJackson23sonRedisSerializredisTemplate.setConnectionFactory(connectionFactory);

return redisTemplate;

配置启动器代码展示:

spring.data.mongodb.host=localhost

spring.data.mongodb.port=27017

#spring.data.mongodb.username=root

#spring.data.mongodb.password=1234qwer

#Redis 服务器地址

spring.redis.host=192.168.2.131#Redis 数据库索引(默认为0)

spring.redis.database=0#Redis 服务器连接端口

spring.redis.port=6379

#Redis 服务器连接密码

(默认为空)#spring.redis.password=1234qwer

#链接超时单位 ms(毫秒)

#spring.redis.timeout=3000

###########林####Redis线程池设置##############

#连接池最大连接数(使用负值表示没有限制)默认8

spring.redis.lettuce.pool.max-active=8

#连接池最大阻塞等待时间(使用负值表示没有限制)默认-1

spring.redis.lettuce. pool.max-wait=-1

#连接池中的最大空闲连接默认8

spring.redis. lettuce.pool.max-idle=8

#连接池中的最小空闲连接默认0

spring.redis.lettuce.pool.min-idle=o

RedisController 类部分代码演示:

@GetMapping

public String hello() {

return "Hello Java Spring Data Redis";

}

@RequestMapping( " / add")@ResponseBody

public int addUsers() {

for (int i = 0; i < 100; i++) {

Users entity = new Users();entity.setId(i);

entity.setName( "Java Spring Boot 2.60实战Redis: " + i);entity.setPassword( "password12345678” +i);

serializableRedisTemplate.opsForValue().set("redis" + i, entity);

}

return 100;

}

@Autowired

private RedisTemplate<String,string> strRedisTemplate;

@Autowired

privateRedisTemplate<String,Serializable> serializableRedisTemplate;

@GetMapping

public string hello( ) {

return "Hello Java Spring Data Redis";

}

@RequestMapping( " / add")@ResponseBody

public int addUsers( ) {

for (int i = 0; i < 100; i++) {

Users entity = new Users();entity.setId(i);

entity.setName( "Java Spring Boot 2.60实战Redis: " + i);

@RequestMapping( "/get/{id}")@ResponseBody

public Users getUserById(@PathVariable int id) {

System.out.println(id);

Users user= (Users)

serializableRedisTemplate.opsForValue().get("redreturn user;

}}

注意:多关注其算法和连接池

 

十,高级面试题

l Redis 6.0 新特性

l Redis 的数据结构算法 Redis 连接池

l Spring Data Transaction 原理

l Redis 安全连接

l 索引机制

l GEO 地理位置查询

l Spring Data Redis Reactive API 实现

l Spring Data Transaction 事务实现

l Spring Data Redis 消息推送实现

l Spring Boot Cache 回收

l Spring Data Redis 分布式锁原理

相关文章
|
2月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
3月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
218 1
Redis专题-实战篇二-商户查询缓存
|
2月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
3月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
255 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
|
3月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
7月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1024 0
|
7月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
254 32
|
7月前
|
缓存 NoSQL Java
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
195 5
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
|
9月前
|
缓存 NoSQL Java
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
610 16
Redis应用—8.相关的缓存框架