>  기사  >  데이터 베이스  >  Redis가 핫스팟 데이터를 캐시할 수 있나요?

Redis가 핫스팟 데이터를 캐시할 수 있나요?

(*-*)浩
(*-*)浩원래의
2019-11-23 10:32:142897검색

Redis가 핫스팟 데이터를 캐시할 수 있나요?

핫 데이터(자주 쿼리되지만 자주 수정되거나 삭제되지 않는 데이터)의 경우 첫 번째 선택은 Redis Cache를 사용하는 것입니다.

redis는 인메모리 데이터베이스이고 차지하는 리소스가 매우 귀중하기 때문에 Redis 데이터를 최대한 적게 저장하는 것이 필요합니다.             (추천 학습: Redis 동영상 튜토리얼 )

캐시 유효 기간 만료를 설정할 수 있으며, 이는 일반적으로 1일이며 실제 상황에 따라 조정될 수 있습니다. 은닉처.

코드는 다음과 같이 설정할 수 있습니다.

Redis 데이터를 저장할 때 만료를 설정하고, 데이터를 검색할 때 만료를 재설정합니다.

만료 시간 내에 데이터를 가져오지 않고 재설정하지 않으면 Redis 데이터가 삭제됩니다.

	public TbItem getTbItemByid(Long itemid) {
		
		//添加redis缓存
		Jedis jedis =  null;
		try {
			if(itemid != null){
			    jedis = jedisPool.getResource();
				String jedisRes = jedis.get(ITEM_INFO_KEY+":"+itemid+":BASE");
				if(StringUtils.isNotBlank(jedisRes)){
					
					//取redis数据的时候,重新设置expire
					jedis.expire(ITEM_INFO_KEY+":"+itemid+":BASE", ITEM_INFO_KEY_EXPIRE);
					return JsonUtils.jsonToPojo(jedisRes, TbItem.class);
					
				}
				
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//关闭jedis,其实是还给连接池
			jedis.close();
		}
		
		TbItem tbItem = itemMapper.selectByPrimaryKey(itemid);
		
		try {
			if(tbItem!=null){
			    jedis = jedisPool.getResource();
				jedis.set(ITEM_INFO_KEY+":"+itemid+":BASE", JsonUtils.objectToJson(tbItem));
				//存储redis数据的时候设置expire
				jedis.expire(ITEM_INFO_KEY+":"+itemid+":BASE", ITEM_INFO_KEY_EXPIRE);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//关闭jedis,其实是还给连接池
			jedis.close();
		}
		
		return tbItem;
	}

더 많은 Redis 관련 기술 기사를 보려면 Redis 데이터베이스 사용 튜토리얼 소개 칼럼을 방문하여 알아보세요!

위 내용은 Redis가 핫스팟 데이터를 캐시할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.