應用場景:redis中儲存了set集合,資料是萬級別,最高2萬資料,現在需要刪除這個set集合,並且防止刪除過程中,cpu突然增加,影響其他服務。
解決辦法有三種:
1.為set集合設定過期時間,依賴redis定時器刪除
2.重置set集合並設定過期時間,依賴redis定時器刪除
3.直接刪除set集合
筆者使用的是jedis作為開發工具。
/**
* redis操作set集合測試
* * @author: fengyantao
* @date: 2019/12/5 上午11:58
* @version: v1.0
* @review: fengyantao/2019/12/5 上午11:58
*/public class redistest extends basejunit4test
long start = system.currenttimemillis();
rediscachebean.addset(busi_code, redis_key, arr);
system.out.println("新增**************************************** " + (system.currenttimemillis() - start));
}/**
* 為set集合設定過期時間,依賴redis定時器刪除
*/@test
public void test1()
/*** 重置set集合並設定過期時間,依賴redis定時器刪除
*/@test
public void test2() ;
long start = system.currenttimemillis();
rediscachebean.addset(busi_code, redis_key, arr, 5);
system.out.println("重置set集合並設定過期時間,依賴redis定時器刪除**************************************** " + (system.currenttimemillis() - start));
}/**
* 獲取set集合
*/@test
public void test3()
/*** 直接刪除set集合
*/@test
public void test4()
}
當set集合中資料量是1萬,三種刪除方法耗時對比:
第一種方法耗時:
新增**************************************** 49
查詢**************************************** 61
為set集合設定過期時間,依賴redis定時器刪除**************************************** 25
第二種方法耗時:
新增**************************************** 58
查詢**************************************** 63
重置set集合並設定過期時間,依賴redis定時器刪除**************************************** 28
第三種方法耗時:
新增**************************************** 64
查詢**************************************** 61
直接刪除set集合**************************************** 34
當set集合中資料量是10萬,三種刪除方法耗時對比:
第一種方法耗時:
新增:**************************************** 322
查詢:**************************************** 340
為set集合設定過期時間,依賴redis定時器刪除**************************************** 26
第二種方法耗時:
新增**************************************** 353
查詢**************************************** 295
重置set集合並設定過期時間,依賴redis定時器刪除**************************************** 27
第三種方法耗時:
新增:**************************************** 309
查詢:**************************************** 316
直接刪除set集合**************************************** 95
三種方法耗時對比看來,第一種和第二種方法效率比較高。
Redis 幫你的專案扛起十萬級併發
現在網際網路系統的特點 快!需求變化快,系統響應速度要快。像 微博等有上億使用者的 每日有上千萬的訪問量 當電商節開始時如 618,當有熱點事件時如 明星官宣結婚等等,訪問量更是暴增。傳統的小 的架構根本無法滿足需求,這就需要改變傳統的架構模式來應對該問題,如 增加快取。快取就是把資料從訪問速度慢的...
oracle高效的批量刪除重複資料
如何高效刪除重複資料?用諸如 rowid,id相等,速度太慢了。對於大資料量的表的做插入,效率最好的是用臨時表。基本上就是這麼一流程 drop table t1 create table t1 as select ctemp.id max ctemp.name name,max ctemp.city...
Redis 高效的快取處理
redis作為現在最流行的快取技術,把接收到的資料,轉換為硬碟資料或者資料庫,儲存在快取中,減少多重資料同時的壓力,也可以實現單點,主要作為快取 1.先分享一些配置pom.xml dependency groupid org.springframework.data groupid artifact...