原创 使用redis僅保存最新的token並分析redis存儲結構

背景 最近在學習restful api的開發,遇到這樣的問題,書上使用itsdangerous生成token,但是同一個用戶可以短時間內生成多個token,而這些token在有效期內都是可以使用的。現在就是要實現的需求是僅最新的t

原创 redis源碼分析(3)——redis鏈表

定義 adlist.h typedef struct listNode{ struct listNode *prev; struct listNode *next; void *value; } 可以看出,

原创 python住你微信跳一跳拿高分

前言 最近微信的跳一跳很火,大家看到排行榜上幾百上千的分數,再看看自己百分左右的分數肯定很難過,我手殘怪我嗎?沒關係,如果你跟着我來,也能讓你分數霸榜。 原理 首先大家是有一個直觀感受,根據兩個箱子距離的不同,需要按壓的時間也是不

原创 操作系統實驗——內存管理

內存爲什麼要管理 在OS中,每個運行的進程都會佔用內存,那麼操作系統勢必要做好兩件事:內存分配和內存回收。這便是本次實驗要做的模擬實驗了。 內存分配策略 FF(首次適應算法) 這種策略旨在從最低地址的空閒分區開始找起,找到合適的便

原创 HTTP AUTH驗證

何爲http auth? http auth是一種基礎的用戶驗證,原理是將用戶名:密碼base64加密後放在http的請求頭部Authorization 發給服務器。 瀏覽器的做法 當你訪問一個需要http auth驗證的資源時,

原创 flask用戶驗證

建立模型 建立一個簡單的用戶表,id自增,用戶名,密碼 from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app) class User(db.Model):

原创 redis源碼分析(2)——SDS API詳解

源碼分析章節,我儘量使用原生的redis源碼,不去看黃建宏的註釋,提高自己閱讀源碼的能力,此外,redis版本還是3.0 源碼下載,大家可以到這 http://download.redis.io/releases/ sd

原创 按鈕問題

題目 現有兩個按鈕,按下按鈕0會執行2x+1,按下1執行2x+2。x初值爲0,現要求出任意正整數n應使用何種按法使得x能變成n。 遍歷 打眼一看這題就是遍歷啊,找所有解法,但是不同於別的簡單題,需要你有一個順序去遍歷。遞歸唄。使用

原创 部署在騰訊雲上的APP不能發郵件了?可能是你的25端口被禁了

起因 最近遇到個問題,我的web app經常會504,經過我的分析,504的頁面都有一個特性就是會給用戶發郵件啊,不過app以前還好着,怎麼突然壞了呢,最後百般求證,發現是騰訊雲的問題。 騰訊雲公告 都怪自己沒有留心看消息,直

原创 編寫Python3的C擴展

爲何要編寫C擴展 保護核心代碼 解決性能瓶頸 創建C一些特有的東西 環境: Linux .13.9-300.fc27.x86_64 Python 3.6.3 開始 目標 這次我麼來實習製作Python3的擴展,實現兩個功能

原创 java中的淺拷貝與深拷貝

java中的淺拷貝與深拷貝 淺拷貝 實現方法:要拷貝的類,實現Cloneable接口,然後重寫clone方法,即可實現淺拷貝。 但缺點在於,如果該類的成員包含其他類,則其他類並沒有被拷貝,只是拷貝了一個引用對象,其指向的地址和之前

原创 Python特性學習——可迭代對象,迭代器(重新修正)

以前學習python都是馬馬虎虎,導致很多特性只是知道完全不會用,現在將他們重新學習 可迭代對象(Iterable) 簡單來說,所有可以放入for循環中的對象都是可迭代對象,如列表,元組,字符串,字典… 如何判斷對象是否是可迭

原创 python函數參數

Python函數參數 默認參數 def func0(name='lyt'): print(name) func0(); -->lyt func0('zxw') -->zxw 一個坑點 由於默認參數在函數定義第一次被解釋器

原创 masm彙編之——過程與宏的區別

定義方法 宏格式: 宏指令名 MACRO 形參 · · · (宏定義體) ENDM 調用 宏名[形參] 作用:MASM.EXE會將調用到宏的地

原创 servlet獲取請求參數

get、post 很簡單,直接request.getParameter(“name”) 其他方式 例如delete,put。 如上的方法可能無法獲取,找到的原因說可能是tomcat api的問題。 解決辦法: Buffered