日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【七】springboot整合redis(超详细)

發布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【七】springboot整合redis(超详细) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?springboot篇章整體欄目:?


【一】springboot整合swagger(超詳細

【二】springboot整合swagger(自定義)(超詳細)

【三】springboot整合token(超詳細)

【四】springboot整合mybatis-plus(超詳細)(上)

【五】springboot整合mybatis-plus(超詳細)(下)

【六】springboot整合自定義全局異常處理

【七】springboot整合redis(超詳細)

【八】springboot整合AOP實現日志操作(超詳細)

【九】springboot整合定時任務(超詳細)

【十】springboot整合redis實現啟動服務即將熱點數據保存在全局以及redis(超詳細)

【十一】springboot整合quartz實現定時任務優化(超詳細)

【十二】springboot整合線程池解決高并發(超詳細,保你理解)

【十三】springboot整合異步調用并獲取返回值(超詳細)

【十四】springboot整合WebService(超詳細)

【十五】springboot整合WebService(關于傳參數)(超詳細)

【十六】springboot整合WebSocket(超詳細)

【十七】springboot整合WebSocket實現聊天室(超詳細)

【十八】springboot實現自定義全局異常處理

【十九】springboot整合ElasticSearch實戰(萬字篇)

【二十】springboot整合過濾器實戰

【二十一】springboot整合攔截器實戰并對比過濾器

【二十二】springboot整合activiti7(1) 實戰演示篇

【二十三】springboot整合spring事務詳解以及實戰

【二十四】springboot使用EasyExcel和線程池實現多線程導入Excel數據

【二十五】springboot整合jedis和redisson布隆過濾器處理緩存穿透


?

介紹:接下來我會把學習階段學到的框架等知識點進行整合,每一次整合是在前一章的基礎上進行的,所以后面的整合不會重復放前面的代碼。每次的demo我放在結尾,本次是接著上一章的內容延續的,只增加新增的或者修改的代碼。

上一章對全局異常進行了整合,可以處理統一拋出錯誤。

1、這章整合redis,用redis存儲token,實現一個用戶只保存一個token,登錄接口再次獲取一個新的token后,前一個token則無法使用,解決一個用戶可以多次登錄的問題。

2、實現用戶登錄3次就鎖定用戶賬戶,無法再請求登錄接口。

qq交流群導航——>231378628

先展示一下目錄結構:?

?

第一步:修改yml配置文件

?

注意:是在spring:下面,database是選擇存在第幾個庫,如下:

?

此處我選擇的是“1”,所以存在為“1”的庫。

redis的密碼在安裝時已經設置,也可以為空。若未安裝redis,請在csdn尋找大佬的安裝教程,不復雜。

第二步:新增redis操作工具類

@Component public class RedisUtils {@Autowiredprivate RedisTemplate<String, String> redisTemplate;/*** 讀取緩存** @param key* @return*/public String get(final String key) {return redisTemplate.opsForValue().get(key);}/*** 寫入緩存*/public boolean set(final String key, String value) {boolean result = false;try {redisTemplate.opsForValue().set(key, value);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 寫入緩存,并設置過期時間** @param key* @param value* @param timeout* @param unit* @return*/public boolean set(final String key, String value, long timeout, TimeUnit unit) {boolean result = false;try {redisTemplate.opsForValue().set(key, value, timeout, unit);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 更新緩存*/public boolean getAndSet(final String key, String value) {boolean result = false;try {redisTemplate.opsForValue().getAndSet(key, value);result = true;} catch (Exception e) {e.printStackTrace();}return result;}/*** 刪除緩存*/public boolean delete(final String key) {boolean result = false;try {redisTemplate.delete(key);result = true;} catch (Exception e) {e.printStackTrace();}return result;} }

不一定用這個,網上到處有很多更詳細的工具類,按需使用。

第三步:改造token攔截器

原來的代碼(上幾章都有代碼):

?

改造:

注入redis工具類。

?

修改方法。

?

到此實現了一個用戶只存在一個token的效果,下面改造登錄實現類代碼,如下:

?

??把登陸失敗的次數存入redis,若達到3次則直接拋出異常,不再請求接口。

?第三步:演示

輸入正確賬號密碼。

?

將此token拿去請求接口,請求成功

?

重新請求登錄接口,生成新的token,拿去請求剛才的接口,新token可以請求成功,舊的token無法再請求成功。

?

?

?用正確的賬戶錯誤的密碼登錄。

?

?錯誤三次之后。

?

本期整合到此完畢,接下來會繼續更新加強整合,盡情期待。

訪問地址:http://localhost:8088/swagger-ui.html或者http://localhost:8088/doc.html

demo地址:studydemo/整合swagger at main · zrc11/studydemo · GitHub

碼字不易,若幫到各位,幫忙三連,感謝

?

?

?

總結

以上是生活随笔為你收集整理的【七】springboot整合redis(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。