spring整合redis集群
購物車dubbocartserviceimpl
redis配置
單點登陸
public
class
jsonutils
catch
(jsonprocessingexception e)
}//將json轉化為物件
public
static
t toobject
(string json,class
targetclass)
catch
(jsonprocessingexception e)
}}
在web伺服器config配置***攔截策略@configuration
//標識乙個配置類
public
class
mvcconfigurer
implements
webmvcconfigurer
}
userinterceptor自定義***
自定義類實現handlerinterceptor介面,重寫放法:
prehandle
posthandle
aftercompletion
@component
//表示將此類標記為spring容器中的乙個bean
public
class
userinterceptor
implements
handlerinterceptor}}
//判斷ticket是否有效if(
!stringutils.
isempty
(ticket))}
//未登陸,重定向到登陸頁面
response.
sendredirect
("/userlogin.thml");
return
false
;//不執行controller
}
新增redis.properties配置檔案redis.nodes=192.168.126.129:7000,192.168.126.129:7001,192.168.126.129:7002...
在common工具jar的config配置redis@configuration
//標識乙個配置類
//載入redis配置檔案
@propertysource
("classpath:/properties/redis.properties"
)public
class
redisconfig")
private string nodes;
//在 getjediscluster() 方法上新增 @bean 註解則會往 spring 容器中新增乙個名為 jediscluster 的 bean,該 bean 即為方法的返回值。
@bean
public jediscluster getjediscluster()
//返回乙個jediscluster交給spring容器管理
return
newjediscluster
(nodeset);}
}
redis.properties新增cardredis.nodes=192.168.126.129:7000,192.168.126.129:7001,192.168.126.129:7002...
redis.card=card
//dubbo 的service(呼叫服務超時時間)
@service
(timeout =
3000
)public
class
dubbocartserviceimpl
implements
dubbocartservice")
private string cart_key;
//新增購物車
@override
public sysresult addcart
(long userid,long itemid,
int num)
//如果不存在,根據商品id獲取商品資訊
item item = null;
//從redis中獲取
if(jedis.
exists
(itemid)
)//從資料庫直接獲取
item = dubboitemservice.
selectitembyitemid
(itemid);if
(item!=null)
return sysresult.
fail()
;//把商品資訊存入redis購物車
cart cart =
newcart()
; cart.
setitem
(item)
.setnum
(num)
; jedis.
hset
(cart_key+
":"+userid,itemid,jsonutils.
tojson
(cart));
return sysresult.
success()
;}}
使用redis快取存放購物車資訊.
注意:常用5種資料型別:string,hash,list,set,sorted set
用hash型別
命令作用
hset key_name field_name value
新增(field不存在建立,field存在覆蓋value)
hget key_name field_name
獲取(存在返回field,不存在返回nil
)
hexists key_name field_name
判斷key中指定field是否存在(存在1,不存在0)
hlen key_name
獲取雜湊表中字段的數量
@service
(timeout =
3000
)public
class
dubbouserserviceimpl
implements
dubbouserservice
}
電商秒殺專案 交易模組
首先建立交易模型,然後根據模型建立表,生成實體。然後建立service,寫建立訂單的方法。建立訂單 1校驗下單狀態 商品存在?使用者合法?購買數量正確?override public itemmodel getitembyid integer id itemmodel itemmodel conve...
電商秒殺專案 秒殺模組
itemmodel中新增乙個 private promomodel promomodel 並建立get set方法。修改getitembyid方法 override public itemmodel getitembyid integer id itemmodel itemmodel convert...
電商專案使用者模組的理解
一 使用者模組 1 使用者登陸 請求引數 使用者名稱 密碼 httpsession session a 將使用者名稱和密碼傳到後台介面 b 把該使用者名稱到資料庫查詢是否存在該使用者名稱 c 如資料庫存在使用者名稱,把傳的密碼進行md5雜湊,通過使用者名稱和密碼進行查詢使用者 d 將查詢出來的使用者...