1、redis單線程問題redis
單線程指的是網絡請求模塊使用了一個線程(因此不需考慮併發安全性),即一個線程處理全部網絡請求,其餘模塊仍用了多個線程;緩存
2、Redis關於線程安全問題安全
redis其實是採用了線程封閉的觀念,把任務封閉在一個線程,天然避免了線程安全問題,不過對於須要依賴多個redis操做的複合操做來講,依然須要鎖,並且有多是分佈式鎖。網絡
3、使用Redis有哪些好處?併發
(1) 速度快,由於數據存在內存中,相似於HashMap,HashMap的優點就是查找和操做的時間複雜度都是O(1)分佈式
(2) 支持豐富數據類型,支持string,list,set,sorted set,hashmemcached
(3) 支持事務,操做都是原子性,所謂的原子性就是對數據的更改要麼所有執行,要麼所有不執行函數
(4) 豐富的特性:可用於緩存,消息,按key設置過時時間,過時後將會自動刪除spa
4、Redis相比memcached有哪些優點?線程
(1) memcached全部的值均是簡單的字符串,redis做爲其替代者,支持更爲豐富的數據類型
(2) redis的速度比memcached快不少
(3) redis能夠持久化其數據
(4)Redis支持數據的備份,即master-slave模式的數據備份。
(5) 使用底層模型不一樣,它們之間底層實現方式 以及與客戶端之間通訊的應用協議不同。Redis直接本身構建了VM 機制 ,由於通常的系統調用系統函數的話,會浪費必定的時間去移動和請求。
(6)value大小:redis最大能夠達到1GB,而memcache只有1MB
5、爲何說redis可以快速執行
(1) 絕大部分請求是純粹的內存操做(很是快速)
(2) 採用單線程,避免了沒必要要的上下文切換和競爭條件
(3) 非阻塞IO - IO多路複用