redis中如何保持关系数据库里的一行记录
高洛峰
高洛峰 2017-04-24 09:10:58
0
4
638

要将关系数据库中表的一行记录保持到redis中,在redis里要采用哪种数据类型,怎么保存?希望能举个具体示例

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(4)
伊谢尔伦

Java 객체를 직렬화하여 바이트 배열로 저장합니다

洪涛

<YOUR_PREFIX><PRIMARY_KEY>과 같이 데이터베이스의 기본 키를 redis로 직접 사용할 수 있습니다. 예를 들어 콘텐츠의 경우 데이터 테이블에 json을 직접 기록할 수 있습니다

그리고 일관성의 문제가 있습니다

  • 첫 번째 해결책은 redis를 캐시로 사용하는 것입니다. 기본 키에 따라 레코드를 읽을 때 먼저 redis(get)에 레코드가 있는지 확인하고 없으면 데이터베이스에서 가져오고 redis를 설정합니다. 동시에 레코드의 해당 값에 대해 설정 시 레코드의 만료 시간을 설정하는 것이 가장 좋습니다. 그러면 더티 데이터가 적극적으로 삭제되지 않더라도 이후 만료 메커니즘을 통해 새 값을 자동으로 얻을 수 있습니다. 일정 기간. 데이터 테이블 레코드가 변경되면 Redis에서 레코드를 삭제하면 됩니다. 이것이 제가 권장하는 더 안전한 접근 방식입니다.

  • 두 번째 옵션은 Redis에서 직접 모든 데이터 읽기 및 쓰기를 처리하고 특정 시간에만 데이터를 데이터베이스에 다시 쓰는 것입니다. 쓰기 저장 메커니즘과 관련하여 redis가 수정될 때마다 메시지 대기열을 사용하여 데이터를 비동기적으로 다시 쓰는 것을 고려할 수 있습니다. 타임스탬프를 사용하여 데이터베이스에 다시 쓰여진 데이터가 최신인지 확인하거나 Redis의 알림 사용을 고려할 수 있습니다. 만료 시간 메커니즘(그러나 이 메커니즘은 보장되지 않습니다. http://redis.io/topics/notifications 참조).

刘奇

이거 꽤 번거롭네요
이 글을 참고하세요
http://www.cnblogs.com/enjiex/p/3618546.html

간단한 추가, 삭제, 수정 및 쿼리를 지원할 수 있으며, redis 트랜잭션과 결합하여 간단한 기능을 구현할 수 있습니다
그러나 rdbms의 기본 SQL 연산을 구현하는 것은 매우 번거롭습니다

요약

洪涛

다른 사람들이 제공하는 답변은 매우 명확하게 설명되어 있으므로 매뉴얼을 읽으면 도움이 되지 않습니다. 실제로 호출할 수 있는 API는 직접 작성하는 경우에도 마찬가지입니다. 소켓에서 작성을 시작하면 프로토콜, 언어 및 네트워크에 대한 새로운 이해를 갖게 됩니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿