上節內容講解了如何安裝Redis,如何使用Redis以及Redis的操做。本節內容,繼續來學習在真實的項目案例中,Redis的使用方法和操做步驟。
mysql
在實戰項目中使用Redis功能,首先須要進行Redis配置。本實戰項目中,關與Redis的配置項包含:鏈接類型、地址、端口、公共前綴。以上配置項被定義包含在Iris框架的redis包中的Config結構體中,Config定義以下:web
type Config struct {
// Network "tcp"
Network string
// Addr "127.0.0.1:6379"
Addr string
// Password string .If no password then no 'AUTH'. Default ""
Password string
// If Database is empty "" then no 'SELECT'. Default ""
Database string
// MaxIdle 0 no limit
MaxIdle int
// MaxActive 0 no limit
MaxActive int
// IdleTimeout time.Duration(5) * time.Minute
IdleTimeout time.Duration
// Prefix "myprefix-for-this-website". Default ""
Prefix string
}複製代碼
Network: 鏈接類型。TCPredis
Addr: 即將鏈接的Redis服務主機IP。本實戰項目的Redis服務部署在本機,所以主機ip爲127.0.0.1。Redis服務默認端口爲6379。所以,Addr在本實例項目中的配置值爲127.0.0.1:6379。sql
Password: 登錄Redis的密碼。默認配置爲空。緩存
Prefix:爲要保存的全部的內容設置公共的前綴。默認設置爲空。bash
IdleTimeout:設置Redis中的生效時長。這裏咱們設置time.Duration(24) * time.Hour。在實際的開發過程當中,開發者能夠根據本身的需求設定Redis的生效時長。session
Redis在配置文件中的配置狀況以下:mvc
{
"app_name": "CmsProject",
"port": "8080",
"static_path": "/manage/static",
"database": {
"drive": "mysql",
"port": "3306",
"user": "root",
"pwd": "271400",
"database": "qfCms"
},
"redis": {
"network": "tcp",
"addr": "127.0.0.1",
"port": "6379",
"prefix": ""
},
"mode": "dev"
}複製代碼
咱們經過讀取配置文件完成配置內容的讀取,利用Redis配置信息實例化Redis對象,Redis實例化以下:app
var once sync.Once
/**
* 返回Redis實例
*/
func NewRedis() *redis.Database {
var database *redis.Database
once.Do(func() {
//項目配置
cmsConfig := config.InitConfig()
rd := cmsConfig.Redis
database = redis.New(service.Config{
Network: rd.NetWork,
Addr: rd.Addr + ":" + rd.Port,
IdleTimeout: time.Duration(24) * time.Hour,
Prefix: rd.Prefix,
})
})
return database
}
複製代碼
Redis的實例化使用到了單例方式實現。框架
redis := datasource.NewRedis()
//設置session的同步位置爲redis
sessManager.UseDatabase(redis)複製代碼
Redis緩存管理員統計功能
adminStatis := sc.Session.Get(ADMINMODULE + date)
if adminStatis != nil {
adminStatis = adminStatis.(int64)
return mvc.Response{
Object: map[string]interface{}{
"status": utils.RECODE_OK,
"count": adminStatis,
},
}
} else {
result = sc.Service.GetAdminDailyCount(date)
sc.Session.Set(ADMINMODULE, result)
}複製代碼
Redis緩存訂單統計功能
orderStatis := sc.Session.Get(ORDERMODULE + date)
if orderStatis != nil {
orderStatis = orderStatis.(int64)
return mvc.Response{
Object: map[string]interface{}{
"status": utils.RECODE_OK,
"count": orderStatis,
},
}
} else {
result = sc.Service.GetOrderDailyCount(date)
sc.Session.Set(ORDERMODULE+date, result)
}
複製代碼
Redis緩存用戶統計功能
userResult := sc.Session.Get(USERMODULE + date)
if userResult != nil {
result = userResult.(int64)
return mvc.Response{
Object: map[string]interface{}{
"status": utils.RECODE_OK,
"count": userResult,
},
}
} else {
iris.New().Logger().Error(date) //時間
result = sc.Service.GetUserDailyCount(date)
//設置緩存
sc.Session.Set(USERMODULE+date, result)
}複製代碼
開啓Redis服務 在Mac下,啓動redis服務使用以下命令:redis
開啓Redis-cli客戶端 在MacOS系統下,啓動redis-cli工具的命令:redis-cli 如上咱們能夠經過keys命令來查看咱們存儲的全部的內容
get key讀取具體信息 在查詢所對應的key的redis存儲內容值。