1. 程式人生 > 實用技巧 >Python多程序解決方案multiprocessing ProcessPoolExecutor

Python多程序解決方案multiprocessing ProcessPoolExecutor

測試redis效能

redis-benchmark是一個官方自帶的壓力測試工具

redis-benchmark命令引數!

圖片來自菜鳥教程:

redis-benchmark -c 100 -n 100000

基礎的知識

redis預設有16個數據庫

預設使用的是第0個 可以使用 select 進行切換資料庫!

127.0.0.1:6379> select 3 # 切換資料庫
OK
127.0.0.1:6379[3]> DBSIZE # 檢視DB大小!
(integer) 0
127.0.0.1:6379[3]> keys * # 檢視資料庫所有的key
1) "name"

清除當前資料庫 flushdb 清除全部資料庫的內容 FLUSHALL

127.0.0.1:6379[3]> flushdb
OK
127.0.0.1:6379[3]> keys *
(empty list or set)

Redis 是單執行緒的!

明白Redis是很快的,官方表示,Redis是基於記憶體操作,CPU不是Redis效能瓶頸,Redis的瓶頸是根據 機器的記憶體和網路頻寬,既然可以使用單執行緒來實現,就使用單執行緒了!所有就使用了單執行緒了!

Redis 是C 語言寫的,官方提供的資料為 100000+ 的QPS,完全不比同樣是使用 key-vale的 Memecache差! Redis 為什麼單執行緒還這麼快?

  1. 誤區1:高效能的伺服器一定是多執行緒的?

  2. 誤區2:多執行緒(CPU上下文會切換!)一定比單執行緒效率高!

    核心:redis 是將所有的資料全部放在記憶體中的,所以說使用單執行緒去操作效率就是最高的,多執行緒 (CPU上下文會切換:耗時的操作!!!),對於記憶體系統來說,如果沒有上下文切換效率就是最高 的!多次讀寫都是在一個CPU上的,在記憶體情況下,這個就是最佳的方案!