Memcached擴展的一些坑及強迫症專用PV統計的實現

0   43447 轉為簡體

以下針對PHP的Memcached擴展

  • increment/decrement/touch方法必須使用binary protocol($_mc->setOption(Memcached::OPT_BINARY_PROTOCOL,true)),且連續執行兩個請求必須先關閉之前的才可以
  • $expiry參數可以是UNIX 時間戳也可以是當前秒數,秒數大於30天會被認為是時間戳,要設置用不超時可以設為0
  • 啟用binary protocol後increment/decrement的返回值可能類似1 15415 a2d1,←注意是類似這樣的,沒關係加個intval就行了
  • 看php.org文檔的時候下面的用戶留言比上面的有用得多

強迫症專用PV統計

強迫症認為PV統計漏掉一個IP就會渾身難受

在需要統計的頁面的PHP中嵌入一下代碼

每個ip一小時內訪問相同頁面只計一次;注意要先touch再increment,因為increment並不會增加超時時間,如果增加了還沒被讀就超時就杯具了;反之如果key不存在touch一下也不會懷孕;每當一個新用戶訪問,增加生命值10min

cron定時入庫

 

注意這裡不能用delete,因為delete可能會使數據丟失,但是decrement就沒關係了

awk(又是awk)高亮顯示nginx日誌

7   12952 轉為簡體

請叫我awk小(nao)王(can)子(fen)

效果

awk分析日誌統計當日熱門頁面

0   25958 轉為簡體

不想寫python,而且我比較相信awk+uniq+sort的速度

  •  cron的時區很奇怪,不會調,系統時間是+8,tail /var/log/syslog之後發現是西五區,手動+13小時 可以通過修改localtime,修改完之後重啟service cron(還是重啟系統好了)參閱
  • 第一步取出所有日期是今天且響應是200的請求,打印請求ip和請求uri
  • 第二、三步對(ip uri)排序,去重,單個ip訪問單個頁面只會被記為一次
  • 打印uri,去重,排序,顯示前50個

 

time計時

52M日誌,26w條

134M日誌,加上了兩個自定義條件,65w條

小站可以考慮

在某網站中使用的字幕文件名猜測視頻文件名的算法

2   71639 轉為簡體

覺得有點意思,拿出來和大家一起研究下,歡迎提供更好的建議。

因為爬x手的時候,網頁已經沒了,只能自食其力;用unrar(rarlab上下的,apt-get里的太古老)獲得rar內的文件名,用zipfile模塊列zip包的,抓的時候直接把返回的內容插到數據庫了,沒分析,因為沒那麼多時間去想算法,還是先把dirty data擼下來再說。

然後開始正文了www

按照這麼一個基本思想,字幕文件名除了擴展名以外,其餘部分和視頻文件是一樣的。如果壓縮包裡面只有一個文件,那麼直接就是它去掉擴展名就好了;但是如果有多個版本的字幕(比如eng,GB,BIG5等),那就需要一個字符串最大匹配的算法。←為了裝B取的名字
Read More

win8平板推黃油時提示Initializing DirectInput failed的解決方案

0   16004 轉為簡體

win8平板推黃油時提示Initializing DirectInput failed,插上鼠標就不提示,應該是找不到mouse device的關係

google了一下fake mouse device,第一個結果就找到了答案

11樓寫到

Update-

Enabling “mouse keys”, a Windows accessibility feature, allows games to detect a mouse on touch devices.
http://www.microsoft.com/enable/trai…ic-keypad.aspx

I’m working out which TBS and RTS games work well with touch……

按照渣軟的提示打開了這個黑科技:

  1. 右邊角滑出菜單,選擇設置->更改電腦設置
  2. 選擇輕鬆使用
  3. 選擇鼠標
  4. 打開使用數字小鍵盤在屏幕上移動鼠標

就好了lol;win8.1同樣適用