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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习高并发分布式缓存 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 分布式锁原理

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
15天前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
22天前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
56 6
|
2天前
|
存储 缓存 监控
利用 Redis 缓存特性避免缓存穿透的策略与方法
【10月更文挑战第23天】通过以上对利用 Redis 缓存特性避免缓存穿透的详细阐述,我们对这一策略有了更深入的理解。在实际应用中,我们需要根据具体情况灵活运用这些方法,并结合其他技术手段,共同保障系统的稳定和高效运行。同时,要不断关注 Redis 缓存特性的发展和变化,及时调整策略,以应对不断出现的新挑战。
21 10
|
2天前
|
缓存 监控 NoSQL
Redis 缓存穿透的检测方法与分析
【10月更文挑战第23天】通过以上对 Redis 缓存穿透检测方法的深入探讨,我们对如何及时发现和处理这一问题有了更全面的认识。在实际应用中,我们需要综合运用多种检测手段,并结合业务场景和实际情况进行分析,以确保能够准确、及时地检测到缓存穿透现象,并采取有效的措施加以解决。同时,要不断优化和改进检测方法,提高检测的准确性和效率,为系统的稳定运行提供有力保障。
20 5
|
2天前
|
缓存 监控 NoSQL
Redis 缓存穿透及其应对策略
【10月更文挑战第23天】通过以上对 Redis 缓存穿透的详细阐述,我们对这一问题有了更深入的理解。在实际应用中,我们需要根据具体情况综合运用多种方法来解决缓存穿透问题,以保障系统的稳定运行和高效性能。同时,要不断关注技术的发展和变化,及时调整策略,以应对不断出现的新挑战。
17 4
|
22天前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
40 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
4天前
|
缓存 NoSQL Java
有Redis为什么还要本地缓存?谈谈你对本地缓存的理解?
有Redis为什么还要本地缓存?谈谈你对本地缓存的理解?
13 0
有Redis为什么还要本地缓存?谈谈你对本地缓存的理解?
|
10天前
|
NoSQL Java Redis
京东双十一高并发场景下的分布式锁性能优化
【10月更文挑战第20天】在电商领域,尤其是像京东双十一这样的大促活动,系统需要处理极高的并发请求。这些请求往往涉及库存的查询和更新,如果处理不当,很容易出现库存超卖、数据不一致等问题。
29 1
|
12天前
|
缓存 弹性计算 NoSQL
新一期陪跑班开课啦!阿里云专家手把手带你体验高并发下利用云数据库缓存实现极速响应
新一期陪跑班开课啦!阿里云专家手把手带你体验高并发下利用云数据库缓存实现极速响应
|
15天前
|
NoSQL Redis 数据库
计数器 分布式锁 redis实现
【10月更文挑战第5天】
35 1