摘要:使用已經(jīng)很長(zhǎng)一段時(shí)間了,在項(xiàng)目使用過(guò)程中還是犯了一些常見的錯(cuò)誤,現(xiàn)在總結(jié)一下,避免自己以后再犯相同的錯(cuò)誤。
使用spring data redis已經(jīng)很長(zhǎng)一段時(shí)間了,在項(xiàng)目使用過(guò)程中還是犯了一些常見的錯(cuò)誤,現(xiàn)在總結(jié)一下,避免自己以后再犯相同的錯(cuò)誤。
1. expireAt() 設(shè)置超時(shí)時(shí)間錯(cuò)誤以前在項(xiàng)目中主要使用的expire()這個(gè)設(shè)置key超時(shí)時(shí)間的方法,在最近的項(xiàng)目中,想讓某個(gè)key在某個(gè)時(shí)間點(diǎn)過(guò)期,比如按照日的排行榜,在第二天排行榜就沒有意思,可以設(shè)置當(dāng)日的key在第二天的零點(diǎn)過(guò)期。
1.1 問(wèn)題描述在使用expireAt()中,發(fā)覺設(shè)置過(guò)期時(shí)間之后,過(guò)期時(shí)間是一個(gè)特別大的時(shí)間,感覺不太對(duì),就用命令行試了一下,發(fā)現(xiàn)沒有問(wèn)題,懷疑可能是spring data redis框架的問(wèn)題,順著看了一下代碼,應(yīng)為使用的是redis cluster集群模式,在BinaryJedisCluster.java的pexpireAt居然使用的是pexpire()方法,應(yīng)該用pexpireAt()才對(duì)
@Override public Long pexpireAt(final byte[] key, final long millisecondsTimestamp) { return new JedisClusterCommand1.2 解決辦法(connectionHandler, maxAttempts) { @Override public Long execute(Jedis connection) { return connection.pexpire(key, millisecondsTimestamp); } }.runBinary(key); }
public void expireAt(String key, Date deadLine){ final byte[] rawKey = rawKey(key); redisTemplate.execute(connection -> connection.expireAt(rawKey, deadLine.getTime() / 1000), true); }2. zset的reverseRange問(wèn)題
在使用reverseRange(long start, long end)過(guò)程中,在項(xiàng)目中當(dāng)成mysql的分頁(yè)處理,把返回?cái)?shù)據(jù)大小直接賦值給end,導(dǎo)致返回的數(shù)據(jù)一直有問(wèn)題。
用方法返回?cái)?shù)據(jù),包括start和end位置的數(shù)據(jù),一般傳入第二個(gè)參數(shù)為pageStart + pageSize -1
在使用Hash,Zset等數(shù)據(jù)類型時(shí),沒有先檢查一下緩存的key存在與否,而是直接使用,導(dǎo)致程序異常,報(bào)出空指針。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72561.html
摘要:如問(wèn)到是否使用某框架,實(shí)際是是問(wèn)該框架的使用場(chǎng)景,有什么特點(diǎn),和同類可框架對(duì)比一系列的問(wèn)題。這兩個(gè)方向的區(qū)分點(diǎn)在于工作方向的側(cè)重點(diǎn)不同。 [TOC] 這是一份來(lái)自嗶哩嗶哩的Java面試Java面試 32個(gè)核心必考點(diǎn)完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個(gè)模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計(jì)算機(jī)基礎(chǔ) JVM原理 多線程 設(shè)計(jì)模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...
摘要:歡迎訪問(wèn)我的歡迎訪問(wèn)我的內(nèi)容所有原創(chuàng)文章分類匯總及配套源碼,涉及等本篇概覽本篇概覽本文是實(shí)戰(zhàn)系列的第八篇,經(jīng)過(guò)前面的學(xué)習(xí),咱們對(duì)過(guò)濾器已了解得差不多,今天來(lái)補(bǔ)全過(guò)濾器的最后一個(gè)版塊限流默認(rèn)的限流器是基于實(shí)現(xiàn)的,限流算法是大家熟悉的令牌桶關(guān)于歡迎訪問(wèn)我的GitHubhttps://github.com/zq2599/blog_demos內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼,涉及Java、Doc...
摘要:為什么我會(huì)說(shuō)它們是一樣的簡(jiǎn)單思考一下我的后端書架后端掘金我的后端書架月前本書架主要針對(duì)后端開發(fā)與架構(gòu)。一方案調(diào)研版本選擇當(dāng)前主流版本是和應(yīng)用的后臺(tái)運(yùn)行配置后端掘金醬油一篇,整理一下關(guān)于后臺(tái)運(yùn)行的一些配置方式。 分享 50 個(gè)完整的 React Native 項(xiàng)目 - 掘金本文為 Marno 原創(chuàng),轉(zhuǎn)載必須保留出處! 公眾號(hào) aMarno,關(guān)注后回復(fù) RN 加入交流群 簡(jiǎn)書專題《 Rea...
閱讀 801·2021-10-09 09:44
閱讀 705·2019-08-30 13:55
閱讀 3165·2019-08-29 15:07
閱讀 3231·2019-08-29 13:09
閱讀 2422·2019-08-29 11:10
閱讀 1301·2019-08-26 14:05
閱讀 3606·2019-08-26 13:57
閱讀 2216·2019-08-23 16:42