線性基學習小記
阿新 • • 發佈:2020-08-07
redis是一個單程序的服務
- 單程序模型來處理客戶端的請求。對讀寫等事件的響應 是通過對epoll函式的包裝來做到的。Redis的實際處理速度完全依靠主程序的執行效率
- Epoll是Linux核心為處理大批量檔案描述符而作了改進的epoll,是Linux下多路複用IO介面select/poll的增強版本, 它能顯著提高程式在大量併發連線中只有少量活躍的情況下的系統CPU利用率。
redis資料庫切換
- 預設16個數據庫,類似陣列下表從零開始,初始預設使用零號庫,可在配置檔案配置
select
命令切換資料庫dbsize
檢視當前資料庫的key的數量- keys *檢視當前庫中的k-v列表
flushdb
flushall
;通殺全部庫- 統一密碼管理,16個庫都是同樣密碼,要麼都OK要麼一個也連線不上
Redis的五大資料型別
- String(字串)
- string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。
- string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的物件 。
- string型別是Redis最基本的資料型別,一個redis中字串value最多可以是512M
- Hash(雜湊,類似java裡的Map)
- Redis hash 是一個鍵值對集合。
- Redis hash是一個string型別的field和value的對映表,hash特別適合用於儲存物件。
- 類似Java裡面的Map<String,Object>
- List(列表)
- Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素到列表的頭部(左邊)或者尾部(右邊)。
- 它的底層實際是個連結串列
- Set(集合)
- Redis的Set是string型別的無序集合。它是通過HashTable實現實現的
- Zset(sorted set:有序集合)
- Redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的成員。
- 不同的是每個元素都會關聯一個double型別的分數。
- redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。