MySQL
一趟咆、日期與時間
1.1 convert_tz
convert_tz 能轉(zhuǎn)換成你想要的時區(qū)贱呐,就將默認(rèn)時區(qū)改成了中國時區(qū)。convert_tz(now(),'+00:00','+08:00')
就能得出 2021-03-05 17:59:36
蜕青。但也有例外瘟栖,如果你的 MySQL Server 已經(jīng)設(shè)置成中國時區(qū),那就會多出8個小時蜡豹,就只需去掉 convert_tz 函數(shù)即可
完整用法:UPDATE account set lastlogints = convert_tz(FROM_UNIXTIME(unix_timestamp()),'+00:00','+08:00') WHERE id = 1;
麸粮,
1.2 FROM_UNIXTIME
FROM_UNIXTIME 能將 1555396805
-> 2019-04-16 14:40:05
,實例用法:FROM_UNIXTIME(ts, '%Y-%m-%d %T') as ts
镜廉,更多像 %Y
之類的用法 https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
1.3 DATE_FORMAT
DATE_FORMAT 能將 2019-04-16 14:40:05
-> 2019-04-16
弄诲,實例用法:DATE_FORMAT(time, '%Y-%m-%d') AS time
二、Redis
2.1 keys 與 scan
- 相同點: keys 與 scan 都有查詢 redis key 的作用
- 不同點:keys 會阻塞 redis 多路復(fù)用的 io 主線程,它一旦阻塞齐遵,后續(xù)的命令都會相應(yīng)阻塞寂玲,但 scan 就不會。
- keys 優(yōu)點:查詢百萬級以下的數(shù)據(jù)時簡單梗摇、方便拓哟。keys 缺點:會阻塞主線程
- scan 優(yōu)點:不會會阻塞主線程,還支持游標(biāo)按批次(像翻頁)迭代返回數(shù)據(jù)伶授。scan 缺點:返回的數(shù)據(jù)有可能重復(fù)断序,需要我們在業(yè)務(wù)層按需要去重,命令如:
scan 0 MATCH "*kenny*" count 10000