[REDIS] 최대 절전 모드 두 번째 레벨 캐시로 레디 스
REDIS최대 절전 모드 두 번째 레벨 캐시로 레디 스
최대 절전 모드 두 번째 캐시 레벨로 사용 레디 스 : 나는 미친 생각을 가지고있다. 레디 스는 목표는 많은 바람둥이 노드 사이의 최대 절전 모드 캐시를 공유하는 것입니다 .. 그것은 복제, 파이프 라인 등을 지원, 인 - 메모리 데이터 저장소입니다. 기본 구현은 하이버 네이트 캐시 개체의 키와 값을 serailize와 레디 스 데이터베이스에 모두 저장해야합니다. 당신은 그 생각에 대해 어떻게 생각하십니까?
친애하는,
줄리어스
해결법
-
==============================
1.나는 레디 스와 최대 절전 모드 2 차 레벨 캐시를 만든
나는 레디 스와 최대 절전 모드 2 차 레벨 캐시를 만든
확인해 봐!
https://github.com/debop/hibernate-redis
-
==============================
2.그냥은 그것에 GitHub의 프로젝트를 발견했다. https://github.com/debop/hibernate-redis 나는 이미 끝났다 생각합니다. 그것은 몇 가지 문서를 실종. 편집 : 그냥 더 나은 설명서와 함께, 더 나은 저장소를 발견했다. https://github.com/Jongtae/hibernate-redis
그냥은 그것에 GitHub의 프로젝트를 발견했다. https://github.com/debop/hibernate-redis 나는 이미 끝났다 생각합니다. 그것은 몇 가지 문서를 실종. 편집 : 그냥 더 나은 설명서와 함께, 더 나은 저장소를 발견했다. https://github.com/Jongtae/hibernate-redis
구축 프로젝트에 라이브러리를 가져온 후, 어떤 두 번째 레벨 캐시로 간단합니다.
<property name="hibernate.cache.use_second_level_cache">true</property> <property name="hibernate.cache.use_query_cache">true</property> <property name="hibernate.cache.region.factory_class">net.daum.clix.hibernate.redis.RedisRegionFactory </property> <property name="redis.host">"redis.host"</property>
내가 일하고 있어요 웹 사이트의 일부 기능에 레디 스를 사용하여 생각하고 있어요. 다른 흥미로운 가능성 : 세션 관리자 바람둥이, 잠금 분산.
-
==============================
3.Redisson 프레임 워크 구현은 하이버 네이트 캐시 기반 레디 스. 그것은 최대 절전 모드 5.3 및 5.4을 지원합니다.
Redisson 프레임 워크 구현은 하이버 네이트 캐시 기반 레디 스. 그것은 최대 절전 모드 5.3 및 5.4을 지원합니다.
자세한 내용은 설명서를 참조하십시오.
-
==============================
4.나는 그것이 멋진 아이디어라고 생각. 다음은 시작하는 몇 가지 코드입니다
나는 그것이 멋진 아이디어라고 생각. 다음은 시작하는 몇 가지 코드입니다
Grails는, 예를 들어, 레디 스 대신 최대 절전 모드의 plugginable 백엔드, 당신은 정말 최대 절전 모드의 복잡성을 필요로하지 않는 한, 내가 갈 수있는 올바른 방법이 될 것 대신 생각합니다.
그러나 레디 스에서 그 최대 절전 모드 엔티티를 유지하는 능력 (예를 들어를 통해 JRedis)를 가지고도 (최대 절전 모드) 복잡성이 진정으로 필요하다고 경우에 좋을 것이다.
-
==============================
5.나는 당신의 생각은 좋은 생각합니다. memcached를 위해 나는 최대 절전 모드 2 차 레벨 캐시 제공자를 보았다. 어쩌면 그것은 또한 당신을 도울 수있는 (즉 - 레디 스 작업을위한 그것에서 몇 가지 아이디어를 얻을) 당신은 GitHub의 또는 googlecode 또는 기타 장소에 원본이 작업을 열 수 있다면 감사하겠습니다.
나는 당신의 생각은 좋은 생각합니다. memcached를 위해 나는 최대 절전 모드 2 차 레벨 캐시 제공자를 보았다. 어쩌면 그것은 또한 당신을 도울 수있는 (즉 - 레디 스 작업을위한 그것에서 몇 가지 아이디어를 얻을) 당신은 GitHub의 또는 googlecode 또는 기타 장소에 원본이 작업을 열 수 있다면 감사하겠습니다.
-
==============================
6.나는 봄 부팅과 Redisson을 사용하고이 구성 매우 간단합니다.
나는 봄 부팅과 Redisson을 사용하고이 구성 매우 간단합니다.
그냥 다음을 추가합니다 :
implementation 'org.redisson:redisson-spring-boot-starter:3.10.2' implementation 'org.redisson:redisson-hibernate-53:3.10.2'
application.yml
jpa: generate-ddl: false show-sql: false properties: hibernate: ddl-auto: create dialect: com.codefish.model.hibernate.MySqlDialect generate_statistics: false show_sql: false use_sql_comments: false format_sql: true cache: use_second_level_cache: true use_query_cache: false region.factory_class: com.eddress.config.RegionFactory
RedisConfig
@Configuration public class RedisConfig { @Value("${spring.redis.master:#{null}}") public String redisMaster; @Value("${spring.redis.slave:#{null}}") public String redisSlave; @Value("${spring.redis.password:#{null}}") public String redisPassword; @Bean public RedissonConnectionFactory redissonConnectionFactory(RedissonClient redisson) { return new RedissonConnectionFactory(redisson); } @Bean(destroyMethod = "shutdown") public RedissonClient redisson() { return Redisson.create(buildConfigFile(redisMaster,redisSlave, redisPassword)); } public static Config buildConfigFile(String redisMaster,String redisSlave, String password){ if (Preconditions.isEmpty(redisMaster)) redisMaster = "localhost"; if (Preconditions.isEmpty(password)) password = null; Config config = new Config().setTransportMode(TransportMode.NIO).setCodec(new SnappyCodecV2()); if (Preconditions.notBlank(redisSlave)){ config.useMasterSlaveServers() .setMasterAddress("redis://"+redisMaster+":6379") .addSlaveAddress("redis://"+redisSlave+":6379") .setPassword(password) .setIdleConnectionTimeout(10000) .setTimeout(10000); } else{ config.useSingleServer() .setAddress("redis://"+redisMaster+":6379") .setPassword(password) .setIdleConnectionTimeout(10000) .setTimeout(10000); } return config; } @Bean CacheManager cacheManager(RedissonClient redissonClient) { Map<String, CacheConfig> config = new HashMap<>(); // create "testMap" cache with ttl = 24 minutes and maxIdleTime = 12 minutes CacheConfig configItem = new CacheConfig(TimeUnit.MINUTES.toMillis(60), TimeUnit.MINUTES.toMillis(30)); config.put("domainCache",configItem); return new RedissonSpringCacheManager(redissonClient, config); }
RegionFactory
public class RegionFactory extends org.redisson.hibernate.RedissonRegionFactory { @Override protected RedissonClient createRedissonClient(Map properties) { String master = System.getProperty("REDIS_MASTER"); String slave = System.getProperty("REDIS_SLAVE"); String password = System.getProperty("REDIS_PASSWORD"); Config config = RedisConfig.buildConfigFile(master,slave, password); return Redisson.create(config); } }
from https://stackoverflow.com/questions/7650129/redis-as-hibernate-second-level-cache by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 해시 키에 대한 레디 스에서 검색하려면? (0) | 2020.01.11 |
---|---|
[REDIS] Sidekiq 처리되지 큐 (0) | 2020.01.11 |
[REDIS] 합니까 레디 스 데이터를 지속? (0) | 2020.01.11 |
[REDIS] MySQL 데이터베이스에 대한 캐시로 레디 스를 사용하여 (0) | 2020.01.11 |
[REDIS] 배경 논스톱에서 레디 스 서버를 실행하려면 (0) | 2020.01.11 |