高效刪除十萬資料redis的set集合

2021-10-01 06:49:29 字數 2571 閱讀 2087

應用場景: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...