I. 기본 사용법
1. 구성
SpringBoot 2.2.1.RELEASE
를 사용하여 프로젝트 환경을 구축하고 pom.xml
에 직접 redis 종속성을 추가합니다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.2.1.RELEASE
来搭建项目环境,直接在pom.xml
中添加 redis 依赖spring: redis: host: 127.0.0.1 port: 6379 password:
如果我们的 redis 是默认配置,则可以不额外添加任何配置;也可以直接在application.yml
配置中,如下
@Service public class PubSubBean { @Autowired private StringRedisTemplate redisTemplate; public void publish(String key, String value) { redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection redisConnection) throws DataAccessException { redisConnection.publish(key.getBytes(), value.getBytes()); return null; } }); } }
2. 使用姿势
redis 的发布/订阅,主要就是利用两个命令publish/subscribe
; 在 SpringBoot 中使用发布订阅模式比较简单,借助 RedisTemplate 可以很方便的实现
a. 消息发布
public void subscribe(MessageListener messageListener, String key) { redisTemplate.execute(new RedisCallback<Object>() { @Override public Object doInRedis(RedisConnection redisConnection) throws DataAccessException { redisConnection.subscribe(messageListener, key.getBytes()); return null; } }); }
b. 订阅消息
消息订阅这里,需要注意我们借助org.springframework.data.redis.connection.MessageListener
来实现消费逻辑
@RestController @RequestMapping(path = "rest") public class DemoRest { @Autowired private PubSubBean pubSubBean; // 发布消息 @GetMapping(path = "pub") public String pubTest(String key, String value) { pubSubBean.publish(key, value); return "over"; } // 新增消费者 @GetMapping(path = "sub") public String subscribe(String key, String uuid) { pubSubBean.subscribe(new MessageListener() { @Override public void onMessage(Message message, byte[] bytes) { System.out.println(uuid + " ==> msg:" + message); } }, key); return "over"; } }
c. 测试 case
写一个简单的测试 case,来验证一下上面的发布订阅,顺带理解一下这个MessageListener
redis가 기본 구성인 경우 추가 구성을 추가할 필요가 없습니다. 다음과 같이 application.yml
에서 직접 구성할 수도 있습니다.
notify-keyspace-events Ex
2. Posture
Redis 게시/구독을 사용합니다. 주로publish/subscribe
두 가지 명령을 사용합니다. SpringBoot에서 게시 및 구독 모드를 사용하는 것은 상대적으로 간단하며 다음과 같이 쉽게 구현할 수 있습니다. RedisTemplate
a. 메시지 게시
subscribe __keyevent@0__:expired
b. 메시지 구독
메시지 구독은 org.springframework.data.redis를 사용합니다. Connection.MessageListener
를 사용하여 소비 로직을 구현합니다rrreee
c. 테스트 케이스
위의 게시 및 구독을 확인하고 이MessageListener; 두 개의 REST 인터페이스를 제공하는 간단한 WEB 프로젝트를 만듭니다<p>rrreee</p> 먼저 두 개의 소비자를 생성한 다음 메시지를 보낼 때 둘 다 수신되고 메시지를 보낼 때 세 개가 모두 수신됩니다. received<ul class=" list-paddingleft-2">
<li>3. 사용 지침 및 적용 시나리오 <p></p>Redis 게시 및 구독은 상대적으로 간단한 시나리오에만 적합합니다. 위 지침에서 볼 수 있듯이 이는 1에서 N까지 지원하는 간단한 게시 및 구독 모델입니다. 전송된 것은 온라인인 소비자만이 얻을 수 있고(온라인이 아닌 사람은 안타깝다고 할 수밖에 없음), 레디스의 경우 소비자가 소비할 수 있는지 여부는 끝난다. 일반적으로 상관하지 않습니다. </li>
<li> 핵심 사항: <p></p>
</li>
</ul>온라인 소비자만 메시지를 받을 수 있습니다. <p></p>
<p><strong> 소비자는 메시지를 한 번만 받을 수 있습니다. </strong></p>
<p></p>다음 질문은 어떤 시나리오에서 Redis를 사용할 수 있느냐는 것입니다. 게시와 구독은 어떻습니까? <p><strong></strong>메모리 기반 캐시 무효화</p>
<p></p>레이드 + 메모리를 보조 캐시로 사용하는 것은 비교적 일반적인 방법이라고 할 수 있습니다. 메모리 기반 캐시의 도움으로 시스템 부하를 효과적으로 늘릴 수 있지만 문제도 있습니다. 캐시된 데이터의 메모리 무효화는 특히 애플리케이션이 여러 서버에 배포될 때 문제가 됩니다. 동시에 모든 서버의 특정 메모리 캐시를 무효화하려면 redis 게시/구독을 사용하는 것이 더 좋습니다<p></p>
<p> SpringCloud Config 구성 새로 고침 <strong></strong></p>SpringCloud Config를 구성 센터로 사용하는 친구는 이러한 문제에 자주 직면할 수 있습니다. 구성 수정 후 동적 새로 고침이 문제입니다(물론 공식 지원은 mq를 통해 버스를 통해 동기화하는 것이며, 또한 )<p></p>redis 게시/구독의 도움으로 구성을 동적으로 새로 고치는 것도 좋은 대안입니다(특정 구현 데모는 나중에 제공될 예정입니다. 관심이 있으시면 계속 따르세요). Yihuihui 블로그)<p></p>
<p>redis 키 만료 구독</p>🎜 🎜redis를 캐싱에 사용할 때 일반적으로 만료 시간을 설정합니다. Redis는 기본적으로 활성화되지 않는 만료 이벤트를 제공합니다. 구독을 통해🎜🎜구성을 수정하고 키 만료 이벤트를 활성화하세요🎜rrreee🎜redis를 다시 시작한 후 무효화 이벤트를 구독하세요🎜rrreee
위 내용은 Redis 게시 및 구독 방법을 사용하여 간단한 메시징 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

redisactsasbothadatastoreandaservice.1) asadatastore, itusesin-memorystorageforfastoperations, 지원을 지원합니다

redis 与其他数据库相比 与其他数据库相比, 与其他数据库相比 : 1) 速度极快 速度极快 速度极快, 读写操作通常在微秒级别; 2) 支持丰富的数据结构和操作; 3) 灵活的使用场景 3) 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 3) redis 또는 기타 데이터베이스를 선택할 때 특정 요구 사항과 시나리오에 따라 다릅니다. Redis는 고성능 및 저도가 낮은 응용 프로그램에서 잘 수행됩니다.

Redis는 데이터 저장 및 관리에서 핵심적인 역할을하며 여러 데이터 구조 및 지속 메커니즘을 통해 현대 애플리케이션의 핵심이되었습니다. 1) Redis는 문자열, 목록, 컬렉션, 주문 컬렉션 및 해시 테이블과 같은 데이터 구조를 지원하며 캐시 및 복잡한 비즈니스 로직에 적합합니다. 2) RDB와 AOF의 두 가지 지속 방법을 통해 Redis는 신뢰할 수있는 스토리지 및 데이터의 빠른 복구를 보장합니다.

Redis는 대규모 데이터의 효율적인 저장 및 액세스에 적합한 NOSQL 데이터베이스입니다. 1.Redis는 여러 데이터 구조를 지원하는 오픈 소스 메모리 데이터 구조 스토리지 시스템입니다. 2. 캐싱, 세션 관리 등에 적합한 매우 빠른 읽기 및 쓰기 속도를 제공합니다. 3. REDIS는 RDB 및 AOF를 통해 지속성을 지원하고 데이터 보안을 보장합니다. 4. 사용 예제에는 기본 키 값 쌍 작업 및 고급 수집 중복 제거 기능이 포함됩니다. 5. 일반적인 오류에는 연결 문제, 데이터 유형 불일치 및 메모리 오버플로가 포함되므로 디버깅에주의를 기울여야합니다. 6. 성능 최적화 제안에는 적절한 데이터 구조 선택 및 메모리 제거 전략 설정이 포함됩니다.

실제 세계에서 Redis의 애플리케이션에는 다음이 포함됩니다. 1. 캐시 시스템으로서 데이터베이스 쿼리를 가속화, 2. 웹 응용 프로그램의 세션 데이터를 저장하려면 3. 실시간 순위를 구현하려면 메시지 전달을 메시지 큐로 단순화합니다. Redis의 다목적 성과 고성능은 이러한 시나리오에서 빛을 발합니다.

Redis는 고속, 다양성 및 풍부한 데이터 구조로 인해 두드러집니다. 1) Redis는 문자열, 목록, 컬렉션, 해시 및 주문 컬렉션과 같은 데이터 구조를 지원합니다. 2) 메모리를 통해 데이터를 저장하고 RDB 및 AOF 지속성을 지원합니다. 3) Redis 6.0에서 시작하여 멀티 스레드 I/O 작업이 도입되어 동시 동시성 시나리오에서 성능이 향상되었습니다.

redisisclassifiedasanoSqldatabaseBecauseItuseSakey-valuedatamodelinsteadofThraditionalRelationalDatabasemodel.Itoffersspeedandflexibility, makingIdealforreal-timeApplicationsandcaching, butitmaynotbesuitableforscenariosrequiringstrictaintetaintetaintetaintetaintetaintetaintegry

Redis는 데이터를 캐싱하여 분산 잠금 및 데이터 지속성을 구현하여 응용 프로그램 성능 및 확장 성을 향상시킵니다. 1) 캐시 데이터 : Redis를 사용하여 데이터 액세스 속도를 향상시키기 위해 자주 액세스하는 데이터를 캐시합니다. 2) 분산 잠금 : Redis를 사용하여 분산 된 잠금 장치를 구현하여 분산 환경에서 작동의 보안을 보장합니다. 3) 데이터 지속성 : 데이터 손실을 방지하기위한 RDB 및 AOF 메커니즘을 통한 데이터 보안을 보장합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
