Python多程序解決方案multiprocessing ProcessPoolExecutor
阿新 • • 發佈:2020-08-19
測試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:高效能的伺服器一定是多執行緒的?
-
誤區2:多執行緒(CPU上下文會切換!)一定比單執行緒效率高!
核心:redis 是將所有的資料全部放在記憶體中的,所以說使用單執行緒去操作效率就是最高的,多執行緒 (CPU上下文會切換:耗時的操作!!!),對於記憶體系統來說,如果沒有上下文切換效率就是最高 的!多次讀寫都是在一個CPU上的,在記憶體情況下,這個就是最佳的方案!