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.第二...