Maison  >  Article  >  base de données  >  Redis peut-il mettre en cache les données des points d'accès ?

Redis peut-il mettre en cache les données des points d'accès ?

(*-*)浩
(*-*)浩original
2019-11-23 10:32:142921parcourir

Redis peut-il mettre en cache les données des points d'accès ?

Pour les données chaudes (données souvent interrogées, mais pas souvent modifiées ou supprimées), le premier choix est d'utiliser le cache redis. Les performances de redis sont très excellentes.

Parce que redis est une base de données en mémoire et que les ressources qu'elle occupe sont très précieuses, il est donc nécessaire de stocker le moins de données redis possible. (Apprentissage recommandé : Tutoriel vidéo Redis)

Vous pouvez définir l'expiration de la période de validité du cache, qui est généralement d'un jour, et peut être ajustée en fonction de la situation réelle de cette façon. pour vider le cache des données qui ne sont pas couramment utilisées.

Le code peut être défini comme ceci :

Définir l'expiration lors du stockage des données Redis et réinitialiser l'expiration lors de leur récupération.

Si les données ne sont pas récupérées et réinitialisées dans le délai d'expiration, les données Redis seront effacées.

	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;
	}

Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne Introduction au didacticiel d'utilisation de la base de données Redis pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn