7-ch08

8-ch04 10-ch02 센티넬

url: https://yeslee-v.medium.com/error-getting-credentials-err-exec-docker-credential-desktop-executable-file-not-found-in-ad67b6775065
title: "error getting credentials — err: exec: “docker-credential-desktop”: executable file not found in…"
description: "Docker에서 자격 증명을 가져오는 중 오류가 발생했다."
host: yeslee-v.medium.com
favicon: https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19
image: https://miro.medium.com/v2/resize:fit:1200/1*12JTw4n5RcO7LFMJ8mnY9w.png

Redis , Valkey

  • redis/redis-stackRedis Stack 서버와 Redis Insight를 모두 포함합니다. 이 컨테이너는 내장된 Redis Insight를 사용하여 데이터를 시각화할 수 있기 때문에 로컬 개발에 가장 적합합니다.

  • redis/redis-stack-serverRedis Stack 서버만 제공합니다. 이 컨테이너는 프로덕션 배포에 가장 적합합니다.

-ex 옵션 시간이 지나면 삭제

  • Key 값 앞에 prefix 붙이기
    • 키값만 붙이면 나중에 구분하기 힘듬
private String getKey(String userName){
	return "User:" + username
}

local redis stop후 재실행시 max 메모리 초기화됨

/etc/redis/reids.conf
maxmemory? 설정 하는게 나음
 
config set maxmemory 500mb
	docker exec -it redis redis-cli --raw

centinel 은 홀수개 써야 함 (짝수시 의사 결정 못함)

url: https://velog.io/@gale4739/Spring-Boot-Redis-%EC%A0%81%EC%9A%A9%EA%B8%B0-With-lettuce
title: "Spring Boot Redis 적용기 (With lettuce)"
description: "안녕하세요 오늘은 Spring Boot에서 Redis를 적용하는 내용에 대해서 포스팅하려고 합니다.현재 투다의 경우 인메모리DB로 Redis를 사용하고 있습니다. Memcached에 비해 다양한 기능을 제공하며 싱글 스레드 방식으로 동작하여 가볍기 때문입니다. 이런 R"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://images.velog.io/velog.png
url: https://meetup.nhncloud.com/posts/379
title: "Redis Cluster를 사용할 때 Spring Boot와 Lettuce client를 설정해 드립니다 : NHN Cloud Meetup"
description: "Redis Cluster를 사용할 때 Spring Boot와 Lettuce client를 설정해 드립니다"
host: meetup.nhncloud.com
image: https://image.toast.com/aaaadh/real/2024/repimg/redislettuce_thumbnail.png
url: https://adjh54.tistory.com/459#1.%20spring-boot-starter-data-redis-1
title: "[Java] Spring Boot Redis 환경 구성 및 활용하기 -1 : 환경 구성 및 데이터 조작 방법"
description: "해당 글에서는 Spring Boot 환경에서 Redis를 다루는 방법에 대해 알아봅니다. 💡 [참고] Redis 관련해서 구성 내용에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.분류링크Redis(Remote Dictionary Server) 이해하기 -1 : 구조 및 특징, 아키텍처https://adjh54.tistory.com/447Redis(Remote Dictionary Server) 이해하기 -2 : MacOS 로컬 환경 구성 및 명령어https://adjh54.tistory.com/448Dockerfile을 이용한 Redis 환경 구성 및 실행방법https://adjh54.tistory.com/449해당 글에 대한 Github Repositoryhttps://github.com/ad.."
host: adjh54.tistory.com
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1oFIQ%2FbtsGcJLpdwi%2Fg354yT8fmeY0AlLF9m8xx0%2Fimg.png
url: https://adjh54.tistory.com/447
title: "[DB] Redis(Remote Dictionary Server) 이해하기 -1 : 구조 및 특징, 아키텍처"
description: "해당 글에서는 Redis의 이해를 돕기 위해 작성한 글이며 Redis의 구조, 특징, 아키텍처에 대해 알아봅니다 💡 [참고] Redis 관련해서 구성 내용에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다. 분류 링크 Redis(Remote Dictionary Server) 이해하기 -1 : 구조 및 특징, 아키텍처 https://adjh54.tistory.com/447 Redis(Remote Dictionary Server) 이해하기 -2 : MacOS 로컬 환경 구성 및 명령어 https://adjh54.tistory.com/448 RedisTemplate API Document https://adjh54.tistory.com/462 ValueOperations API Document https.."
host: adjh54.tistory.com
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmeXRT%2FbtsFRkKqzIy%2FTsBPu68Xrpe7gwntPDUtk1%2Fimg.png
url: https://junior-datalist.tistory.com/351
title: "도커에서 Redis 사용할 때 시행착오 3가지"
description: "목차 - 개요 : 사용한 명령어 - 1. `-v /path/on/host:/data` 옵션 누락 - 2. 포트 포워딩 옵션 누락 - 3. 키가 사라진 이유 (feat. 해킹?) - 결론 환경 ubuntu version: 18.04 docker version: 23.0.1 redis image version: latest 개요 도커에서 레디스를 사용할 때 겪은 에러 사항을 기록했습니다. 1. 레디스에 저장된 데이터가 유실되거나 2. 스프링부트 서버에서 레디스로 접속을 못했고 3. 저장한 키가 사라지고, \"backup1\" 이란 의문의 키가 나타남. 결론부터 말씀드리면, 도커에서 레디스를 실행할 때 명령어만 제대로 쳤으면 해결될 문제였습니다. 아래는 처음 레디스를 실행할 때 사용한 (잘못된) 명령어로, 어떤 .."
host: junior-datalist.tistory.com
favicon: https://t1.daumcdn.net/tistory_admin/favicon/tistory_favicon_32x32.ico
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGlYw2%2Fbtr7hxRosJR%2FryifkjcKwOhzVwmzDPqPb1%2Fimg.png
url: https://velog.io/@banggeunho/%EB%A0%88%EB%94%94%EC%8A%A4Redis-%EC%95%8C%EA%B3%A0-%EC%93%B0%EC%9E%90.-%EC%A0%95%EC%9D%98-%EC%A0%80%EC%9E%A5%EB%B0%A9%EC%8B%9D-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%9C%A0%ED%9A%A8-%EA%B8%B0%EA%B0%84
title: "[Redis] 레디스 알고 쓰자. - 정의, 저장방식, 아키텍처, 자료구조, 유효 기간"
description: "레디스(Redis)는 메모리 기반의 데이터 저장소이다. 키-밸류(key-value) 데이터 구조에 기반한 다양한 형태의 자료 구조를 제공하며, 데이터들을 저장할 수 있는 저장소이다. 최신 버전의 레디스는 PUB/SUB 형태의 기능을 제공하여 메세지를 전달할 수 있다."
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/banggeunho/post/32d1b0c2-37cd-4b89-b5e1-b8dc6a9b5e42/image.png
url: https://news.hada.io/topic?id=14436
title: "Valkey가 빠르게 Redis를 대체하고 있음 | GeekNews"
description: "AWS, Ericsson, Google Cloud, Oracle, Verizon 등 많은 기업들이 Redis의 오픈소스 라이선스 변경에 반발하여 만들어진 Valkey 포크 프로젝트를 지원하기로 함.Alibaba Cloud, Aiven, Heroku, Percona 등도 추가로 지원 선언이렇게 많은 대기업들이 즉각적으로 한 프로젝트에서 다른 프로젝트로 옮겨간"
host: news.hada.io
image: https://social.news.hada.io/topic/14436
url: https://docs.spring.io/spring-data/redis/reference/3.3/redis/getting-started.html
title: "Getting Started :: Spring Data Redis"
host: docs.spring.io
favicon: ../../_/img/favicon.ico
url: https://aws.amazon.com/ko/blogs/tech/get-started-with-amazon-elasticache-for-valkey/
title: "Amazon ElastiCache Valkey 시작하기 | Amazon Web Services"
description: "이 글은 AWS Database Delivery Blog에 게시된 Get started with Amazon ElastiCache for Valkey by Madelyn Olson, Goumi Viswanathan, and Siva Karuturi 을 한국어 번역 및 편집하였습니다. Amazon ElastiCache는 서버리스 가격이 33% 저렴하고 자체 설계(노드 기반) 클러스터 가격이 다른 지원 엔진보다 20% 저렴한 Valkey 버전 7.2에 대한 지원을 발표했습니다. Valkey용 ElastiCache 서버리스를 사용하면 고객은 1분 […]"
host: aws.amazon.com
favicon: https://a0.awsstatic.com/main/images/site/fav/favicon.ico
image: https://d2908q01vomqb2.cloudfront.net/2a459380709e2fe4ac2dae5733c73225ff6cfee1/2024/11/04/Amazon-ElastiCache-Valkey-시작하기-1120x630.png
url: https://velog.io/@daoh98/AWS-ElastiCache-%EC%99%80-Redis-%EC%A0%81%EC%9A%A9
title: "[AWS] ElastiCache 와 Redis 적용"
description: "Amazon ElastiCache는 인 메모리 데이터베이스 캐싱 시스템을 제공하여 애플리케이션이 데이터를 검색 할 수있는 성능, 속도 및 중복성을 향상시키는 클라우드 캐싱 서비스입니다.Memcached 와 Redis 로 나뉘어진다.두개 다 이미 존재하는 서비스이지만 A"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/daoh98/post/11d753ca-b95e-4293-b3fe-4fe1e67be32f/image.png
url: https://velog.io/@sileeee/Redis-vs-Memcached
title: "Redis vs Memcached"
description: "In-memory DB인 Redis와 Memchaced중에서 세션 저장소로 어떤 것이 적합할지 비교해 보았습니다."
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/sileeee/post/68697446-3b0a-4288-b0f8-c39789e73174/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-02-16%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.32.16.png
url: https://devbksheen.tistory.com/entry/2-Docker%EB%A1%9C-Redis-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0
title: "2. Docker로 Redis 실행하기"
description: "1. Redis의 이해 Redis란 무엇인가? Remote Dictionary Server로 key-value 형태로 데이터를 저장하고 관리하는 서버를 의미합니다. Redis의 주요 사용자들은 이미 대규모 서비스를 운영하고 있는 큰 기업들이다. 여러가지 Red devbksheen.tistory.com 1. Redis의 이해글에서 Redis가 무엇인지 특성은 무엇인지 이해해 보았다면 이번글에는 Docker로 Redis를 실행하는 방법에 대해 정리해보겠습니다. 해당 글은 Redis를 실행하는 내용이므로 Docker에 대한 자세한 설명글은 기재하지 않았습니다. 1. Docker Image Pull docker hub에 접속해 redis를 검색해보면 버전을 확인할 수 있습니다. redis Tags | Docke.."
host: devbksheen.tistory.com
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCOOra%2FbtswbDe5p2U%2FKAAWjFZQ3P4TBePxGzsBz0%2Fimg.png
url: https://growth-coder.tistory.com/230
title: "[Spring] 스프링 부트 Redis를 사용하여 refresh token 저장하기 (2) - docker-compose 사용법"
description: "https://growth-coder.tistory.com/228 [Spring][Redis] 스프링 부트에서 redis 연동 및 RedisTemplate 사용법 이번 포스팅에서는 스프링 부트에서 redis와 연동하고 값을 저장해보려고 한다. 먼저 스프링 부트에 redis 관련된 의존성을 추가해준다. 만약 기존 진행 중인 프로젝트에 적용한다면 build.gradle에 growth-coder.tistory.com https://growth-coder.tistory.com/229 https://growth-coder.tistory.com/227 [Spring] 스프링 부트 Redis를 사용하여 refresh token 저장하기 (1) 지금까지 인증 및 인가를 구현할 때 Access token만 사용했었는데 .."
host: growth-coder.tistory.com
favicon: https://t1.daumcdn.net/tistory_admin/favicon/tistory_favicon_32x32.ico
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ0qKn%2FbtsnFEGQJE3%2FL6yTiyXOw0P123PqzjcAnK%2Fimg.png
url: https://meetup.nhncloud.com/posts/379
title: "Redis Cluster를 사용할 때 Spring Boot와 Lettuce client를 설정해 드립니다 : NHN Cloud Meetup"
description: "Redis Cluster를 사용할 때 Spring Boot와 Lettuce client를 설정해 드립니다"
host: meetup.nhncloud.com
image: https://image.toast.com/aaaadh/real/2024/repimg/redislettuce_thumbnail.png

**

tool redis rdb parser

@Qualifer

url: https://velog.io/@ljm0726/Redis-Template-%EC%A4%91%EB%B3%B5-%EC%82%AC%EC%9A%A9
title: "Redis Template 동시 사용"
description: "RedisTemplate 동시 사용"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://images.velog.io/velog.png
url: https://velog.io/@gale4739/Spring-Boot-Redis-%EC%A0%81%EC%9A%A9%EA%B8%B0-With-lettuce
title: "Spring Boot Redis 적용기 (With lettuce)"
description: "안녕하세요 오늘은 Spring Boot에서 Redis를 적용하는 내용에 대해서 포스팅하려고 합니다.현재 투다의 경우 인메모리DB로 Redis를 사용하고 있습니다. Memcached에 비해 다양한 기능을 제공하며 싱글 스레드 방식으로 동작하여 가볍기 때문입니다. 이런 R"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://images.velog.io/velog.png
url: https://devforme.tistory.com/46
title: "Lettuce vs Jedis"
description: "Lettuce란? Lettuce란, 동기와 비동기 통신을 모두 지원하는 논블로킹 레디스 자바 클라이언트이다. Jedis란? Jedis란 사용 편의성을 위해 설계된 레디스 자바 클라이언트이다. 동기식으로만 작동하며, 다른 Redis 클라이언트에 비해 가볍다는 특징을 가지고 있다. Lettuce vs Jedis 성능 : Lettuce는 동기와 비동기 통신 모두를 지원하지만, Jedis는 동기식 통신만 지원한다. 따라서 대량의 요청과 응답 처리에 있어서, Lettuce가 더욱 유리하다. TPS, CPU, Connection 수, 응답속도 등 모든 면에서 Lettuce가 우위에 있다. thread safe : Lettuce는 thread safe 하기 때문에, 멀티 쓰레드 환경에서 단일 Lettuce 인스턴스를.."
host: devforme.tistory.com
favicon: https://t1.daumcdn.net/tistory_admin/favicon/tistory_favicon_32x32.ico
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUBJRW%2FbtsBfKhrdQD%2FrWkFoBuwoa3jVFyMxC8Vk0%2Fimg.png
url: https://loosie.tistory.com/804
title: "[Database] Redis 간단한 사용 방법 (Stand Alone, Replication 기능)"
description: "Redis 간단한 사용 방법 레디스는 단일 인스턴스만(Stand Alone)으로도 충분히 운영이 가능하지만, 디스크에 비해 메모리 크기가 너무 작다. 그래서 물리 머신이 가진 메모리의 한계를 초과하는 데이터를 저장하고 싶거나, failover에 대한 처리를 통해 HA(고가용성)를 보장하려면 센티넬(Sentinel)이나 클러스터(Cluster) 등의 운영 모드를 선택해서 사용해야 한다. 먼저 간단하게 Redis를 어떻게 사용하는지 알아보자. Stand Alone 모드 Stand Alone은 말 그대로 Redis를 단일 인스턴스로 동작시키는 방법이다. Redis를 localhost:6379로 실행시키면 Redis Server는 정상적으로 구동된다. 그리고 Strings 자료구조로 데이터를 set/get 해보.."
host: loosie.tistory.com
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxp1Sl%2FbtrzHOyvbW1%2FYimkLZWQYbX7KFqWJPtLp0%2Fimg.png
url: https://velog.io/@inhwa1025/Redis-redis.conf-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC-%EC%A3%BC%EC%9A%94-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC
title: "[Redis] redis.conf 설정 파일 주요 옵션 정리"
description: "bind : redis가 bind할 interface 설정default : 127.0.0.1protected-mode : bind 설정된 ip만 접속 가능하게 설정하는 모드default : yesport : Client, Slave 서버가 통신할 포트 설정default"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/inhwa1025/post/0927d220-a6e8-4162-b46a-967839588181/image.png

Redis 정리

Memory DB의 종류

  • ValKey
    • Redis 7.2.4 오픈 소스 버전을 기반으로 함
  • Redis
  • Memcached

Redis란?

메모리를 기반으로 한 DB 로서 키값( Key - Value ) 구조의 데이터를 저장합니다.

Redis의 클라이언트 라이브러리

  • Jedis
  • Lettuce

Spring 3.3.3 기준 사용되는 드라이버

url: https://docs.spring.io/spring-data/redis/reference/redis/drivers.html
title: "Drivers :: Spring Data Redis"
host: docs.spring.io
favicon: ../_/img/favicon.ico

Redis 운용

직렬화별 케이스

url: https://ducktopia.tistory.com/138
title: "Java Redis 직렬화 삼총사: Json, String, JDK"
description: "Redis는 Java 애플리케이션에서 캐싱, 세션 관리, 실시간 데이터 저장소로 자주 사용됩니다. Redis 클라이언트에서 데이터를 저장하거나 가져올 때, 데이터는 반드시 직렬화되어야 합니다. 직렬화 방식은 성능과 코드의 유지보수에 큰 영향을 미치기 때문에 잘 선택해야 합니다. 이번 포스팅에서는 Java에서 Redis 직렬화 시 자주 사용하는 방법들을 비교하고 각 방식의 특징과 예제를 설명합니다. JdkSerializationRedisSerializerJDK 기본 직렬화는 Java 표준 라이브러리에서 제공하는 java.io.Serializable 인터페이스를 사용하여 객체를 바이트 스트림으로 변환하는 방식입니다. 이 방식은 사용하기 편리하지만, 다소 무거운 오버헤드가 있을 수 있습니다.  장점:Java .."
host: ducktopia.tistory.com
favicon: https://t1.daumcdn.net/tistory_admin/favicon/tistory_favicon_32x32.ico
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Ftistory_admin%2Fstatic%2Fimages%2FopenGraph%2Fopengraph.png

Redis 백업 방식

url: https://redis.io/docs/latest/operate/oss_and_stack/management/config/
title: "Redis configuration"
description: "Overview of redis.conf, the Redis configuration file"
host: redis.io
favicon: https://redis.io/docs/latest/images/favicons/favicon-196x196.png
url: https://soobysu.tistory.com/82#GenericJackson2JsonRedisSerializer-1
title: "[오류노트] Redis에 객체 저장 하기"
description: "Redis에 Object 를 저장 하기 위해서는 Serializer를 통해 직렬화해주어야한다. Object Mapper를 통해 > json으로 변환해서 저장 시켜주어야 한다. Spring에서는 Spring Data Redis 라이브러리를 이용하여 Redis에 접근할 수 있다. 이때 Redis를 접근할 수 있는 프레임워크로 Lettuce, Jedis가 있다. Lettuce는 별도의 설정 없이 이용할 수 있고, Jedis는 별도의 의존성 추가가 필요하다. 🛠️ Code 더보기 @Configuration public class RedisConfig { @Value(\"${spring.data.redis.host}\") private String redisHost; @Value(\"${spring.data.redis.."
host: soobysu.tistory.com
favicon: https://soobysu.tistory.com/favicon.ico
image: https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVaLXa%2Fbtr8fZzUeC6%2FbSFntHyUsag9irkPlgGmU1%2Fimg.png
url: https://velog.io/@power0080/JPA%EC%8F%98%EC%95%84%EC%98%AC%EB%A6%B0-JPA%EC%9D%98-%EC%88%9C%ED%99%98-%EC%B0%B8%EC%A1%B0-JsonManagedReference%EC%97%90%EC%84%9C-%EB%B3%BC%EA%B9%8C-DTO%EB%A1%9C-%EB%B3%BC%EA%B9%8C
title: "[JPA]쏘아올린 JPA의 순환 참조, @JsonManagedReference에서 볼까, DTO로 볼까"
description: "JPA의 순환 참조는 @JsonManagedReference을 사용해 해결하는 것이 최선의 방법일까요?"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/power0080/post/6bb95369-9d30-4b1b-8b0d-02eb59d8f633/image.PNG

redis 순환참조

url: https://velog.io/@juhyeon1114/Java-%EC%9C%A0%EC%9A%A9%ED%95%9C-Jackson-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98-%EC%A0%95%EB%A6%AC
title: "[Java] 유용한 Jackson 어노테이션 정리"
description: "Java에서 json 잘 다루기"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://images.velog.io/velog.png

Jackson 어노테이션 정리

url: https://devocean.sk.com/blog/techBoardDetail.do?ID=166166&boardType=techBlog
title: "다양한 시각에서 바라본 Redis (1) 특징"
description: "데보션 (DEVOCEAN) 기술 블로그 , 개발자 커뮤니티이자 내/외부 소통과 성장 플랫폼"
host: devocean.sk.com
image: https://devocean.sk.com/thumnail/2024/6/24/3889014566a2e9666863d78a6fb194e792e24cc6f2dfc07e67da54b84d2c50af.jpg
url: https://velog.io/@itbuddy/AOP-MethodSignature-getParameterNames-is-null
title: "AOP MethodSignature getParameterNames is null"
description: "개발 환경Springboot 3.3.1JDK 17IntellijMac OSgradle 8.8마켓 컬리 Redisson을 사용한 분산 락위 링크를 참고하여 redisson 사용한 분산 락 구현중에 예상치 못한 오류에 직면 했다.Aop 에서 넘겨주는 pa"
host: velog.io
favicon: https://static.velog.io/favicons/favicon-32x32.png
image: https://velog.velcdn.com/images/itbuddy/post/df57b01f-4fe4-4fe2-870f-e5d9128d6517/image.png