首頁 >資料庫 >Redis >redis可以快取熱點資料嗎

redis可以快取熱點資料嗎

(*-*)浩
(*-*)浩原創
2019-11-23 10:32:142937瀏覽

redis可以快取熱點資料嗎

對於熱點資料(經常會被查詢,但不經常被修改或刪除的資料),首選是使用redis緩存,redis的效能非常優秀。

因為redis是記憶體資料庫,佔用的資源非常珍惜,所以要盡可能多的儲存redis資料。         (建議學習:Redis視訊教學

可以透過設定快取的有效期限expire,通常是一天的時間,可以根據實際情況調整,這種方式來清楚快取中不常用的數據。

程式碼中可以這樣設定:

在儲存redis資料的時候設定expire,取的時候重新設定expire。

如果在過期時間內沒有取出該資料重新設定expire的話,那麼該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