jt商品redis操作

2021-10-04 17:23:11 字數 2549 閱讀 5132

2商品分類資訊實現redis操作

2.1業務分析

2.1.1什麼樣的資料新增快取

條件:

1.不經常變化的資料

2.使用者頻繁查詢的資料.

實際業務:

1.單個商品可以新增快取.

2.省市縣鄉

3.營業廳資訊.

4.商品分類資訊….

2.2springboot整合redis

2.2.1編輯properties檔案

#單台redis配置

redis.host=192.168.226.128

redis.port=6379

2.2.2編輯redis的配置類

//標識配置類資訊

@configuration

@propertysource("classpath:/properties/redis.properties")

public class redisconfig ")

private string host;

@value("$")

private integer port;

/**springboot整合redis jedis*/

@bean

@scope("prototype")

public jedis jedis()

}

2.2.3物件與json轉化問題

public class objecttojson
/**

* 1.物件轉化為json

* 2.json轉化為物件

*/public static string tojson(object obj) catch (jsonprocessingexception e)

return result;

}/**

* 需求:新增class型別,直接返回該型別物件

* 定義泛型物件

* t 物件的引用. 前後一致即可.

* @param json

* @param target

* @return

*/public t toobj(string json,classtarget) catch (jsonprocessingexception e)

return t;}}

2.2.5商品分類快取實現業務流程

1.使用者發起請求

2.itemcatcontroller接收使用者請求.

public listfinditemcatbyparentid(@requestparam(defaultvalue="0",name = "id") long parentid)

3.根據業務需求查詢資料庫,.之後返回資料.

4.引入redis快取實質減少了使用者查詢資料庫的操作步驟.

1redis

1.1商品分類快取實現

1.1.1編輯itemcatcontroller

/**

* url:/item/cat/list

* 引數: 暫時忽略

* 返回值: list*

* @requestparam

* defaultvalue: 預設值 如果不傳資料則使用預設值

* name/value: 表示接收的資料.

* required: 是否為必傳資料. 預設值true

*/public listfinditemcatbyparentid(@requestparam(defaultvalue="0",name = "id") long parentid)

1.1.2編輯itemcatservice

/**

* 思路:

* 1.先查詢快取 key: com.jt.service.itemcatserviceimpl.finditemcatcache::parentid

* 2.判斷結果資訊

*/@suppresswarnings("unchecked") //壓制警告

@override

public listfinditemcatcache(long parentid) else

return treelist;

}

1.1.3redis效能提公升

沒有使用redis之前.

2.使用redis之後.

1.1.4全域性異常處理機制

@restcontrolleradvice	//返回值結果都是json串

public class sysresultexceptionaop }

redis快取商品庫存減壓

redis預減庫存 主要思路減少對資料庫的訪問,之前的減庫存,直接訪問資料庫,讀取庫存,當高併發請求到來的時候,大量的讀取資料有可能會導致資料庫的崩潰。我們主要是通過這幾點來實現的 1 系統初始化的時候,將商品庫存載入到redis 快取中儲存,並不是需要先請求一次才能快取 2 收到請求的時候,現在r...

商品每日每週每月排序redis

商品每日每週每月排序redis 例項化鏈結redis redis new redis redis connect 127.0.0.1 6379 設定時區 date default timezone set asia shanghai 設定每天資訊 day mktime 23,59,59,date m...

redis實現商品秒殺業務的正確姿勢

結論 雙重reddision鎖 redis的pop操作 失敗回滾機制 1.選擇reddision而不用redis原生鎖是因為reddsion有執行緒排隊等待機制,防止大量的請求因為拿不到鎖而直接導致失敗 2.第一層鎖的目的是過濾掉併發的下單請求,讓拿不到鎖的執行緒排隊等待,key為商品id 3.第二...