redis知識準備
redis setnx命令
setnx 如果key不存在則建立,並返回true
如果key存在則不操作,並返回false
redis ttl命令
如果對key設定了過期時間,則ttl命令返回key到過期時所剩餘的時間
如果key沒有設定過期時間,則ttl命令返回-1
}// 獲取鎖的過期剩餘時間
func
(r *redisclient)
getttl()
(error
, time.duration)
return
nil, ret.
val()}
func
(r *redisclient)
threadlock
(threadid string)if
!ok
} fmt.
printf
("執行緒 %s 已加鎖\n"
, threadid)
// 加鎖後執行相應操作
time.
sleep(5
* time.second)
// 釋放鎖
r.unlock()
fmt.
printf
("執行緒 %s 已釋放鎖\n"
, threadid)
return
}else
if err !=
nil err, t := r.
getttl()
if err !=
nilif t >0}
}func
main()
}
利用AOP實現redis快取
1.定義註解 target elementtype.method 作用位置 retention retentionpolicy.runtime 什麼時候有效 public inte ce cachefind 2.使用註解 在方法上使用這個註解 override cachefind key iten ...
Golang利用select實現超時機制
所謂超時,比如上網瀏覽一些安全的 如果幾分鐘之後不做操作,那麼就會讓你重新登入。就所謂有時候出現goroutine阻塞的情況,那麼我們如何避免整個程式進入阻塞情況,這時候就可以用select來設定超時 package main import fmt time func main 別忘了 for i ...
利用redis實現使用者簽到
很多 都提供了簽到功能 這裡不考慮資料落地事宜 並且需要展示最近乙個月的簽到情況,如果使用bitmap我們怎麼做?一言不合亮 redis new redis redis connect 127.0.0.1 使用者uid uid 1 記錄有uid的key cachekey sprintf sign d...