MySQL
一、日期與時(shí)間
1.1 convert_tz
convert_tz 能轉(zhuǎn)換成你想要的時(shí)區(qū),就將默認(rèn)時(shí)區(qū)改成了中國(guó)時(shí)區(qū)。convert_tz(now(),'+00:00','+08:00')
就能得出 2021-03-05 17:59:36
。但也有例外,如果你的 MySQL Server 已經(jīng)設(shè)置成中國(guó)時(shí)區(qū),那就會(huì)多出8個(gè)小時(shí),就只需去掉 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
,實(shí)例用法: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
,實(shí)例用法:DATE_FORMAT(time, '%Y-%m-%d') AS time
二、Redis
2.1 keys 與 scan
- 相同點(diǎn): keys 與 scan 都有查詢 redis key 的作用
- 不同點(diǎn):keys 會(huì)阻塞 redis 多路復(fù)用的 io 主線程,它一旦阻塞,后續(xù)的命令都會(huì)相應(yīng)阻塞,但 scan 就不會(huì)。
- keys 優(yōu)點(diǎn):查詢百萬(wàn)級(jí)以下的數(shù)據(jù)時(shí)簡(jiǎn)單、方便。keys 缺點(diǎn):會(huì)阻塞主線程
- scan 優(yōu)點(diǎn):不會(huì)會(huì)阻塞主線程,還支持游標(biāo)按批次(像翻頁(yè))迭代返回?cái)?shù)據(jù)。scan 缺點(diǎn):返回的數(shù)據(jù)有可能重復(fù),需要我們?cè)跇I(yè)務(wù)層按需要去重,命令如:
scan 0 MATCH "*kenny*" count 10000